Opinionated uWSGI setup
Project description
mywsgi
Setting up uWSGI for a new Python project is hard. uWSGI provides a million configuration options and a million ways to do everything. I have slimmed this down to a core set of basic options.
These options are very opinionated and how I've grown to like doing things.
Installation
pip install mywsgi
How do I
There are two APIs for working with mywsgi. A Python API, and a CLI API.
CLI
mywsgi comes along with a CLI interface. This is the simplest way to get going.
$ mywsgi --help
usage: mywsgi [-h] module bind
positional arguments:
module python wsgi module
bind ip:port to bind to
optional arguments:
-h, --help show this help message and exit
mywsgi foo.wsgi:application 127.0.0.1:8000
If you want to override or change any uWSGI variables, the only way to do this is through uWSGI's native environment variables. So something like:
export UWSGI_MAX_REQUESTS=1000
export UWSGI_HARAKIRI=30
mywsgi foo.wsgi:application 127.0.0.1:8000
Python API
The Python API is simple, it exposes one function with two required arguments.
import mywsgi
mywsgi.run(
"foo.wsgi:application",
"127.0.0.1:8000",
)
Running this ultimately exec
s out and hands off all control over to uWSGI
. So beyond this call,
nothing else will run. Your program is gone.
You can pass additional uWSGI arguments along to this as additional kwargs:
import mywsgi
mywsgi.run(
"foo.wsgi:application",
"127.0.0.1:8000"
max_requests=10000,
harakiri=30,
)
Anything passed in as kwargs is directly passed along to uWSGI and will override my defaults.
Bring your own uWSGI
This package does not directly require uWSGI, but it supports working with both the uWSGI
package and the great pyuwsgi
package.
I'd highly recommend using pyuwsgi
instead of uWSGI
directly. pyuwsgi
is just a compiled binary distribution of uWSGI
.
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
Built Distribution
File details
Details for the file mywsgi-1.0.2.tar.gz
.
File metadata
- Download URL: mywsgi-1.0.2.tar.gz
- Upload date:
- Size: 3.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b140958454c6b7ed40e5915ee1dbe349a4bb77c8b2e71d070b48d6839b810274 |
|
MD5 | a4eeae70cd0e957e448697c926416661 |
|
BLAKE2b-256 | 342232db84e0c97bdd6cd7f7da94dce12e6dc93db19e5e520001ec68f5d08af2 |
File details
Details for the file mywsgi-1.0.2-py2.py3-none-any.whl
.
File metadata
- Download URL: mywsgi-1.0.2-py2.py3-none-any.whl
- Upload date:
- Size: 4.2 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8be16c38683bd1027faf5f5a89b1435ba9db13d4c29643e9380b32d5c873e85d |
|
MD5 | f31f537d23ca625109f4f01adedf2349 |
|
BLAKE2b-256 | d16514308f3bcc64acacf87de8be2b3e1408bc759c977c7b2669fd13a3439678 |