Release 0.4.3 is a minor release and contains bug fixes and several new features:
- Support dynamic model addition via
Machine.add_model
(thanks to @paulbovbel) - Allow user to explicitly pass a lock instance or context manager to LockedMachine (thanks to @paulbovbel)
- Fixed issue related to parsing of HSMs (thanks to @steval and @user2154065 from SO)
- When
State
is passed toMachine.add_transition
, it will check if the state (and not just the name) is known to the machine
Release 0.4.2 contains several new features and bugfixes:
- Machines can work with multiple models now (thanks to @gemerden)
- New
initial
keyword for nested states to automatically enter a child - New
Machine.trigger
method to trigger events by name (thanks to @IwanLD) - Bug fixes related to remapping in nested (thanks to @imbaczek)
- Log messages in
Transition.execute
andMachine.__init__
have been reassigned to DEBUG log level (thanks to @ankostis) - New
Machine.get_triggers
method to return all valid transitions from (a) certain state(s) (thanks to @limdauto and @guilhermecgs)
Release 0.4.1 is a minor release containing bug fixes, minor API changes, and community feedback:
-
async
is renamed toqueued
since it describes the mechanism better -
HierarchicalStateMachine.is_state now provides
allow_substates
as an optional argument(thanks to @jonathanunderwood) -
Machine can now be used in scenarios where multiple inheritance is required (thanks to @jonathanunderwood)
-
Adds support for tox (thanks to @medecau and @aisbaa)
-
Bug fixes:
- Problems with conditions shown multiple times in graphs
- Bug which omitted transitions with same source and destination in diagrams (thanks to @aisbaa)
- Conditions passed incorrectly when HSMs are used as a nested state
- Class nesting issue that prevented pickling with dill
- Two bugs in HierarchicalStateMachine (thanks to @ajax2leet)
- Avoided recursion error when naming a transition 'process' (thanks to @dceresuela)
-
Minor PEP8 fixes (thanks to @medecau)
Release 0.4 is a major release that includes several new features:
- New
async
Machine keyword allows queueing of transitions (thanks to @khigia) - New
name
Machine keyword customizes transitions logger output for easier debugging of multiple running instances - New
prepare
Transition keyword for callbacks before any 'conditions' are checked (thanks to @TheMysteriousX) - New
show_conditions
GraphSupport keyword adds condition checks to dot graph edges (thanks to @khigia) - Nesting now supports custom (unicode) substate separators
- Nesting no longer requires a leaf state (e.g. to_C() does not enter C_1 automatically)
- Factory for convenient extension mixins
- Numerous minor improvements and bug fixes
Mostly a bug fix release. Changes include:
- Fixes graphing bug introduced in 0.3.0 (thanks to @wtgee)
- Fixes bug in dynamic addition of before/after callbacks (though this is a currently undocumented feature)
- Adds coveralls support and badge
- Adds a few tests to achieve near-100% coverage
Release 0.3 includes a number of new features (nesting, multithreading, and graphing) as well as bug fixes and minor improvements:
- Support for nested states (thanks to @aleneum)
- Basic multithreading support for function access (thanks to @aleneum)
- Basic graphing support via graphviz (thanks to @svdgraaf)
- Stylistic edits, minor fixes, and improvements to README
- Expanded and refactored tests
- Minor bug fixes
- Enabled pickling in Python 3.4 (and in < 3.4 with the dill module)
- Added reference to generating Transition in EventData objects
- Fixed minor bugs
- README improvements, added TOC, and typo fixes
- Condition checks now receive optional data
- Removed invasive basicConfig() call introduced with logging in 0.2.6
- Fixed import bug that prevented dependency installation at setup
- Added rudimentary logging for key transition and state change events
- Added generic before/after callbacks that apply to all state changes
- Ensured string type compatibility across Python 2 and 3
- Added ability to suppress invalid trigger calls
- Shorthand definition of transitions via lists
- Automatic detection of predefined state callbacks
- Fixed bug in automatic transition creation
- Added Changelog
- Added travis-ci support
- Cleaned up and PEP8fied code
- Added 'unless' argument to transitions that mirrors 'conditions'
- Python 2/3 compatibility
- Added automatic to_{state}() methods
- Added ability to easily add ordered transitions