transitions v0.8.9 Release Notes

Release Date: 2021-09-01 // about 2 months ago
  • ๐Ÿ›  Release 0.8.9 is a minor release and contains a bugfix for HSM, a feature for GraphSupport and changes internal cache handling:

    • ๐Ÿ›  Bugfix #544: NestedEvent now wraps the machine's scope into partials passed to HierarchicalMachine._process. This prevents queued transitions from losing their scope.
    • ๐Ÿ”‹ Feature #533: (A)Graph.draw function (object returned by GraphMachine.get_graph()) can be passed a file/stream object as first parameter or None. The later will result in draw returning a binary string. (thanks @Blindfreddy).
    • ๐Ÿ”‹ Feature #532: Use id(model) instead of model for machine-bound caches in LockedMachine, AsyncMachine and GraphMachine. This might influence pickling (thanks @thedrow).

Previous changes from v0.8.8

  • ๐Ÿ›  Release 0.8.8 is a minor release and contains a bugfix and several new or improved features:

    • ๐Ÿ›  Bugfix #526: AsyncMachine does not remove models when remove_models is called (thanks @Plazas87)
    • ๐Ÿ”‹ Feature #517: Introduce try/except for finalize callbacks in Machine and HierachicalMachine. Thus, errors occurring in finalize callbacks will be suppressed and only the original error will be raised.
    • ๐Ÿ”‹ Feature #520: Show references in graphs and markup. Introduce MarkupMachine.format_references to tweak reference formatting (thanks @StephenCarboni)
    • ๐Ÿ”‹ Feature #485: Introduce Machine.on_exception to handle raised exceptions in callbacks (thanks @thedrow)
    • ๐Ÿ”‹ Feature #527: Machine.get_triggers now supports State and Enum as arguments (thanks @luup2k)
    • ๐Ÿ”‹ Feature #506: NestedState and HierachicalMachine.add_states now accept (lists of) states and enums as initial parameter