message_flow/sagas/orchestration_simple_dsl/saga_actions_provider.py (16 lines of code) (raw):
from typing import Callable, Generic, TypeVar
from ..orchestration import SagaActions # type: ignore
from .abstract_saga_actions_provider import AbstractSagaActionsProvider
__all__ = ["SagaActionsProvider"]
Data = TypeVar("Data")
class SagaActionsProvider(
AbstractSagaActionsProvider[Data, SagaActions[Data]], Generic[Data]
):
@classmethod
def from_actions(cls, actions: SagaActions[Data]) -> "SagaActionsProvider":
return cls(saga_actions=actions)
@classmethod
def from_supplier(
cls, supplier: Callable[[], SagaActions[Data]]
) -> "SagaActionsProvider":
return cls(saga_actions_supplier=supplier)