The Muffin
The Muffin – A web framework based on Asyncio stack. (early alpha)
Requirements
python >= 3.3
Installation
The Muffin should be installed using pip:
pip install muffin
Usage
See sources of example application.
Run example server:
$ make run
Configuration
Muffin gets configuration options from python files. By default the package tries to load a configuration from config module (config.py).
There are few ways to redifine configuration module:
Set configuration module in your app initialization:
app = muffin.Application('myapp', CONFIG='config.debug')Set environment variable MUFFIN_CONFIG:
$ MUFFIN_CONFIG=settings_local muffin example run
Also you can define any options while initializing your application:
app = muffin.Application('myapp', DEBUG=True, ANY_OPTION='Here', ONE_MORE='Yes')
Base application options
Base Muffin options and default values:
# Configuration module 'CONFIG': 'config', # Enable debug mode 'DEBUG': False, # List of enabled plugins 'PLUGINS': [], # Setup static files in development 'STATIC_PREFIX': '/static', 'STATIC_ROOT': 'static',
CLI integration
Run in your shell:
$ muffin path.to.your.module:app_object_name --help
Write a custom command
@app.manage.command
def hello(name, upper=False):
""" Write command help text here.
:param name: Write your name
:param upper: Use uppercase
"""
greetings = 'Hello %s!' % name
if upper:
greetings = greetings.upper()
print(greetings)
$ muffin example hello --help
Write command help text here.
positional arguments:
name Write your name
optional arguments:
-h, --help show this help message and exit
--upper Enable use uppercase
--no-upper Disable use uppercase
$ muffin example hello mike --upper
HELLO MIKE!
Plugins
THe Muffin has a plugins support.
Muffin-Jade – Jade templates
Muffin-Mongo – MongoDB (pymongo) support
Muffin-OAuth – OAuth client
Muffin-Peewee – Peewee support (SQL, ORM)
Muffin-Redis – Redis support
Muffin-Sentry – Sentry integration
Muffin-Session – User session (auth)
Testing
Set module path to your Muffin Application in pytest configuration file or use command line option --muffin-app.
Example:
$ py.test -xs --muffin-app example
Deployment
Use muffin command. By example:
$ muffin example run --workers=4
See muffin {APP} run --help for more info.
Bug tracker
If you have any suggestions, bug reports or annoyances please report them to the issue tracker at https://github.com/klen/muffin/issues
Contributing
Development of The Muffin happens at: https://github.com/klen/muffin
Contributors
klen (Kirill Klenov)
License
Licensed under a MIT license (See LICENSE)
Release files for muffin 0.0.56
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| muffin-0.0.56.tar.gz | 12.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| muffin-0.0.56-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
Total release size: 29.3 kB
Release files / muffin-0.0.56.tar.gz
| Download URL | muffin-0.0.56.tar.gz |
|---|---|
| Size | 12.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b832cda631607818cecce0783e8e1f5d9550c58aef80ce4bec02017078ab7aa7
|
|
BLAKE2b-256 checksum How to use checksums |
c4a91b4588c2983a726594ff146fdf53703b832f52e8f36297f818089a6f761f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / muffin-0.0.56-py2.py3-none-any.whl
| Download URL | muffin-0.0.56-py2.py3-none-any.whl |
|---|---|
| Size | 16.6 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
cc082868cc86eb380b9db82ce448a9c3fb27fbd6f82de2f5a3b64204fb8c5f7a
|
|
BLAKE2b-256 checksum How to use checksums |
56daff7d9dd7b876671242e109a9594afc0a57b1adf55310deb3a2b62d07e486
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |