# {py:mod}`pypercard.state_machine` ```{py:module} pypercard.state_machine :noindex: ``` ```{autodoc2-docstring} pypercard.state_machine :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`Machine ` - ```{autodoc2-docstring} pypercard.state_machine.Machine :summary: ``` * - {py:obj}`State ` - ```{autodoc2-docstring} pypercard.state_machine.State :summary: ``` * - {py:obj}`Transition ` - ```{autodoc2-docstring} pypercard.state_machine.Transition :summary: ``` * - {py:obj}`Acceptor ` - ```{autodoc2-docstring} pypercard.state_machine.Acceptor :summary: ``` ```` ### API `````{py:class} Machine(model=None, states=None, transitions=None, initial_state_name='', history=None, context=None) :canonical: pypercard.state_machine.Machine :noindex: ```{autodoc2-docstring} pypercard.state_machine.Machine ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} pypercard.state_machine.Machine.__init__ ``` ````{py:property} current_state :canonical: pypercard.state_machine.Machine.current_state :noindex: ```{autodoc2-docstring} pypercard.state_machine.Machine.current_state ``` ```` ````{py:property} is_done :canonical: pypercard.state_machine.Machine.is_done :noindex: ```{autodoc2-docstring} pypercard.state_machine.Machine.is_done ``` ```` ````{py:method} add_state(state, transitions=None) :canonical: pypercard.state_machine.Machine.add_state :noindex: ```{autodoc2-docstring} pypercard.state_machine.Machine.add_state ``` ```` ````{py:method} goto(state_name, run_hooks=True) :canonical: pypercard.state_machine.Machine.goto :noindex: ```{autodoc2-docstring} pypercard.state_machine.Machine.goto ``` ```` ````{py:method} next(input_) :canonical: pypercard.state_machine.Machine.next :noindex: ```{autodoc2-docstring} pypercard.state_machine.Machine.next ``` ```` ````{py:method} history_pop_previous() :canonical: pypercard.state_machine.Machine.history_pop_previous :noindex: ```{autodoc2-docstring} pypercard.state_machine.Machine.history_pop_previous ``` ```` ````{py:method} start(state_name=None) :canonical: pypercard.state_machine.Machine.start :noindex: ```{autodoc2-docstring} pypercard.state_machine.Machine.start ``` ```` ````{py:method} pprint(indent='') :canonical: pypercard.state_machine.Machine.pprint :noindex: ```{autodoc2-docstring} pypercard.state_machine.Machine.pprint ``` ```` ````{py:method} _do_transition(transition, input_) :canonical: pypercard.state_machine.Machine._do_transition :noindex: ```{autodoc2-docstring} pypercard.state_machine.Machine._do_transition ``` ```` ````{py:method} _enter_state(state) :canonical: pypercard.state_machine.Machine._enter_state :noindex: ```{autodoc2-docstring} pypercard.state_machine.Machine._enter_state ``` ```` ````{py:method} _exit_state(state) :canonical: pypercard.state_machine.Machine._exit_state :noindex: ```{autodoc2-docstring} pypercard.state_machine.Machine._exit_state ``` ```` ````` `````{py:class} State(name, on_enter=None, on_exit=None) :canonical: pypercard.state_machine.State :noindex: ```{autodoc2-docstring} pypercard.state_machine.State ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} pypercard.state_machine.State.__init__ ``` ````{py:method} pprint(indent='') :canonical: pypercard.state_machine.State.pprint :noindex: ```{autodoc2-docstring} pypercard.state_machine.State.pprint ``` ```` ````{py:method} call_on_enter_hooks(machine) :canonical: pypercard.state_machine.State.call_on_enter_hooks :noindex: ```{autodoc2-docstring} pypercard.state_machine.State.call_on_enter_hooks ``` ```` ````{py:method} call_on_exit_hooks(machine) :canonical: pypercard.state_machine.State.call_on_exit_hooks :noindex: ```{autodoc2-docstring} pypercard.state_machine.State.call_on_exit_hooks ``` ```` ````` `````{py:class} Transition(source, acceptor, target=None, context_object_name='', before=None, after=None) :canonical: pypercard.state_machine.Transition :noindex: ```{autodoc2-docstring} pypercard.state_machine.Transition ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} pypercard.state_machine.Transition.__init__ ``` ````{py:method} pprint(indent='') :canonical: pypercard.state_machine.Transition.pprint :noindex: ```{autodoc2-docstring} pypercard.state_machine.Transition.pprint ``` ```` ````{py:method} accepts(machine, input_) :canonical: pypercard.state_machine.Transition.accepts :noindex: ```{autodoc2-docstring} pypercard.state_machine.Transition.accepts ``` ```` ````{py:method} get_context_object(machine, input_) :canonical: pypercard.state_machine.Transition.get_context_object :noindex: ```{autodoc2-docstring} pypercard.state_machine.Transition.get_context_object ``` ```` ````{py:method} get_target(machine, input_) :canonical: pypercard.state_machine.Transition.get_target :noindex: ```{autodoc2-docstring} pypercard.state_machine.Transition.get_target ``` ```` ````{py:method} call_before_hooks(machine, input_) :canonical: pypercard.state_machine.Transition.call_before_hooks :noindex: ```{autodoc2-docstring} pypercard.state_machine.Transition.call_before_hooks ``` ```` ````{py:method} call_after_hooks(machine, input_) :canonical: pypercard.state_machine.Transition.call_after_hooks :noindex: ```{autodoc2-docstring} pypercard.state_machine.Transition.call_after_hooks ``` ```` ````` `````{py:class} Acceptor(fn=None) :canonical: pypercard.state_machine.Acceptor :noindex: ```{autodoc2-docstring} pypercard.state_machine.Acceptor ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} pypercard.state_machine.Acceptor.__init__ ``` ````{py:method} __str__() :canonical: pypercard.state_machine.Acceptor.__str__ :noindex: ```{autodoc2-docstring} pypercard.state_machine.Acceptor.__str__ ``` ```` ````{py:method} accepts(machine, transition, input_) :canonical: pypercard.state_machine.Acceptor.accepts :noindex: ```{autodoc2-docstring} pypercard.state_machine.Acceptor.accepts ``` ```` ````{py:method} get_context_object(machine, transition, input_) :canonical: pypercard.state_machine.Acceptor.get_context_object :noindex: ```{autodoc2-docstring} pypercard.state_machine.Acceptor.get_context_object ``` ```` `````