Small research-oriented hook-based plugin engine.
Project description
MiniFlask
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
# until we deploy to pip:
cd [your project dir]
git clone https://github.com/da-h/miniflask miniflask_git
ln -s miniflask_git/src/miniflask .
# in a future release of course:
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)
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)
Our main.py looks like this:
import miniflask
# initialize miniflask
mf = miniflask.init(module_dirs="./modules")
mf.parse_args()
# check if all requested modules are loaded
if not mf.halt_parse:
# call event "main" if exists
if hasattr(mf.event, 'main'):
mf.event.main()
else:
print("There is nothing to do.")
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
- Fork it!
- Create your feature branch (
git checkout -b feature/fooBar
) - Commit your changes (
git commit -am 'Add some fooBar'
) - Push to the branch (
git push origin feature/fooBar
) - Create a new Pull Request
License
- See LICENSE for details.
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.
Source Distribution
miniflask-1.9.2.tar.gz
(13.1 kB
view hashes)