- Add support for Python 3.7 and 3.8 (adding to test matrix).
- Update development requirements.
- State machine names should now be fully qualified for mixins, simple names are deprecated and will no longer be supported on a future version.
- Development: Adding mypy linter.
- Add support for State machine inheritance. Thanks @rschrader.
- Add support for reverse transitions:
transition = state_a.from_(state_b). Thanks @romulorosa.
- Fix current state equal to destination on enter events. Thanks @robnils and @joshuacc1.
- Drop official support for Python 3.4 (removing from test matrix, code may still work).
- Fix Django integration for registry loading statemachine modules on Django1.7+.
- New event callbacks: on_enter_<state> and on_exit_<state>.
- Fix README.
- Fix deploy issues.
- Auto-discovering statemachine/statemachines under a Django project when they are requested using the mixin/registry feature.
- Fix bug on
CombinedTransition._can_runnot allowing transitions to run if there are more than two transitions combined.
- Custom exceptions.
- Duplicated definition of
on_executecallback is not allowed.
- Fix bug on
StateMachine.on_<transition.identifier>being called with extra
- Python 3.6 support.
- Drop official support for Python 3.3.
- Transition can be used as decorator for on_execute callback definition.
- Transition can point to multiple destination states.
- README getting started section.
- Tests to state machine without model.
Statecan hold a value that will be assigned to the model as the state value.
- Travis-CI integration.
- RTD integration.
- First release on PyPI.