from dataclasses import dataclass, field from typing import Any @dataclass class TaskResult: _success: bool outputs: dict[str, Any] = field(default_factory=dict) error_message: str = "" def is_success(self) -> bool: return self._success def is_failure(self) -> bool: return not self._success @classmethod def success(cls, outputs: dict[str, Any] | None = None) -> "TaskResult": return cls(_success=True, outputs=outputs or {}) @classmethod def failure(cls, error_message: str) -> "TaskResult": return cls(_success=False, error_message=error_message)