All Versions
Latest Version
Avg Release Cycle
77 days
Latest Release
634 days ago

Changelog History
Page 3

  • v0.6.5 Changes

    April 16, 2018

    ๐Ÿ›  Release 0.6.5 is a minor release and contains a new feature and a bugfix:

    • ๐Ÿ”‹ Feature #287: Embedding HierarchicalMachine will now reuse the machine's initial state. Passing initial: False overrides this (thanks @mrjogo).
    • ๐Ÿ›  Bugfix #292: Models using GraphMashine were not picklable in the past due to graph property. Graphs for each model are now stored in GraphMachine.model_graphs (thanks @ansumanm).
  • v0.6.4 Changes

    January 03, 2018

    ๐Ÿš€ Release 0.6.4 is a minor release and contains a new feature and two bug fixes related to HierachicalMachine:

    • ๐Ÿ›  Bugfix #274: initial has not been passed to super in HierachicalMachine.add_model (thanks to @illes).
    • ๐Ÿ”‹ Feature #275: HierarchicalMachine.add_states now supports keyword parent to be a NestedState or a string.
    • ๐Ÿ›  Bugfix #278: NestedState has not been exited correctly during reflexive triggering (thanks to @hrsmanian).
  • v0.6.3 Changes

    November 30, 2017

    ๐Ÿš€ Release 0.6.3 is a minor release and contains a new feature and two bug fixes:

    • Bugfix #268: Machine.add_ordered_transitions changed states' order if initial is not the first or last state (thanks to @janekbaraniewski).
    • ๐Ÿ›  Bugfix #265: Renamed to to_state to prevent warnings when HSM is used as a model.
    • ๐Ÿ”‹ Feature #266: Introduce Machine.get_transitions to get a list of transitions for alteration (thanks to @Synss).
  • v0.6.2 Changes

    November 03, 2017

    ๐Ÿš€ Release 0.6.2 is a minor release and contains new features and bug fixes but also several internal changes:

    • ๐Ÿ“š Documentation: Add docstring to every public method
    • ๐Ÿ›  Bugfix #257: Readme example variable had been capitalized (thanks to @fedesismo)
    • โž• Add appveyor.yml for Windows testing; However, Windows testing is disabled due to #258
    • ๐Ÿ›  Bugfix #262: Timeout threads prevented program from execution when main thread ended (thanks to @tkuester)
    • prep_ordered_arg is now protected in core
    • Convert logger instances to _LOGGER to comply with protected module constant naming standards
    • traverse is now protected in HierarchicalMachine
    • โœ‚ Remove abstract class Diagram since it did not add functionality to diagrams
    • Specify several overrides of add_state or add_transition to keep the base class parameters instead of *args and **kwargs
    • ๐Ÿ”„ Change several if len(x) > 0: checks to if x: as suggested by the static code analysis to make use of falsy empty lists/strings.
  • v0.6.1 Changes

    September 04, 2017

    ๐Ÿš€ Release 0.6.1 is a minor release and contains new features as well as bug fixes:

    • ๐Ÿ”‹ Feature #245: Callback definitions ('before', 'on_enter', ...) have been moved to classes Transition and State
    • ๐Ÿ›  Bugfix #253: Machine.remove_transitions converted defaultdict into dict (thanks @Synss)
    • ๐Ÿ›  Bugfix #248: HierarchicalStateMachine's copy procedure used to cause issues with function callbacks and object references (thanks @Grey-Bit)
    • ๐Ÿ“‡ Renamed to to be consistent with the constructor parameter name
    • โž• Add Machine.add_transitions for adding multiple transitions at once (thanks @Synss)
  • v0.6.0 Changes

    August 22, 2017

    ๐Ÿš€ Release 0.6.0 is a major release and introduces new state features and bug fixes:

    • add_state_features convenience decorator supports creation of custom states
    • Tags makes states taggable
    • Error checks for error states (not accepted states that cannot be left); subclass of Tags
    • Volatile enables scoped/temporary state objects to handle context parameters
    • โœ‚ Removed add_self from Machine constructor
    • pygraphviz is now optional; use pip install transitions[diagrams] to install it
    • โš  Narrowed warnings filter to prevent output cluttering by other 3rd party modules (thanks to @ksandeep)
    • ๐Ÿ‘ป Reword HSM exception when wrong state object had been passedn (thanks to @Blindfreddy)
    • ๐Ÿ‘Œ Improved handling of partials during graph generation (thanks to @Synss)
    • Introduced check to allow explicit passing of callback functions which match the on_enter_<state> scheme (thanks to @termim)
    • ๐Ÿ› Bug #243: on_enter/exit callbacks defined in dictionaries had not been assigned correctly in HSMs (thanks to @Blindfreddy)
    • โ†ช Introduced workaround for Python 3 versions older than 3.4 to support dill version 0.2.7 and higher (thanks to @mmckerns)
    • ๐Ÿ‘Œ Improved manifest (#242) to comply with distribution standards (thanks to @jodal)
  • v0.5.3 Changes

    ๐Ÿš€ Release 0.5.3 is a minor release and contains several bug fixes:

    • Bug #214: LockedMachine as a model prevented correct addition of on_enter/exit_<state> (thanks to @kr2)
    • ๐Ÿ› Bug #217: Filtering rules for auto transitions in graphs falsely filtered certain transitions (thanks to @KarolOlko)
    • Bug #218: Uninitialized EventData.transition caused AttributeError in EventData.__repr__ (thanks to @kunalbhagawati)
    • ๐Ÿ› Bug #215: State instances passed to initial parameter of Machine constructor had not been processed properly (thanks @mathiasimmer)
  • v0.5.2 Changes

    ๐Ÿš€ Release 0.5.2 is a minor release and contains a bug fix:

    • ๐Ÿ› Bug #213: prevent LICENSE to be installed to root of installation path
  • v0.5.1 Changes

    ๐Ÿš€ Release 0.5.1 is a minor release and contains new features and bug fixes:

    • โž• Added reflexive transitions (thanks to @janLo)
    • Wildcards for reflexive (wildcard_same) and all (wildcard_all) destinations are Machine class variables now which can be altered if necessary.
    • โž• Add LICENSE to packaged distribution (thanks to @bachp)
    • ๐Ÿ› Bug #211: prepare and finalized had not been called for HierarchicalMachines (thanks to @booware)
  • v0.5.0 Changes

    ๐Ÿš€ 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)