Skip to main content

Pycider

Documentation StatusTest Status

Documentation is here. This code is a Python implementation of deciders based on the F# code from Jérémie Chassaing located here dddeu-2023-deciders. There was additionally a talk on this, to be found here.

Installation

You can use pip install pycider or poetry add pycider to install this project from PyPI.

Usage

You can create Process or a Decider. A simple example of this can be found under the test composition page.

Decider

Decider is a simple state machine that seperates state changes and actions. Commands are actions which when executed return Events representing the results from the actions. You can use Event's to deterministically update the State allowing replayability and easy serialization by only saving Event's.

  • Commands are turned into Event's through decide() calls.
  • Event's deterministically update the State through evolve() calls.

Process

Process is a simple state machine for managing a system. A system has several needs. The system given a State should be able to resume to the next Command, The system should be able to react to Event changes and return Command's for dealing with those changes. Finally the system should be able to update the State deterministically given a Event.

  • Event's are turned into Commands thrugh react() calls.
  • Given a State, the system should be able to resume() to the appropriate Command.
  • Event's deterministically update the State through evolve() calls.

Release files for pycider 3.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pycider 3.0.1
File Size Uploaded
pycider-3.0.1.tar.gz 9.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pycider 3.0.1
File Interpreter ABI Platform
pycider-3.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 19.2 kB

Release files / pycider-3.0.1.tar.gz

Download URL pycider-3.0.1.tar.gz
Size 9.1 kB
Tags Source
SHA-256 checksum
How to use checksums
230c43239dab4f110c57d03438860ea8da70d3af4c68d9fe7f50512a4c179f0d
BLAKE2b-256 checksum
How to use checksums
5f11c52514f6756afea1cf3f7e8e29726b80f31d598164552e2ccc95ced9ba52
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.2 CPython/3.12.3 Linux/6.8.0-48-generic

Release files / pycider-3.0.1-py3-none-any.whl

Download URL pycider-3.0.1-py3-none-any.whl
Size 10.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7b2908a76f0097666b0763b5a0772f53e021a196fbb473abd6a896a4be6da109
BLAKE2b-256 checksum
How to use checksums
063d91d4495d77fe804c4d9955c220a5fd64fb68e9e35ec8566bb33cb3276699
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.2 CPython/3.12.3 Linux/6.8.0-48-generic

Release history Release notifications | RSS feed

This release

3.0.1 This release

2 release files

3.0.0

2 release files

2.0.0

2 release files

1.0.0

2 release files

0.9.12

2 release files

0.8.12

2 release files

0.7.12

2 release files

0.7.11

2 release files

0.6.9

2 release files

0.6.8

2 release files

0.6.7

2 release files

0.6.6

2 release files

0.6.5

2 release files

0.6.4

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.5.2

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page