18 lines
375 B
Python
18 lines
375 B
Python
from __future__ import annotations
|
|
|
|
from dataclasses import dataclass
|
|
from pathlib import Path
|
|
from typing import Any, Dict
|
|
|
|
|
|
@dataclass
|
|
class RunnerResult:
|
|
ok: bool
|
|
output: Dict[str, Any]
|
|
artifacts: Dict[str, Path] | None = None
|
|
|
|
|
|
class BaseRunner:
|
|
async def run(self, job: Dict[str, Any], workspace: Path) -> RunnerResult:
|
|
raise NotImplementedError
|