Skip to main content

state-machine

documentation
a state machine that can change difference backends (current only redis backend, lately the filelockbackend)
and keep state synchronously in different state even different host.

Install

sudo pip3 install state-machine-2

Quick Start

  1. Create a State Backend
from state_machine import StateMachine, RedisBackend
from redis import Redis
# you will need to install redis
# see more information here: https://redis.io/download#installation
redis_backend = RedisBackend(con=Redis(decode_responses=True))
  1. Create a State Machine Class
class Job(StateMachine):
    backend = redis_backend

    def __init__(self, state=None, jobid=None):
        self.jobid = jobid
        super().__init__(state=state, jobid=jobid)

    def __str__(self):
        return f"Job: {self.jobid}"
  1. Use
# first progress
>>> job1_0 = Job(jobid=1, state="NEW")
>>> job1_0.state = "STARTED"
# second progress
>>> job1_1 = Job(jobid=1, state="NEW")
>>> job1_1.state = "STARTED"
Error: StateChangedException() # raise Exception because the state has changed by job1_0

test and contribute

git clone git@github.com:ramwin/state-machine.git
cd state-machine
pip3 install -e ./
sh test.sh

Download files

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

Source Distribution

state-machine-2-0.2.4.tar.gz (16.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

state_machine_2-0.2.4-py3-none-any.whl (17.6 kB view details)

Uploaded Python 3

File details

Details for the file state-machine-2-0.2.4.tar.gz.

File metadata

  • Download URL: state-machine-2-0.2.4.tar.gz
  • Upload date:
  • Size: 16.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for state-machine-2-0.2.4.tar.gz
Algorithm Hash digest
SHA256 cf165cfb5d75960652c3ae1a5fa24842cb0545e0ed17380db622d55c3e374c2d
MD5 a228305e49181acbf94bbda4772f1fe1
BLAKE2b-256 59ea3d8e3d22f2f873c1a4c7e2fe2264c769e16183b0399df11273397ebbf954

See more details on using hashes here.

File details

Details for the file state_machine_2-0.2.4-py3-none-any.whl.

File metadata

File hashes

Hashes for state_machine_2-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 d83cdd681e99b252c14cbacca37140c6723199ccddef6057833e3c0011127f18
MD5 a4afa87910b90ef43e26ffa086a0e6dc
BLAKE2b-256 79980fe1cffa58fed826f9097813c437228438ce05ec5237b7c8e987c55f8ece

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.4 This release

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.0

2 files

0.0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page