45 lines
905 B
Python
45 lines
905 B
Python
from __future__ import annotations
|
|
|
|
from enum import Enum
|
|
from typing import Any, Protocol
|
|
|
|
from ..job import RunningJobInfo
|
|
|
|
|
|
class JobExecutor(Protocol):
|
|
@property
|
|
def id(self) -> str: ...
|
|
|
|
@property
|
|
def started(self) -> bool: ...
|
|
|
|
@property
|
|
def user_arguments(self) -> Any | None: ...
|
|
|
|
@user_arguments.setter
|
|
def user_arguments(self, value: Any | None) -> None: ...
|
|
|
|
@property
|
|
def running_job(self) -> RunningJobInfo | None: ...
|
|
|
|
@property
|
|
def status(self) -> JobStatus: ...
|
|
|
|
async def start(self) -> None: ...
|
|
|
|
async def join(self) -> None: ...
|
|
|
|
async def initialize(self) -> None: ...
|
|
|
|
async def aclose(self) -> None: ...
|
|
|
|
async def launch_job(self, info: RunningJobInfo) -> None: ...
|
|
|
|
def logging_extra(self) -> dict[str, Any]: ...
|
|
|
|
|
|
class JobStatus(Enum):
|
|
RUNNING = "running"
|
|
FAILED = "failed"
|
|
SUCCESS = "success"
|