|
Python YASMIN (Yet Another State MachINe)
|


Public Member Functions | |
| None | __init__ (self, Set[str] outcomes) |
| None | add_state (self, str name, State state, Dict[str, str] transitions=None, Dict[str, Dict[str, str]] remappings=None) |
| None | set_start_state (self, str state_name) |
| str | get_start_state (self) |
| Dict[str, Union[State, Dict[str, str]]] | get_states (self) |
| str | get_current_state (self) |
| None | add_start_cb (self, Callable cb, List[Any] args=None) |
| None | add_transition_cb (self, Callable cb, List[Any] args=None) |
| None | add_end_cb (self, Callable cb, List[Any] args=None) |
| None | validate (self, bool strict_mode=False) |
| str | execute (self, Blackboard blackboard) |
| None | cancel_state (self) |
| str | __str__ (self) |
Public Member Functions inherited from yasmin.state.State | |
| None | __init__ (self, Set[str] outcomes) |
| str | __call__ (self, Blackboard blackboard=None) |
| str | __str__ (self) |
| bool | is_canceled (self) |
| bool | is_running (self) |
| Set[str] | get_outcomes (self) |
Protected Member Functions | |
| None | _call_start_cbs (self, Blackboard blackboard, str start_state) |
| None | _call_transition_cbs (self, Blackboard blackboard, str from_state, str to_state, str outcome) |
| None | _call_end_cbs (self, Blackboard blackboard, str outcome) |
Protected Attributes | |
| dict | _states = {} |
| A dictionary mapping state names to their corresponding state objects and transitions. | |
| str | _start_state = None |
| The name of the initial state of the state machine. | |
| bool | _validated = False |
| A flag indicating whether the state machine has been validated. | |
Protected Attributes inherited from yasmin.state.State | |
| Set | _outcomes = set() |
| A set of valid outcomes for this state. | |
| bool | _running = False |
| A flag indicating whether the state is currently running. | |
| bool | _canceled = False |
| A flag indicating whether the state has been canceled. | |
Private Attributes | |
| str | __current_state = None |
| The name of the current state being executed. | |
| Lock | __current_state_lock = Lock() |
| A threading lock to manage access to the current state. | |
| List[ | __start_cbs |
| A list of callbacks to call when the state machine starts. | |
| List[ | __transition_cbs |
| A list of callbacks to call during state transitions. | |
| List[ | __end_cbs = [] |
| A list of callbacks to call when the state machine ends. | |
| dict | __remappings = {} |
| A dictionary of remappings to set in the blackboard in each transition. | |
Represents a state machine that can manage states and transitions
between them, including callbacks for different state events.
Attributes:
_states (Dict[str, Dict[str, Any]]): A dictionary mapping state names to their corresponding state objects and transitions.
_start_state (str): The name of the initial state of the state machine.
__current_state (str): The name of the current state being executed.
__current_state_lock (Lock): A threading lock to manage access to the current state.
_validated (bool): A flag indicating whether the state machine has been validated.
__start_cbs (List[Tuple[Callable[[Blackboard, str, List[Any]], None], List[Any]]]): A list of callbacks to call when the state machine starts.
__transition_cbs (List[Tuple[Callable[[Blackboard, str, List[Any]], None], List[Any]]]): A list of callbacks to call during state transitions.
__end_cbs (List[Tuple[Callable[[Blackboard, str, List[Any]], None], List[Any]]]): A list of callbacks to call when the state machine ends.
| None yasmin.state_machine.StateMachine.__init__ | ( | self, | |
| Set[str] | outcomes ) |
Initializes the StateMachine with a set of possible outcomes.
Parameters:
outcomes (Set[str]): A set of possible outcomes for the state machine.
| str yasmin.state_machine.StateMachine.__str__ | ( | self | ) |
Returns a string representation of the state machine, listing all states and their types.
Returns:
str: A string representation of the state machine.
|
protected |
Executes all end callbacks.
Parameters:
blackboard (Blackboard): The blackboard instance used for sharing state.
outcome (str): The outcome of the state machine execution.
Raises:
Exception: If an error occurs while executing a callback.
|
protected |
Executes all start callbacks.
Parameters:
blackboard (Blackboard): The blackboard instance used for sharing state.
start_state (str): The name of the state machine's starting state.
Raises:
Exception: If an error occurs while executing a callback.
|
protected |
Executes all transition callbacks.
Parameters:
blackboard (Blackboard): The blackboard instance used for sharing state.
from_state (str): The state the transition is coming from.
to_state (str): The state the transition is going to.
outcome (str): The outcome of the transition.
Raises:
Exception: If an error occurs while executing a callback.
| None yasmin.state_machine.StateMachine.add_end_cb | ( | self, | |
| Callable | cb, | ||
| List[Any] | args = None ) |
Adds a callback to be called when the state machine ends.
Parameters:
cb (Callable): The callback function to execute.
args (List[Any], optional): A list of arguments to pass to the callback. Defaults to None.
| None yasmin.state_machine.StateMachine.add_start_cb | ( | self, | |
| Callable | cb, | ||
| List[Any] | args = None ) |
Adds a callback to be called when the state machine starts.
Parameters:
cb (Callable): The callback function to execute.
args (List[Any], optional): A list of arguments to pass to the callback. Defaults to None.
| None yasmin.state_machine.StateMachine.add_state | ( | self, | |
| str | name, | ||
| State | state, | ||
| Dict[str, str] | transitions = None, | ||
| Dict[str, Dict[str, str]] | remappings = None ) |
Adds a new state to the state machine.
Parameters:
name (str): The name of the state to add.
state (State): The State object to associate with the name.
transitions (Dict[str, str], optional): A dictionary mapping source outcomes to target states. Defaults to None.
Raises:
KeyError: If the state name is already registered or is an outcome.
ValueError: If transitions contain empty keys or values.
KeyError: If transitions reference unregistered outcomes.
| None yasmin.state_machine.StateMachine.add_transition_cb | ( | self, | |
| Callable | cb, | ||
| List[Any] | args = None ) |
Adds a callback to be called during state transitions.
Parameters:
cb (Callable): The callback function to execute.
args (List[Any], optional): A list of arguments to pass to the callback. Defaults to None.
| None yasmin.state_machine.StateMachine.cancel_state | ( | self | ) |
Cancels the current state and any associated operations. Overrides the cancel_state method from the parent State class.
Reimplemented from yasmin.state.State.
| str yasmin.state_machine.StateMachine.execute | ( | self, | |
| Blackboard | blackboard ) |
Executes the state machine starting from the initial state.
Parameters:
blackboard (Blackboard): The blackboard instance used for sharing state.
Returns:
str: The final outcome of the state machine execution.
Raises:
RuntimeError: If the execution is canceled unexpectedly.
KeyError: If an outcome does not belong to a state or the state machine.
Reimplemented from yasmin.state.State.
| str yasmin.state_machine.StateMachine.get_current_state | ( | self | ) |
Retrieves the name of the current state being executed.
Returns:
str: The name of the current state, or an empty string if none is set.
| str yasmin.state_machine.StateMachine.get_start_state | ( | self | ) |
Retrieves the name of the current starting state.
Returns:
str: The name of the starting state.
| Dict[str, Union[State, Dict[str, str]]] yasmin.state_machine.StateMachine.get_states | ( | self | ) |
Retrieves all states in the state machine.
Returns:
Dict[str, Union[State, Dict[str, str]]]: A dictionary of states and their transitions.
| None yasmin.state_machine.StateMachine.set_start_state | ( | self, | |
| str | state_name ) |
Sets the initial state for the state machine.
Parameters:
state_name (str): The name of the initial state to set.
Raises:
ValueError: If the state name is empty.
KeyError: If the state name is not found in the states.
| None yasmin.state_machine.StateMachine.validate | ( | self, | |
| bool | strict_mode = False ) |
Validates the state machine to ensure all states and transitions are correct.
Parameters:
strict_mode (bool): Whether the validation is strict, which means checking if all state outcomes are used and all state machine outcomes are reached.
Raises:
RuntimeError: If no initial state is set.
KeyError: If there are any unregistered outcomes or transitions.
|
private |
The name of the current state being executed.
|
private |
A threading lock to manage access to the current state.
|
private |
A list of callbacks to call when the state machine ends.
|
private |
A dictionary of remappings to set in the blackboard in each transition.
|
private |
A list of callbacks to call when the state machine starts.
|
private |
A list of callbacks to call during state transitions.
|
protected |
The name of the initial state of the state machine.
|
protected |
A dictionary mapping state names to their corresponding state objects and transitions.
|
protected |
A flag indicating whether the state machine has been validated.