------------------------------------------------------------------- Tue Jan 11 21:26:06 UTC 2022 - Ben Greiner - Add support for Python 3.10 * transitions-fixpy310.patch -- gh#pytransitions/transitions#559 - Make sure the graphviz tests don't error out without an installed font - Clean obsolete python36 conditionals ------------------------------------------------------------------- Sun Oct 24 17:34:22 UTC 2021 - Ben Greiner - Update to version 0.8.10 * Feature #545: The literal 'self' (default model parameter of Machine) has been replaced by the class variable Machine.self_literal = 'self'. Machine now performs an identity check (instead of a value check) with mod is self.self_literal to determine whether it should act as a model. While 'self' should still work when passed to the model parameter, we encourage using Machine.self_literal from now on. This was done to enable easier override of Machine.__eq__ in subclasses (thanks @VKSolovev). * Bug #547: Introduce HierarchicalMachine.prefix_path to resolve global state names since the HSM stack is not reliable when queued=True (thanks @jankrejci). * Bug #548: HSM source states were exited even though they are parents of the destination state (thanks @wes-public-apps). - Don't test optional extra graphviz on python36: pygraphviz dropped Python 3.6 support ------------------------------------------------------------------- Thu Sep 2 15:58:41 UTC 2021 - Martin Hauke - Update to version 0.8.9 Bugfix * NestedEvent now wraps the machine's scope into partials passed to HierarchicalMachine._process. This prevents queued transitions from losing their scope. Feature * (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). * Use id(model) instead of model for machine-bound caches in LockedMachine, AsyncMachine and GraphMachine. This might influence pickling. ------------------------------------------------------------------- Wed Apr 7 16:32:09 UTC 2021 - Martin Hauke - Update to version 0.8.8 Bugfix * AsyncMachine does not remove models when remove_models is called. Feature * 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. * Show references in graphs and markup. Introduce MarkupMachine.format_references to tweak reference formatting. * Introduce Machine.on_exception to handle raised exceptions in callbacks. * Machine.get_triggers now supports State and Enum as arguments. * NestedState and HierachicalMachine.add_states now accept (lists of) states and enums as initial parameter. - Update to version 0.8.7 * State configuration dictionaries passed to HierarchicalMachine can also use states as a keyword to define substates. If children and states are present, only children will be considered. * HierarchicalMachine with custom separator now adds is_state partials for nested states (e.g. is_C.s3.a()) to models. * Use model_attribute consistently in AsyncMachine. * HierarchicalMachine now checks whether state_cls, event_cls and transition_cls have been subclassed from nested base classes (e.g. NestedState) to prevent hard to debug inheritance errors - Update to version 0.8.6 * HierarchicalMachine.add_states will raise a ValueError when an Enum name contains the currently used NestedState.separator. Bugfix * Reset NestedState._scope when enter/exit callbacks raise an exception. * Let HierarchicalMachine._get_trigger which is bound to model.trigger raise a MachineError for invalid events and AttributeError for unknown events. Features * Introduced HierarchicalMachine.has_trigger to determine whether an event is valid for an HSM. * AsyncMachine features an event queue dictionary for individual models when queued='model'. * Machine.remove_model will now also remove model events from the event queue when queued=True. * Machine.get_transitions and its HSM counterpart now accept Enum and State for source and dest. - Update to version 0.8.5 * AsyncMachine.switch_model_context is expected to be async now for easier integration of async code during model switch. * Bugfix #478: Initializing a machine with GraphSupport threw an exception when initial was set to a nested or parallel state. - Update to version 0.8.4 * Bugfix #477: Model callbacks were not added to a LockedHierarchicalMachine when the machine itself served as a model. * Bugfix #475: Clear collection of tasks to prevent memory leak when initializing many models. * Feature #474: Added static AsyncMachine.protected_tasks list which can be used to prevent transitions to cancel certain tasks. * Feature: Constructor of HierarchicalMachine now accepts substates ('A_1_c') and parallel states (['A', 'B']) as initial parameter. - Update to version 0.8.3 * Minor release and contains several bugfixes mostly related to HierarchicalStateMachine. ------------------------------------------------------------------- Mon Aug 24 12:06:21 UTC 2020 - Marketa Calabkova - Use recent pytest ------------------------------------------------------------------- Sun Jun 28 09:27:04 UTC 2020 - Martin Hauke - Update to version 0.8.2 * Improved testing without any optional graphviz package * _check_event_result failed when model was in parallel state * Only allow explicit dest=None in Machine.add_transition (not just falsy) for internal transitions * Fix state creation of nested enums * HierarchicalGraphMachine did not find/apply styling for parallel states * Bugfix: Model.trigger now considers the machine's and current state's ignore_invalid_triggers attribute and can be called with non-existing events * Child states may not have been exited when the executed transition had been defined on a parent * Introduced transitions.extensions.asyncio.AsyncTimeout as a state decorator to avoid threads used in transitions.extensions.state.Timeout * Use sets instead of lists to cache already covered transitions in nested state machines * Improve handling of unresolved attributes for easier inheritance * Refactored AsyncMachine to enable trio/anyio override ------------------------------------------------------------------- Tue Jun 9 07:44:24 UTC 2020 - Dirk Mueller - remove pep8 unit tests, those are not useful to execute and fail ------------------------------------------------------------------- Fri Apr 3 06:23:04 UTC 2020 - Martin Hauke - Update to versino 0.8.1 * Feature: Introduced experimental HierarchicalAsync(Graph)Machine * Feature #405: Support for nested Enums in HierarchicalMachine * Bugfix #400: Fix style initialization when initial state is an Enum * Bugfix #403: AsyncMachine.dispatch now returns a boolean asexpected * Bugfix #413: Improve diagram output for HierarchicalMachine * Increased coverage * Introduced xdist for parallel testing with pytest ------------------------------------------------------------------- Wed Mar 25 14:51:54 UTC 2020 - pgajdos@suse.com - version update to 0.8.0 - Feature: `HierarchicalMachine` has been rewritten to support parallel states. Please have a look at the ReadMe.md to check what has changed. + The previous version can be found in `transitions.extensions.nesting_legacy` for now - Feature: Introduced `AsyncMachine` (see discussion #259); note that async HSMs are not yet supported - Feature #390: String callbacks can now point to properties and attributes (thanks @jsenecal) - Bugfix: Auto transitions are added multiple times when add_states is called more than once - Bugfix: Convert state._name from `Enum` into strings in `MarkupMachine` when necessary - Bugfix #392: Allow `Machine.add_ordered_transitions` to be called without the initial state (thanks @mkaranki and @facundofc) - `GraphMachine` now attempts to fall back to `graphviz` when importing `pygraphviz` fails - Not implemented/tested so far (contributions are welcome!): + Proper Graphviz support of parallel states + AsyncHierachicalMachine ------------------------------------------------------------------- Fri Jan 10 19:57:29 UTC 2020 - Martin Hauke - Update to version 0.7.2 * Fix transitions for enums with str behavior * Don't mask away KeyError when executing a transition * Add support for dynamic model state attribute ------------------------------------------------------------------- Mon Sep 30 18:47:43 UTC 2019 - Martin Hauke - Initial package, version 0.7.1