Source code for openmnglab.model.planning.interface

from __future__ import annotations

from abc import abstractmethod, ABC
from typing import TypeVar, Generic

from openmnglab.model.datamodel.interface import IDataContainer
from openmnglab.model.functions.interface import IFunctionDefinition, ISourceFunctionDefinition, ProxyRet
from openmnglab.model.planning.plan.interface import IExecutionPlan


[docs]class IExecutionPlanner(ABC): @abstractmethod def add_function(self, function: IFunctionDefinition[ProxyRet], *inp_data: IDataReference) -> ProxyRet: ... def add_source(self, function: ISourceFunctionDefinition[ProxyRet]) -> ProxyRet: return self.add_function(function) def add_stage(self, function: IFunctionDefinition[ProxyRet], input_0: IDataReference, *other_inputs: IDataReference) -> ProxyRet: return self.add_function(function, input_0, *other_inputs) @abstractmethod def get_plan(self) -> IExecutionPlan: ...
DCT = TypeVar('DCT', bound=IDataContainer)
[docs]class IDataReference(Generic[DCT], ABC): @property @abstractmethod def referenced_data_id(self) -> bytes: ...