All Projects → davidkpiano → Xstate Python

davidkpiano / Xstate Python

Licence: mit
XState for Python

Programming Languages

python
139335 projects - #7 most used programming language

XState for Python

XState for Python - work in progress!

How to use

from xstate import Machine

lights = Machine(
    {
        "id": "lights",
        "initial": "green",
        "states": {
            "green": {"on": {"TIMER": "yellow"},},
            "yellow": {"on": {"TIMER": "red"}},
            "red": {"on": {"TIMER": "green"}},
        },
    }
)

state = lights.initial_state # state.value is green

state = lights.transition(state, "TIMER") # state.value is yellow
state = lights.transition(state, "TIMER") # state.value is red
state = lights.transition(state, "TIMER") # state.value is green again

More advanced examples in the "examples" folder

Testing

  1. Run python3.7 -m venv .venv to create a virtual environment
  2. Run source .venv/bin/activate to go into that virtual environment
  3. Run pip install -r requirements_dev.txt to install all of the dependencies in requirements.txt (which includes pytest)
  4. Run npm i @scion-scxml/test-framework to download scxml files
  5. Run pytest to run the tests! 👩‍🔬

SCXML

SCXML tests are ran from the SCION Test Framework module.

Related Projects

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].