1616
1717class TransitionDict (TypedDict , total = False ):
1818 target : str
19- event : str
19+ event : str | None
2020 internal : bool
2121 validators : bool
2222 cond : CallbacksType
@@ -26,6 +26,9 @@ class TransitionDict(TypedDict, total=False):
2626 after : CallbacksType
2727
2828
29+ TransitionsDict = Dict [str | None , List [TransitionDict ]]
30+
31+
2932class StateDict (TypedDict , total = False ):
3033 name : str
3134 value : Any
@@ -36,7 +39,7 @@ class StateDict(TypedDict, total=False):
3639
3740
3841class StateWithTransitionsDict (StateDict , total = False ):
39- on : Dict [ str , List [ TransitionDict ]]
42+ on : TransitionsDict
4043
4144
4245StateOptions = StateDict | StateWithTransitionsDict
@@ -75,19 +78,20 @@ def create_machine_class_from_definition(
7578 events : Dict [str , TransitionList ] = {}
7679 for state_id , state_events in events_definitions .items ():
7780 for event_name , transitions_data in state_events .items ():
78- for trantion_data in transitions_data :
81+ for transition_data in transitions_data :
7982 source = states_instances [state_id ]
8083
81- target = states_instances [trantion_data ["target" ]]
84+ target = states_instances [transition_data ["target" ]]
8285
86+ # TODO: Join `trantion_data.event` with `event_name`
8387 transition = source .to (
8488 target ,
8589 event = event_name ,
86- cond = trantion_data .get ("cond" ),
87- unless = trantion_data .get ("unless" ),
88- on = trantion_data .get ("on" ),
89- before = trantion_data .get ("before" ),
90- after = trantion_data .get ("after" ),
90+ cond = transition_data .get ("cond" ),
91+ unless = transition_data .get ("unless" ),
92+ on = transition_data .get ("on" ),
93+ before = transition_data .get ("before" ),
94+ after = transition_data .get ("after" ),
9195 )
9296
9397 if event_name in events :
0 commit comments