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 IOutputDataScheme
from openmnglab.model.functions.interface import IFunctionDefinition
from openmnglab.model.shared import IHashIdentifiedElement


[docs]class IPlannedElement(IHashIdentifiedElement, ABC): @property @abstractmethod def depth(self) -> int: ...
[docs]class IPlannedData(IPlannedElement, ABC): @property @abstractmethod def schema(self) -> IOutputDataScheme: ...
[docs]class IStage(IPlannedElement, ABC): @property @abstractmethod def definition(self) -> IFunctionDefinition: ... @property @abstractmethod def data_in(self) -> Sequence[IPlannedData]: ... @property @abstractmethod def data_out(self) -> Sequence[IPlannedData]: ...
[docs]class IExecutionPlan(ABC): @property @abstractmethod def stages(self) -> Mapping[bytes, IStage]: ... @property @abstractmethod def planned_data(self) -> Mapping[bytes, IPlannedData]: ...