Skip to main content

Small research-oriented hook-based plugin engine.

Project description

MiniFlask

python-3 badge python-3 badge CI build status

Miniflask is a small research-oriented plugin-engine for python.

A long time ago in a galaxy full of plugin-engines ...

Quick Start

For a quick look into miniflask, just install it using

pip install miniflask

Read the Documentation

Short Example

Module Definition
Let's start a new project first by creating a new directory:

> ls
main.py
modules/
    module1/__init__.py
    module2/__init__.py
    module1/__init__.py

Let's define a simple module, modules/module1/__init__.py:

def main(state, event):
    print("main event called by module1")

def register(mf):
    mf.register_event('main', main, unique=False)

Let's define another module, modules/module2/__init__.py:

def main(state, event):
    print("main event called by module2")
    print("it uses a variable var:", state["var"])

def register(mf):
    mf.register_defaults({
        "var": 42
    })
    mf.register_event('main', main, unique=False)

Our main.py looks like this:

import miniflask

# initialize miniflask
mf = miniflask.init(".modules")
mf.run()

Usage:
Now, we can use our program in the following ways:

> python main.py
There is nothing to do.
> python main.py module1
main event called by module1
> python main.py module2,module1
main event called by module2
it uses a variable var: 42
main event called by module1
> python main.py module2,module1 --module2.var 9001
main event called by module2
it uses a variable var: 9001
main event called by module1

Contributing

  1. Fork it!
  2. Create your feature branch (git checkout -b feature/fooBar)
  3. Commit your changes (git commit -am 'Add some fooBar')
  4. Push to the branch (git push origin feature/fooBar)
  5. Create a new Pull Request

License

License: MIT - See LICENSE for details.

Project details


Release history Release notifications | RSS feed

This version

5.1.2

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

miniflask-5.1.2.tar.gz (43.0 kB view hashes)

Uploaded Source

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