Skip to main content

a state machine that support multi process

Project description

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

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

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

Uploaded Source

Built Distribution

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.

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