Skip to main content

XState for Python

Project description

XState for Python

XState for Python - work in progress!

How to use

from xstate.machine 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xstate-0.0.1.tar.gz (9.1 kB view hashes)

Uploaded Source

Built Distribution

xstate-0.0.1-py2-none-any.whl (12.4 kB view hashes)

Uploaded Python 2

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page