File size: 481 Bytes
c481f8a f26a077 c481f8a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | from __future__ import annotations
from dataclasses import dataclass
from typing import Any, Dict, Protocol
from service.tasks import TaskRecord
@dataclass(frozen=True)
class EngineRunOutput:
raw: Any
normalized: Any
meta: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
return {"raw": self.raw, "normalized": self.normalized, "meta": self.meta}
class Engine(Protocol):
name: str
def run(self, task: TaskRecord) -> EngineRunOutput: ...
|