Source code for openmnglab.model.planning.plan.interface
from __future__ import annotations
from abc import ABC, abstractmethod
from typing import Mapping, Sequence
from openmnglab.model.datamodel.interface import IDataSchema
from openmnglab.model.functions.interface import IFunctionDefinition
[docs]class IPlannedElement(ABC):
@property
@abstractmethod
def planning_id(self) -> bytes:
...
@property
@abstractmethod
def depth(self) -> int:
...
[docs]class IVirtualData(IPlannedElement, ABC):
@property
@abstractmethod
def schema(self) -> IDataSchema:
...
[docs]class IStage(IPlannedElement, ABC):
@property
@abstractmethod
def definition(self) -> IFunctionDefinition:
...
@property
@abstractmethod
def data_in(self) -> Sequence[IVirtualData]:
...
@property
@abstractmethod
def data_out(self) -> Sequence[IVirtualData]:
...
[docs]class IExecutionPlan(ABC):
@property
@abstractmethod
def stages(self) -> Mapping[bytes, IStage]:
...
@property
@abstractmethod
def planned_data(self) -> Mapping[bytes, IVirtualData]:
...