🚀 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
Hashes for uvicorn_context_manager-0.0.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 411f3759048d2115854e1649c04bb0bfe9515dc4d079dfe1c98f35b0ce80e71d |
|
MD5 | 4a804d567e304aab4ba070ca0abcbe8b |
|
BLAKE2b-256 | 4b9bdbd6d9be67ddb26af3b0238f4eb46818159ad0997baf019d9468f53a8354 |
Hashes for uvicorn_context_manager-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dc0460b1f75b385dfd241e24d55fd4c3d85fc6f4c61506071e26883d781a4384 |
|
MD5 | 070aed711ade9221514014b98de5c6d5 |
|
BLAKE2b-256 | 5df91f4e3ac92a7b93771b0cb01592aece0862538ec270bee9fc927af6956052 |