Transitions

Latest version: v0.9.0

Safety actively analyzes 621562 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 8

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

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)

0.8.10

Release 0.8.10 is a minor release and contains two bug fixes for the HSM extension and changes how the 'self' literal string is handled.

- 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).

0.8.9

- 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).

0.8.8

- 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

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.
- Feature 500: `HierarchicalMachine` with custom separator now adds `is_state` partials for nested states (e.g. `is_C.s3.a()`) to models (thanks alterscape)
- Bugfix 512: Use `model_attribute` consistently in `AsyncMachine` (thanks thedrow)
- Testing now treats most warnings as errors (thanks thedrow)
- As a consequence, `pygraphviz.Agraph` in `diagrams_pygraphviz` are now copied by `transitions` since `AGraph.copy` as of version `1.6` does not close temporary files appropriately
- `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

Page 1 of 8

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.