xstate-python
xstate-python copied to clipboard
XState for Python
Hi ! I installed xstate ([pip install xstate](https://pypi.org/project/xstate/)), and got the following packages installed: > MarkupSafe-2.1.1 asttokens-2.0.5 attrs-21.4.0 backcall-0.2.0 beautifulsoup4-4.10.0 bleach-4.1.0 certifi-2021.10.8 charset-normalizer-2.0.12 decorator-5.1.1 defusedxml-0.7.1 entrypoints-0.4 executing-0.8.3 idna-3.3 importlib-resources-5.4.0 ipython-8.1.1...
**THIS PR is WIP** - it introduces many additional test and functions base on `xstate.core` (main) https://github.com/statelyai/xstate/commit/019f849398fc0ce0b2361e8eac12e02294fbad3b I am pushing it as a WIP PR for visibility, comment and contribution....
Implementing the unit tests history_statein.py in #49 highlighted that eventless transitions `always` is yet to be implemented in xstate-python The unit tests `test_history_should_go_to_the_most_recently_visited_state_by_a_transient_transition_non_interpreter` is suppressed in commit:785d2bd In the commit...
This is a task originally made for PR #34 but I decided to make it into its own issue instead, since it will take some effort to do proper typing...
Implementing the unit tests `test_statein.py` in #49 highlighted that guarded transitions are not functional as they are yet to be implemented in `xstate-python` The relevant unit tests for `in` state...
Implementing the unit tests test_statein.py in #49 highlighted that transitions based on relative states (orthogonal/parallel or hierarchical) is yet to be implemented in xstate-python The relevant unit tests for in...
Implement `"strict": True` as an option in the machine configuration to allow a throw on a non-defined event for a given node. As it's a bit tricky to implement this...
See `test_history_state` in `tests/test_machine.py` for a failing example. [Line 175](https://github.com/statelyai/xstate-python/blob/79edfa109ae396aa57c863970254f934e4351688/xstate/algorithm.py#L175) uses singular `transition` property off of a StateNode which doesn't exist. Similarly, [Line 66](https://github.com/statelyai/xstate-python/blob/79edfa109ae396aa57c863970254f934e4351688/xstate/algorithm.py#L66) also tries to use a singular...
https://docs.python.org/3/library/enum.html
We obviously want to add documentation to the project. We could consider using [`sphinx`](https://www.sphinx-doc.org/en/master/) to create the documentation and [Read The Docs](https://readthedocs.org/) for hosting. It would also be nice to...