302 lines
14 KiB
Plaintext
302 lines
14 KiB
Plaintext
|
|
-------------------------------------------------------------------
|
||
|
|
Wed Jun 4 06:08:02 UTC 2025 - Steve Kowalik <steven.kowalik@suse.com>
|
||
|
|
|
||
|
|
- Switch to pyproject macros.
|
||
|
|
|
||
|
|
-------------------------------------------------------------------
|
||
|
|
Mon Apr 14 12:22:35 UTC 2025 - Georg Pfuetzenreuter <georg.pfuetzenreuter@suse.com>
|
||
|
|
|
||
|
|
- Enable sle15_python_module_pythons (align with pygraphviz)
|
||
|
|
|
||
|
|
-------------------------------------------------------------------
|
||
|
|
Thu Apr 3 13:47:51 UTC 2025 - John Paul Adrian Glaubitz <adrian.glaubitz@suse.com>
|
||
|
|
|
||
|
|
- Update to 0.9.2
|
||
|
|
* Bug #610: Decorate models appropriately when `HierarchicalMachine`
|
||
|
|
is passed to `add_state` (thanks @e0lithic)
|
||
|
|
* Bug #647: Let `may_<trigger>` check all parallel states in processing
|
||
|
|
order (thanks @spearsear)
|
||
|
|
* Bug: `HSM.is_state` works with parallel states now
|
||
|
|
* Experimental features:
|
||
|
|
+ Add `model_override` to Machine constructor to determine the mode of
|
||
|
|
operation. With `model_override=Fale` (default), `transitions` will
|
||
|
|
not override already defined methods on a model just as it did before.
|
||
|
|
For workflows relying on typing, `model_override=True` will override
|
||
|
|
methods already defined on the model and only those (!). This allows
|
||
|
|
to control which convenience methods shall be assigned to the model
|
||
|
|
and keeps the statically 'assumed' model in sync with its runtime
|
||
|
|
counterpart. Since defining each and every method manually is rather
|
||
|
|
tiresome, `transitions.experimental.utils.generate_base_model`
|
||
|
|
features a way to convert a machine configuration into a `BaseClass`
|
||
|
|
with all convenience functions and callbacks.
|
||
|
|
+ Add `transitions.experimental.utils.{add_transitions, event,
|
||
|
|
with_model_definitions, transition}` to define trigger methods in a
|
||
|
|
class model for more convenient type checking. `add_transitions`
|
||
|
|
can be used as a function decorator and is stackable. `event` returns
|
||
|
|
a placeholder object for attribute assigment. `add_transitions` and
|
||
|
|
`event` have the same signature and support transition definition like
|
||
|
|
machine constructors. The function `transition` can used for better
|
||
|
|
typing and returns a dictionary that can be passed to the utility
|
||
|
|
functions but also to a machine constructor. `add_transitions` and
|
||
|
|
`event` require a machine decorated with `with_model_definitions`.
|
||
|
|
Decorating a machine `with_model_definitions` implies `model_override=True`.
|
||
|
|
* Feature: Add `may_trigger` to models to check whether transitions can
|
||
|
|
be conducted by trigger name.
|
||
|
|
* Feature: Add Mermaid diagram backend that returns a mermaid diagram as
|
||
|
|
a string. `use_pygraphviz` is deprecated in favour for `graph_engine`
|
||
|
|
which may be `pygraphviz` (default), `graphviz` or `mermaid`.
|
||
|
|
- Refresh remove-py2-crumbs.patch
|
||
|
|
|
||
|
|
-------------------------------------------------------------------
|
||
|
|
Thu May 30 08:25:50 UTC 2024 - Markéta Machová <mmachova@suse.com>
|
||
|
|
|
||
|
|
- update to 0.9.1
|
||
|
|
* several bugfixes
|
||
|
|
* typing improvements
|
||
|
|
* introduces `on_final` callbacks on machines (as well as
|
||
|
|
`NestedState`) and `final` flags for states
|
||
|
|
* see the full list in Changelog.md
|
||
|
|
- Add remove-py2-crumbs.patch to get rid of most py2 remnants
|
||
|
|
- Add iteritems.patch to clean the rest of six
|
||
|
|
|
||
|
|
-------------------------------------------------------------------
|
||
|
|
Fri Jan 12 08:26:55 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||
|
|
|
||
|
|
- update to 0.9.0:
|
||
|
|
* removed legacy implementation of `HierarchicalMachine` from
|
||
|
|
the package
|
||
|
|
* Bug #551: Fix active state styling in `GraphMachine` (thanks
|
||
|
|
@betaboon)
|
||
|
|
* Bug #554: Fix issues related to scopes and queueing in
|
||
|
|
`HierachicalMachine` (thanks @jankrejci)
|
||
|
|
* Bug #568: Reflexive transitions (dest: '=') had not been
|
||
|
|
resolved correctly when source was a wildcard (thanks @jnu)
|
||
|
|
* Bug #568: HSM did not detect reflexive transitions if src was
|
||
|
|
a parent state (thanks @lostcontrol)
|
||
|
|
* Bug #569: Fix implicit fallback to `graphviz` when
|
||
|
|
`pygraphviz` was not installed (thanks @FridjofAmundsen)
|
||
|
|
* Bug #580: Fix `on_timeout` callback resolution when timeout
|
||
|
|
had been initialized with `timeout=0` (thanks @Rysbai)
|
||
|
|
* Bug #582: Last label in `GraphSupport` was not correctly
|
||
|
|
aligned when `show_attributes=True` (thanks @spagh-eddie)
|
||
|
|
* Feature: Add pyi stub files for better type hinting. Since
|
||
|
|
many functions and constructors allow rather arbitrary
|
||
|
|
arguments time will tell whether typing should be strict (and
|
||
|
|
cause more mypy issues) or more relaxed (and thus less
|
||
|
|
precise).
|
||
|
|
* Feature: Reviewed and improved method documentation
|
||
|
|
* Feature #549: Add `may` transition check to transitions
|
||
|
|
(thanks @artofhuman)
|
||
|
|
* Feature #552: Refactored error handling to be able to handle
|
||
|
|
`MachineError` in `on_exception` callbacks (thanks @kpihus)
|
||
|
|
* Feature: Add `mypy` to test workflow
|
||
|
|
* PR #461: Add `Retry` state to supported state stereotypes
|
||
|
|
(thanks @rgov)
|
||
|
|
* Internal: `Machine._identify_callback` has been converted to
|
||
|
|
instance method from class method
|
||
|
|
* Internal: `LockedMachine._get_qualified_state_name` has been
|
||
|
|
converted to instance method from static method
|
||
|
|
* Internal: Removed `_super` workaround related to dill (see
|
||
|
|
https://github.com/pytransitions/transitions/issues/236)
|
||
|
|
* ## 0.8.11 (February 2022)
|
||
|
|
* Release 0.8.11 is the last 0.8 release and contains fixes for
|
||
|
|
Python 3.10 compatibility issues
|
||
|
|
* Bug #559: Rewrote an async test and replaced `setDaemon` with
|
||
|
|
`daemon` property assignment for thread handling (thanks
|
||
|
|
@debalance)
|
||
|
|
- drop transitions-fixpy310.patch (upstream)
|
||
|
|
|
||
|
|
-------------------------------------------------------------------
|
||
|
|
Tue Jan 11 21:26:06 UTC 2022 - Ben Greiner <code@bnavigator.de>
|
||
|
|
|
||
|
|
- 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 <code@bnavigator.de>
|
||
|
|
|
||
|
|
- 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 <mardnh@gmx.de>
|
||
|
|
|
||
|
|
- 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 <mardnh@gmx.de>
|
||
|
|
|
||
|
|
- 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 <mcalabkova@suse.com>
|
||
|
|
|
||
|
|
- Use recent pytest
|
||
|
|
|
||
|
|
-------------------------------------------------------------------
|
||
|
|
Sun Jun 28 09:27:04 UTC 2020 - Martin Hauke <mardnh@gmx.de>
|
||
|
|
|
||
|
|
- 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 <dmueller@suse.com>
|
||
|
|
|
||
|
|
- remove pep8 unit tests, those are not useful to execute and
|
||
|
|
fail
|
||
|
|
|
||
|
|
-------------------------------------------------------------------
|
||
|
|
Fri Apr 3 06:23:04 UTC 2020 - Martin Hauke <mardnh@gmx.de>
|
||
|
|
|
||
|
|
- 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 <mardnh@gmx.de>
|
||
|
|
|
||
|
|
- 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 <mardnh@gmx.de>
|
||
|
|
|
||
|
|
- Initial package, version 0.7.1
|