transitions v0.5.0 Release Notes

  • ๐Ÿš€ Release 0.5.0 is a major release:

    • ๐Ÿ”„ CHANGED API: MachineError is now limited to internal error and has been replaced by AttributeError and ValueError where applicable (thanks to @ankostis)
    • ๐Ÿš€ CHANGED API: Phasing out add_self; model=None will add NO model starting from next major release; use model='self' instead.
    • ๐Ÿ—„ Introduced deprecation warnings for upcoming changes concerning Machine keywords model and add_self
    • ๐Ÿšš Introduced Machine.remove_transition (thanks to @PaleNeutron)
    • Introduced Machine._create_state for easier subclassing of states
    • ๐Ÿ‘ LockedMachine now supports custom context managers for each model (thanks to @paulbovbel)
    • Machine.before/after_state_change can now be altered dynamically (thanks to @peendebak)
    • Machine.add_ordered_transitions now supports prepare, conditons, unless, before and after (thanks to @aforren1)
    • New prepare_event and finalize_event keywords to handle transitions globally (thanks to @ankostis)
    • New show_auto_transitions keyword for GraphMachine.__init__ (default False); if enabled, show auto transitions in graph
    • New show_roi keyword for GraphMachine._get_graph (default False); if True, show only reachable states in retrieved graph
    • โœ… Test suite now skips contextual tests (e.g. pygraphviz) if dependencies cannot be found (thanks to @ankostis)
    • ๐Ÿ‘Œ Improved string representation of several classes (thanks to @ankostis)
    • ๐Ÿ‘Œ Improved LockedMachine performance by removing recursive locking
    • ๐Ÿ‘Œ Improved graph layout for nested graphs
    • ๐Ÿšง transitions.extensions.nesting.AGraph has been split up into Graph and NestedGraph for easier maintenance
    • ๐Ÿ›  Fixed bug related to pickling RLock in nesting
    • ๐Ÿ›  Fixed order of callback execution (thanks to @ankostis)
    • ๐Ÿ›  Fixed representation of condition names in graphs (thanks to @cemoody)