Size: 2175
Comment: Clean up - point at my implementation, add structural markup instead of just using bold text as headings
|
Size: 2183
Comment: Fixed link to the decorator FSM
|
Deletions are marked like this. | Additions are marked like this. |
Line 53: | Line 53: |
A [[http://wiki.python.org/moin/PythonDecoratorLibrary/|decorator-based FSM]] is in the Decorator Library on this site. The module simplifies |
An [[http://wiki.python.org/moin/PythonDecoratorLibrary/|FSM using Python decorators]] is in the Decorator Library on this site. The module simplifies |
Contents
Introduction
This is a summary of FSM implementations in Python right now. Licensing remains unclear.
For general information about finite state machines, see:
Wikipedia:Finite_state_machine --
excellent!
Finite State Machine Editor
FSME is a tool where you can draw FSM diagrams, and then compile to a Python module (or C++ code.) It also makes an XML description of the FSM.
Requires QT for the editor. (Not the compiler, though, which probably reads XML.)
FSA - Finite State Automation in Python
FSA seems to be all about creating finite state machines, but I don't see a whole lot on how to use them.
Noah Spurrier's FSM
http://www.noah.org/python/FSM/
Noah's implementation is pure Python code. You init an FSM, register transitions, and then throw inputs at it. States and inputs must be hashable.
It's fairly similar to Skip's implementation (below).
fsmpy
This seems to be a Python wrapper around AT&T's FSM library. It's all oriented around "weighted" finite state machines, so I'm not so sure how suitable it is if you just want to use unweighted FSM.
Decorator-based FSM
An FSM using Python decorators is in the Decorator Library on this site. The module simplifies implementation of FSM's based on UML 2.0 state diagrams. The FSM is implemented as a class, with methods of the class associated with transitions or with states. The design is not the best for constructing FSMs to parse text being somewhat slower than alternatives.
Skip Montanaro's FSM
Features transition actions.