Releases: opsani/statesman
v1.0.4 "crimson meerkat"
v1.0.3 "crimson meerkat"
Supports python 3.11
v1.0.2.post1 "crimson meerkat"
Relax python version requirements to allow installation on versions as low as 3.7
v1.0.2 "crimson meerkat"
Changed
- Default python version set to 3.9.9
Fixed
- Bug where pydantic model Event.return_type default value (bool) was overriding initialization argument
v1.0.1 "crimson meerkat"
Hear me and rejoice!
This is the initial stable release of statesman, dubbed "crimson meerkat".
Statesman is a modern, asyncio focused library for implementing Finite State Machines in Python 3.6+. It has been designed to deliver an elegant, expressive API for modeling state machines and interacting with them from application code.
Version 1.0 includes the following:
- A lightweight, yet fully-featured implementation of the usual suspects you expect to see in a Finite State Machine library (states, events, transitions, actions).
- A declarative, simple API utilizing type hints, decorators, and enums.
- Provides a rich set of actions and callbacks for states and events. States support entry and exit actions, events have guard, before, on, and after actions. State machine-wide callbacks are provided via overridable methods.
- Designed and built async native. Callbacks are dispatched asynchronously,
making it easy to integrate with long-running, event-driven processes. - Guard actions can cancel transition before any state changes are applied.
- Data can be modeled directly on the state machine subclass compliments of
Pydantic. - Events support the use of arbitrary associated parameter data that is made available to all actions. Parameters are matched against the signature of the receiving callable, enabling compartmentalization of concerns.
- Solid test coverage and documentation.
v1.0.0 "crimson meerkat"
Hear me and rejoice!
This is the initial stable release of statesman, dubbed "crimson meerkat".
Statesman is a modern, asyncio focused library for implementing Finite State Machines in Python 3.6+. It has been designed to deliver an elegant, expressive API for modeling state machines and interacting with them from application code.
Version 1.0 includes the following:
- A lightweight, yet fully-featured implementation of the usual suspects you expect to see in a Finite State Machine library (states, events, transitions, actions).
- A declarative, simple API utilizing type hints, decorators, and enums.
- Provides a rich set of actions and callbacks for states and events. States support entry and exit actions, events have guard, before, on, and after actions. State machine-wide callbacks are provided via overridable methods.
- Designed and built async native. Callbacks are dispatched asynchronously,
making it easy to integrate with long-running, event-driven processes. - Guard actions can cancel transition before any state changes are applied.
- Data can be modeled directly on the state machine subclass compliments of
Pydantic. - Events support the use of arbitrary associated parameter data that is made available to all actions. Parameters are matched against the signature of the receiving callable, enabling compartmentalization of concerns.
- Solid test coverage and documentation.