🚀 Context Manager to run `uvicorn` ASGI applications
Project description
🚀 Context Manager to run uvicorn ASGI applications
uvicorn_context_manager is a Python package that exposes a class named
UvicornContextManager that inherits from uvicorn.Server and
contains a Python context manager to deploy an ASGI application inside a context
and then gracefully shut it down.
The motivation was to provide a way to easily deploy an ASGI application when running tests or wanting to interact temporarily with ASGI applications.
This could have been a GitHub Gist or just a code snippet, but I think that
this can be useful for many uvicorn users, and it just contains the uvicorn
dependency so there's no overhead.
⚒️ Installation
Python greater than 3.7 and lower than 3.11
pip install uvicorn_context_manager
Or install it in development mode as:
pip install -e .
👨🏻💻 Usage
⚡️ With fastapi
As mentioned before, the context manager as uvicorn, lets you deploy any
ASGI application. Since fastapi is one of the most used Python frameworks for
web development according to a JetBrains survey, see https://twitter.com/tiangolo/status/1624002347776065538.
So on, we think it's useful to showcase how to use uvicorn_context_manager with
fastapi.
pip install fastapi
Once installed, you can deploy your ASGI application in a Python context manager as:
from fastapi import FastAPI
from uvicorn_context_manager import UvicornContextManager
api = FastAPI()
with UvicornContextManager(api) as server:
...
🥇 Credits
Credits go to @florimondmanca due to the solution provided at encode/uvicorn#1103, as the motivation to create this package was based on that code snippet.
Project details
Release history Release notifications | RSS feed
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file uvicorn_context_manager-0.0.1.tar.gz.
File metadata
- Download URL: uvicorn_context_manager-0.0.1.tar.gz
- Upload date:
- Size: 4.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.23.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
411f3759048d2115854e1649c04bb0bfe9515dc4d079dfe1c98f35b0ce80e71d
|
|
| MD5 |
4a804d567e304aab4ba070ca0abcbe8b
|
|
| BLAKE2b-256 |
4b9bdbd6d9be67ddb26af3b0238f4eb46818159ad0997baf019d9468f53a8354
|
File details
Details for the file uvicorn_context_manager-0.0.1-py3-none-any.whl.
File metadata
- Download URL: uvicorn_context_manager-0.0.1-py3-none-any.whl
- Upload date:
- Size: 4.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.23.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dc0460b1f75b385dfd241e24d55fd4c3d85fc6f4c61506071e26883d781a4384
|
|
| MD5 |
070aed711ade9221514014b98de5c6d5
|
|
| BLAKE2b-256 |
5df91f4e3ac92a7b93771b0cb01592aece0862538ec270bee9fc927af6956052
|