Releases: opsani/statesman
v1.0.5 "crimson meerkat"
v1.0.4 "crimson meerkat"
Support python 3.12
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.