class mlpy.agents.fsm.StateMachine(states=None, initial=None, transitions=None, onupdate=None)[source]

Bases: mlpy.modules.Module

The finite state machine.

The finite state machine handles state transitions, by triggering events. Events can also be fired from outside the state machine to force a transition.


states : FSMState | list[FSMState], optional

A list of states.

initial : str, optional

The initial state.

transitions : list[dict] | list[list], optional

Transition information.

onupdate : list[dict] | list[list], optional

Callback information to be executed on update.


current_state The current event.
mid The module’s unique identifier.


add_onupdate(source[, onupdate, conditions]) Add a callback to be called on update.
add_states(states) Add new state(s) to the managed states.
add_transition(event, source, dest[, ...]) Add a transition from a source state to a destination state.
clear_events([state_name]) Clear all events.
enter(t) Enter the current state.
exit() Exit the finite state machine.
get_state(state) Return the FSMState instance with the given name.
load(filename) Load the state of the module from file.
load_from_file(owner, filename, **kwargs) Load the FSM from file.
post_event(e, *args, **kwargs) An event is added to the events list.
reset(t, **kwargs) Reset the finite state machine and all registered states.
save(filename) Save the current state of the module to file.
set_state(state) Set the current state.
update(dt) Update state and handle event transitions.