Skip to main content
https://raw.github.com/klen/muffin/develop/logo.png

The Muffin

The Muffin – A web framework based on Asyncio stack. (early alpha)

Build Status Coverals http://img.shields.io/pypi/v/muffin.svg?style=flat-square http://img.shields.io/pypi/dm/muffin.svg?style=flat-square Donate

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.

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)

Download files

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

Source Distribution

muffin-0.0.56.tar.gz (12.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

muffin-0.0.56-py2.py3-none-any.whl (16.6 kB view details)

Uploaded Python 2Python 3

File details

Details for the file muffin-0.0.56.tar.gz.

File metadata

  • Download URL: muffin-0.0.56.tar.gz
  • Upload date:
  • Size: 12.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for muffin-0.0.56.tar.gz
Algorithm Hash digest
SHA256 b832cda631607818cecce0783e8e1f5d9550c58aef80ce4bec02017078ab7aa7
MD5 11724ffed3d4c916c32e759f8257647d
BLAKE2b-256 c4a91b4588c2983a726594ff146fdf53703b832f52e8f36297f818089a6f761f

See more details on using hashes here.

File details

Details for the file muffin-0.0.56-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for muffin-0.0.56-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 cc082868cc86eb380b9db82ce448a9c3fb27fbd6f82de2f5a3b64204fb8c5f7a
MD5 bc1061a5d51d99b8e52f6971447e0962
BLAKE2b-256 56daff7d9dd7b876671242e109a9594afc0a57b1adf55310deb3a2b62d07e486

See more details on using hashes here.

Release history Release notifications | RSS feed

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page