Yet another finite state machine with memory and callbacks.
Project description
install
pip install marmoolak
Usage
import marmoolak marmoolak.REDIS_HOST = '192.168.99.100' marmoolak.REDIS_PORT = 6379 machine = marmoolak.Machine def onpanic(e): print('panic! ' + e.msg) def oncalm(e): print('thanks to ' + e.msg + ' done by ' + e.args[0]) def ongreen(e): print('green') def onyellow(e): print('yellow') def onred(e): print('red') fsm = machine('myname', 'version1' , {'initial': 'green', 'events': [ {'name': 'warn', 'src': 'green', 'dst': 'yellow'}, {'name': 'panic', 'src': 'yellow', 'dst': 'red'}, {'name': 'panic', 'src': 'green', 'dst': 'red'}, {'name': 'calm', 'src': 'red', 'dst': 'yellow'}, {'name': 'clear', 'src': 'yellow', 'dst': 'green'}], 'callbacks': { 'onpanic': onpanic, 'oncalm': oncalm, 'ongreen': ongreen, 'onyellow': onyellow, 'onred': onred }}) fsm.panic(msg='killer bees', url="http://appido.ir/appido/api/getBooks.json") fsm.calm('bob', msg='sedatives in the honey pots')
credits
I used fysom and redis for achiving this functionality. So most of the credit goes to redis and fysom developers.
Contact me
Feel free to drop me a mail at rodmena@me.com
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Built Distributions
Close
Hashes for marmoolak-1.0.8-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a954fbc722544e7b8c667ff64542b46984b3fee377d432103ee12fe0569111e7 |
|
MD5 | 9271830e1dbf1568533576a1dbbff917 |
|
BLAKE2-256 | be7a389c86396f2bd2cba5a35920f474371e8c6f705b5ca46db58bc438ddf6a9 |
Close
Hashes for marmoolak-1.0.8-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a1ead154efe12cd45fc9daa080a98b7664d190849b3221e034665cbe365e65ce |
|
MD5 | 4e0c76a2cc6002fcb531509212a92bfc |
|
BLAKE2-256 | 60c02472cf4aabaffd343d3cc4f358afedb2bef403f47a07914ba08f93b1da0f |