[docs]@dataclass(order=True)classTriggerData:machine:"StateChart"=field(compare=False)event:"Event | None"=field(compare=False)"""The Event that was triggered."""send_id:"str | None"=field(compare=False,default=None)"""A string literal to be used as the id of this instance of :ref:`TriggerData`. Allow revoking a delayed :ref:`TriggerData` instance. """execution_time:float=field(default=0.0)"""The time at which the :ref:`Event` should run."""model:Any=field(init=False,compare=False)"""A reference to the underlying model that holds the current :ref:`State`."""args:tuple=field(default_factory=tuple,compare=False)"""All positional arguments provided on the :ref:`Event`."""kwargs:dict=field(default_factory=dict,compare=False)"""All keyword arguments provided on the :ref:`Event`."""future:Any=field(default=None,compare=False,repr=False,init=False)"""An optional :class:`asyncio.Future` for async result routing. When set, the processing loop will resolve this future with the microstep result (or exception), allowing the caller to ``await`` it. """def__post_init__(self):self.model=self.machine.modeldelay=self.event.delayifself.eventandself.event.delayelse0self.execution_time=time()+(delay/1000)
[docs]@dataclassclassEventData:trigger_data:TriggerData"""The :ref:`TriggerData` of the :ref:`event`."""transition:"Transition""""The :ref:`Transition` instance that was activated by the :ref:`Event`."""state:"State"=field(init=False)"""The current :ref:`State` of the :ref:`statemachine`."""source:"State"=field(init=False)"""The :ref:`State` which :ref:`statemachine` was in when the Event started."""target:"State"=field(init=False)"""The destination :ref:`State` of the :ref:`transition`."""def__post_init__(self):self.state=self.transition.sourceself.source=self.transition.sourceself.target=self.transition.targetself.machine=self.trigger_data.machine@propertydefevent(self):returnself.trigger_data.event@propertydefargs(self):returnself.trigger_data.args@propertydefextended_kwargs(self):kwargs=self.trigger_data.kwargs.copy()kwargs["event_data"]=selfkwargs["machine"]=self.trigger_data.machinekwargs["event"]=self.trigger_data.eventkwargs["model"]=self.trigger_data.modelkwargs["transition"]=self.transitionkwargs["state"]=self.statekwargs["source"]=self.sourcekwargs["target"]=self.targetreturnkwargs