Source code for openmnglab.model.planning.interface
from __future__ import annotations
from abc import abstractmethod, ABC
from typing import Optional, TypeVar, Generic
from openmnglab.model.datamodel.interface import IDataContainer
from openmnglab.model.functions.interface import IFunctionDefinition, ISourceFunctionDefinition, Prods
from openmnglab.model.planning.plan.interface import IExecutionPlan
from openmnglab.model.shared import IHashIdentifiedElement
[docs]class IExecutionPlanner(ABC):
@abstractmethod
def add_function(self, function: IFunctionDefinition[*Prods], *inp_data: IProxyData) -> Optional[tuple[*Prods]]:
...
def add_source(self, function: ISourceFunctionDefinition[*Prods]) -> tuple[*Prods]:
return self.add_function(function)
def add_stage(self, function: IFunctionDefinition[*Prods], input_0: IProxyData, *other_inputs: IProxyData) -> tuple[
*Prods]:
return self.add_function(function, input_0, *other_inputs)
@abstractmethod
def get_plan(self) -> IExecutionPlan:
...
DCT = TypeVar('DCT', bound=IDataContainer)
[docs]class IProxyData(IHashIdentifiedElement, ABC, Generic[DCT]):
...