madframe - Functional State-Machine Framework for Python
💢 TypeCheck at runtime(coming soon !)- ☮️ Non intruisive
- 🧰 Functionnal
- 🕐 Event-Based
Includes
🤖 Autofill
Autofill is the process of automaticaly composing a function usage deduced from the prototype naming and a given context.
from madframe.autofill import autofill
context = {"value": "foo"}
def some_function(value):
print(value)
await autofill(some_function, args=[], context=context) # notice that we don't pass any argument
> "foo"
# autofill undertand it has to retrieve the value from context if you don't specify it
await autofill(some_function, args["bar"], context=context) # we pass an argument
> "bar"
💁 every madframe decorator uses autofill
🕙 Routine
from madframe.bindings import setup
@setup
def initialize():
return {"some_key": "foo"}
@routine(1)
def print_foo(some_key):
print(some_key) # -> prints "foo"
🏗️ Setup
Setup is used to define function to be ran at start-up. Those executions block the start-up and will abort the lauch if they fail.
📝 Perpetuate
perpetuate is autofill but the context is also updated with the result of the function (given it's a dict)
🚩 Wire
from madframe.bindings import wire
something_is_done_when, do_something_when = wire()
fetch = do_something_when(fetch_data)
something_is_done_when(analyze_data)
fetch # is equivalent of `analyze_data(fetch_data)`
Installation
pip3 install madframe
Metadata
Release files for madframe 0.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| madframe-0.0.1.tar.gz | 15.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| madframe-0.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.8 kB
Release files / madframe-0.0.1.tar.gz
| Download URL | madframe-0.0.1.tar.gz |
|---|---|
| Size | 15.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d7e679f22987d6a40da336b0fa9a6d8f96f8426a47d2640ba7376fec5a74dbfd
|
|
BLAKE2b-256 checksum How to use checksums |
e4501efd6d5ee91b11d9f6feec8347ee4700a73db3a0de05637c8d8c76e4dc67
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.9.16
|
Release files / madframe-0.0.1-py3-none-any.whl
| Download URL | madframe-0.0.1-py3-none-any.whl |
|---|---|
| Size | 13.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8cd9c4b8a29d2d73605cdc4832573a68ad00b7db6918b48756a4f0f78329a612
|
|
BLAKE2b-256 checksum How to use checksums |
52423d0829ee81bf110015f1624ad6d2ae7fc74d457aeec63251be20d7f4841b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.9.16
|