Skip to main content

Configure uWSGI from your Python code

Project description

https://github.com/idlesign/uwsgiconf

release stats lic ci coverage

Work in progress. Stay tuned.

Description

Configure uWSGI from your Python code

If you think you known uWSGI you’re probably wrong. It is always more than you think it is. There are so many subsystems and options (800+) it is difficult to even try to wrap your mind around.

uwsgiconf allowing to define uWSGI configurations in Python tries to improve things the following ways:

  • It structures options for various subsystems using classes and methods;

  • It uses docstrings and sane naming to facilitate navigation;

  • It ships some useful presets to reduce boilerplate code;

Consider using IDE with autocompletion and docstings support to be more productive with uwsgiconf.

By that time you already know that uwsgiconf is just another configuration method. Why?

Strategies

Two main strategies to use uwsgiconf:

  1. Static: create configuration .py and compile in on demand into classic uWSGI .ini.

  2. Dynamic: create configuration .py, make it executable and give it directly to uWSGI

uwsgi --ini 'exec://path/to/myconf.py'

A taste of it

Let’s make myconf.py, enable its execution (-x permission and #!).

There we configure it using nice PythonSection preset to run our web app.

#! /usr/bin/env python3
from uwsgiconf.presets.nice import PythonSection


PythonSection(
    # Reload uWSGI when this file is updated.
    touch_reload=__file__,

    params_python=dict(
        python_home='/home/idle/venv/',
        search_path='/home/idle/apps/',
    ),

    # Load wsgi.py module from myapp package.
    wsgi_module='myapp.wsgi',

).networking.register_socket(
    # Make app available at http://127.0.0.1:8000
    address='127.0.0.1:8000',
    type=PythonSection.networking.socket_types.HTTP,

).as_configuration().print_ini()

Now we are ready to use this configuration dynamically (see Strategies paragraph above).

Documentation

http://uwsgiconf.readthedocs.org/

Project details


Download files

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

Source Distribution

uwsgiconf-0.1.1.tar.gz (58.4 kB view hashes)

Uploaded Source

Built Distribution

uwsgiconf-0.1.1-py2.py3-none-any.whl (65.1 kB view hashes)

Uploaded Python 2 Python 3

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