Transitions

Latest version: v0.9.2

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

Scan your dependencies

Page 2 of 8

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

0.8.6

- `HierarchicalMachine.add_states` will raise a `ValueError` when an `Enum` name contains the currently used `NestedState.separator`.
- Bugfix 486: Reset `NestedState._scope` when enter/exit callbacks raise an exception (thanks m986883511)
- Bugfix 488: Let `HierarchicalMachine._get_trigger` which is bound to `model.trigger` raise a `MachineError` for invalid events and `AttributeError` for unknown events (thanks hsharrison)
- Introduced `HierarchicalMachine.has_trigger` to determine whether an event is valid for an HSM
- Feature 490: `AsyncMachine` features an event queue dictionary for individual models when `queued='model'` (thanks jekel)
- Feature 490: `Machine.remove_model` will now also remove model events from the event queue when `queued=True`
- Feature 491: `Machine.get_transitions` and its HSM counterpart now accept `Enum` and `State` for `source` and `dest` (thanks thedrow)

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 (thanks nickvazztau)

0.8.4

- Bugfix 477: Model callbacks were not added to a LockedHierarchicalMachine when the machine itself served as a model (thanks oliver-goetz)
- Bugfix 475: Clear collection of tasks to prevent memory leak when initializing many models (thanks h-nakai)
- 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

0.8.3

- Feature 473: Assign `is_<model_attribute>_<state_name>` instead of `is_<state_name>` when `model_attribute != "state"` to enable multiple versions of such convenience functions. A warning will be raised when `is_<state_name>` is used. (thanks artofhuman)
- Similarly, auto transitions (`to_<state_name>`) will be assigned as `to_<model_attribute>_<state_name>`. `to_<state_name>` will work as before but raise a warning until version 0.9.0.
- Bugfix: `allow_substates` did not consider enum states
- Feature: Nested enums can now be passed in a dict as `children` with `initial` parameter
- Bugfix 449: get_triggers/get_transitions did not return nested triggers correctly (thanks alexandretanem)
- Feature 452: Improve handling of label attributes in custom diagram states and `TransitionGraphSupport` (thanks badiku)
- Bugfix 456: Prevent parents from overriding (falsy) results of their children's events (thanks alexandretanem)
- Bugfix 458: Entering the same state caused key errors when transition was defined on a parent (thanks matlom)
- Bugfix 459: Do not remove current timeout runner in AsyncTimeout to prevent accidental overrides (thanks rgov)
- Rewording of `State.enter/exit` debug message emitted when callbacks have been processed.
- Bugfix 370: Fix order of `before_state_change/before` and `after/after_state_change` in `AsyncMachine` (thanks tzoiker and vishes-shell)
- Bugfix 470: `Graph.get_graph()` did not consider `enum` states when `show_roi=True` (thanks termim)

Page 2 of 8

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.