Release 0.9.2 is a minor release and contains a new mermaid diagram backend, a new model decoration mode for easier development with types and some more features and bugfixes.
- 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`.