@@ -7,6 +7,7 @@ _T = TypeVar("_T")
77_Context = TypeVar ("_Context" )
88_TransitionResult : TypeAlias = tuple [_Context , str | None , list [str ]]
99_TransitionMethod : TypeAlias = Callable [[Match [str ], _Context , str ], _TransitionResult [_Context ]]
10+ _Observer : TypeAlias = Callable [[StateMachine [_Context ]], None ]
1011
1112class StateMachine (Generic [_Context ]):
1213 input_lines : StringList | None
@@ -17,7 +18,7 @@ class StateMachine(Generic[_Context]):
1718 initial_state : str
1819 current_state : str
1920 states : dict [str , State [_Context ]]
20- observers : list [Callable [[ Self ], None ]]
21+ observers : list [_Observer [ _Context ]]
2122 def __init__ (self , state_classes : Iterable [type [State [_Context ]]], initial_state : str , debug : bool = False ) -> None : ...
2223 def unlink (self ) -> None : ...
2324 def run (
@@ -48,8 +49,8 @@ class StateMachine(Generic[_Context]):
4849 def add_states (self , state_classes : Iterable [type [State [_Context ]]]) -> None : ...
4950 def runtime_init (self ) -> None : ...
5051 def error (self ) -> None : ...
51- def attach_observer (self , observer ) -> None : ...
52- def detach_observer (self , observer ) -> None : ...
52+ def attach_observer (self , observer : _Observer [ _Context ] ) -> None : ...
53+ def detach_observer (self , observer : _Observer [ _Context ] ) -> None : ...
5354 def notify_observers (self ) -> None : ...
5455
5556class State (Generic [_Context ]):
0 commit comments