fastapi-lifespan-manager


Namefastapi-lifespan-manager JSON
Version 0.1.4 PyPI version JSON
download
home_pagehttps://github.com/uriyyo/fastapi-lifespan-manager
SummaryFastAPI Lifespan Manager
upload_time2024-02-20 17:48:41
maintainer
docs_urlNone
authorYurii Karabas
requires_python>=3.8,<4.0
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <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"
}
        
Elapsed time: 0.65230s