Skip to main content

An event-based framework

Project description

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

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

madframe-0.0.1.tar.gz (15.2 kB view hashes)

Uploaded Source

Built Distribution

madframe-0.0.1-py3-none-any.whl (13.7 kB view hashes)

Uploaded Python 3

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