task_result.py 624 B

1234567891011121314151617181920212223
  1. from dataclasses import dataclass, field
  2. from typing import Any
  3. @dataclass
  4. class TaskResult:
  5. _success: bool
  6. outputs: dict[str, Any] = field(default_factory=dict)
  7. error_message: str = ""
  8. def is_success(self) -> bool:
  9. return self._success
  10. def is_failure(self) -> bool:
  11. return not self._success
  12. @classmethod
  13. def success(cls, outputs: dict[str, Any] | None = None) -> "TaskResult":
  14. return cls(_success=True, outputs=outputs or {})
  15. @classmethod
  16. def failure(cls, error_message: str) -> "TaskResult":
  17. return cls(_success=False, error_message=error_message)