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)
Metadata
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 | Provenance | Actions |
|---|---|---|---|---|
| muffin-0.0.56.tar.gz | 12.7 kB | Without provenance | Details for muffin-0.0.56.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| muffin-0.0.56-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details for muffin-0.0.56-py2.py3-none-any.whl |
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 |
Security for muffin 0.0.56
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.