<h1 align="center">
Fastapi LifespanManager
</h1>
`fastapi-lifespan-manager` is a Python library that provides a lifespan manager for FastAPI applications.
The `LifespanManager` in `fastapi-lifespan-manager` allows you to have multiple lifespan in one
application.
This library is particularly useful for managing background tasks, such as starting and stopping a database
connection or managing a cache, as well as for performing cleanup tasks, such as closing open file
handles or shutting down running processes.
To use `fastapi-lifespan-manager`, simply install it via pip:
```bash
pip install fastapi-lifespan-manager
```
Usage Example:
```python
from typing import AsyncIterator
from fastapi import FastAPI
from redis.asyncio import Redis
from sqlalchemy.ext.asyncio import create_async_engine
from fastapi_lifespan_manager import LifespanManager, State
manager = LifespanManager()
@manager.add
async def setup_db(app: FastAPI) -> AsyncIterator[State]:
engine = await create_async_engine("postgresql+asyncpg://user:password@localhost/db")
yield {"db": engine}
await engine.dispose()
@manager.add
async def setup_cache(app: FastAPI) -> AsyncIterator[State]:
redis = await Redis.from_url("redis://localhost:6379/0")
yield {"cache": redis}
await redis.close()
await redis.wait_closed()
app = FastAPI(lifespan=manager)
```
Raw data
{
"_id": null,
"home_page": "https://github.com/uriyyo/fastapi-lifespan-manager",
"name": "fastapi-lifespan-manager",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8,<4.0",
"maintainer_email": "",
"keywords": "",
"author": "Yurii Karabas",
"author_email": "1998uriyyo@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/06/1a/e559faa77de5d4afa02076de8257bcd492a9ea8c9206f2b3e5e451933349/fastapi_lifespan_manager-0.1.4.tar.gz",
"platform": null,
"description": "<h1 align=\"center\">\nFastapi LifespanManager\n</h1>\n\n`fastapi-lifespan-manager` is a Python library that provides a lifespan manager for FastAPI applications.\n\nThe `LifespanManager` in `fastapi-lifespan-manager` allows you to have multiple lifespan in one\napplication.\n\nThis library is particularly useful for managing background tasks, such as starting and stopping a database\nconnection or managing a cache, as well as for performing cleanup tasks, such as closing open file\nhandles or shutting down running processes.\n\nTo use `fastapi-lifespan-manager`, simply install it via pip:\n\n```bash\npip install fastapi-lifespan-manager\n```\n\nUsage Example:\n\n```python\nfrom typing import AsyncIterator\n\nfrom fastapi import FastAPI\nfrom redis.asyncio import Redis\nfrom sqlalchemy.ext.asyncio import create_async_engine\n\nfrom fastapi_lifespan_manager import LifespanManager, State\n\nmanager = LifespanManager()\n\n\n@manager.add\nasync def setup_db(app: FastAPI) -> AsyncIterator[State]:\n engine = await create_async_engine(\"postgresql+asyncpg://user:password@localhost/db\")\n\n yield {\"db\": engine}\n\n await engine.dispose()\n\n\n@manager.add\nasync def setup_cache(app: FastAPI) -> AsyncIterator[State]:\n redis = await Redis.from_url(\"redis://localhost:6379/0\")\n\n yield {\"cache\": redis}\n\n await redis.close()\n await redis.wait_closed()\n\n\napp = FastAPI(lifespan=manager)\n```\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "FastAPI Lifespan Manager",
"version": "0.1.4",
"project_urls": {
"Homepage": "https://github.com/uriyyo/fastapi-lifespan-manager",
"Repository": "https://github.com/uriyyo/fastapi-lifespan-manager"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "5682755d5092478a2cdec3528a2b7e4594af1fcc231cabfbbad492be99687191",
"md5": "a3695cc6b73203237d42515fa1216050",
"sha256": "9d18e2c01cd91432ed05c7f94a02bb43e9ad68a5a55ccc813005f0b5f79e8bd9"
},
"downloads": -1,
"filename": "fastapi_lifespan_manager-0.1.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a3695cc6b73203237d42515fa1216050",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8,<4.0",
"size": 4805,
"upload_time": "2024-02-20T17:48:40",
"upload_time_iso_8601": "2024-02-20T17:48:40.356982Z",
"url": "https://files.pythonhosted.org/packages/56/82/755d5092478a2cdec3528a2b7e4594af1fcc231cabfbbad492be99687191/fastapi_lifespan_manager-0.1.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "061ae559faa77de5d4afa02076de8257bcd492a9ea8c9206f2b3e5e451933349",
"md5": "a92ee541e55592340564ea0580b21dc1",
"sha256": "1dc4a776cd4305bf7baf4791f148216c21ab966916216d72b5dc2a27a21d8d02"
},
"downloads": -1,
"filename": "fastapi_lifespan_manager-0.1.4.tar.gz",
"has_sig": false,
"md5_digest": "a92ee541e55592340564ea0580b21dc1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8,<4.0",
"size": 4441,
"upload_time": "2024-02-20T17:48:41",
"upload_time_iso_8601": "2024-02-20T17:48:41.527695Z",
"url": "https://files.pythonhosted.org/packages/06/1a/e559faa77de5d4afa02076de8257bcd492a9ea8c9206f2b3e5e451933349/fastapi_lifespan_manager-0.1.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-02-20 17:48:41",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "uriyyo",
"github_project": "fastapi-lifespan-manager",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "fastapi-lifespan-manager"
}