Skip to main content

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)`

Package test pypi python: >3.9

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)

Source distribution for madframe 0.0.1
File Size Uploaded
madframe-0.0.1.tar.gz 15.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for madframe 0.0.1
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.0.1 This release

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