Skip to content

For Finite State Machines (EXPERIMENTAL and early release code)

License

Notifications You must be signed in to change notification settings

fanscribed/ffsm

Repository files navigation

ffsm is for finite state machines

https://badge.fury.io/py/ffsm.png https://travis-ci.org/fanscribed/ffsm.png?branch=master https://pypip.in/d/ffsm/badge.png

A finite state machine library created to support the Fanscribed Transcription Machine, among other projects.

Planned Features

  • State machines defined using a straightforward "Pythonic" API:
    • Developers should be able to very easily read and write state machines.
    • Namespaces should be easy to identify.
    • Similar APIs should have symmetry where they overlap.
  • Implement the general concepts of UML state machines:
    • Events, with parameters.
    • States.
    • Extended state variables.
    • Guard conditions.
    • Actions.
    • Transitions.
    • Hierarchically nested states.
  • State machine introspection and visualization:
    • PlantUML-based diagrams.
    • Textual descriptions.
    • Current situation descriptions and diagrams.
  • State machine versioning and migration:
    • Grandfathered state machines (continue to run using old machine schema).
    • Migrated state machines (migration paths from old machine schema).
  • Modular persistence and integration:
    • In-memory persistence.
    • Django ORM integration.
    • Logging and auditing.
  • Support for asynchronous transitions.
  • Scalable and efficient.
    • Support millions of persisted state machines.
    • Use memory wisely.
  • 100% test coverage.

About

For Finite State Machines (EXPERIMENTAL and early release code)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published