Metadata-Version: 2.3
Name: aio-fluid
Version: 1.6.2
Summary: Tools for backend python services
License: BSD
Author: Luca Sbardella
Author-email: luca@quantmind.com
Requires-Python: >=3.11,<4.0
Classifier: License :: Other/Proprietary License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Provides-Extra: cli
Provides-Extra: db
Provides-Extra: http
Provides-Extra: k8s
Provides-Extra: log
Requires-Dist: aioconsole (>=0.8.0)
Requires-Dist: aiohttp (>=3.10.10) ; extra == "http"
Requires-Dist: alembic (>=1.13.2) ; extra == "db"
Requires-Dist: asyncpg (>=0.30.0) ; extra == "db"
Requires-Dist: click (>=8.1.7) ; extra == "cli"
Requires-Dist: click (>=8.1.7) ; extra == "db"
Requires-Dist: fastapi (>=0.115.2)
Requires-Dist: httpx (>=0.28.1) ; extra == "http"
Requires-Dist: inflection (>=0.5.1)
Requires-Dist: kubernetes (>=32.0.0) ; extra == "k8s"
Requires-Dist: kubernetes-asyncio (>=32.0.0) ; extra == "k8s"
Requires-Dist: prometheus-client (>=0.21.0) ; extra == "http"
Requires-Dist: psycopg2-binary (>=2.9.9) ; extra == "db"
Requires-Dist: pydanclick (>=0.5.0) ; extra == "cli"
Requires-Dist: pydanclick (>=0.5.0) ; extra == "db"
Requires-Dist: pydantic (>=2.9.2)
Requires-Dist: python-dateutil (>=2.9.0) ; extra == "db"
Requires-Dist: python-json-logger (>=3.2.1) ; extra == "log"
Requires-Dist: python-slugify (>=8.0.4) ; extra == "http"
Requires-Dist: python-slugify (>=8.0.4) ; extra == "k8s"
Requires-Dist: redis[hiredis] (>=5.0.1)
Requires-Dist: rich (>=13.7.1) ; extra == "cli"
Requires-Dist: rich (>=13.7.1) ; extra == "db"
Requires-Dist: sqlalchemy (>=2.0.23) ; extra == "db"
Requires-Dist: sqlalchemy-utils (>=0.41.2) ; extra == "db"
Requires-Dist: typing-extensions (>=4.12.2)
Requires-Dist: uvicorn (>=0.34.0)
Requires-Dist: yarl (>=1.15.5)
Project-URL: Issues, https://github.com/quantmind/aio-fluid/issues
Project-URL: Repository, https://github.com/quantmind/aio-fluid
Description-Content-Type: text/markdown

Aio Fluid

Async utilities for backend python services developed by [Quantmind](https://quantmind.com).

[![PyPI version](https://badge.fury.io/py/aio-fluid.svg)](https://badge.fury.io/py/aio-fluid)
[![Python versions](https://img.shields.io/pypi/pyversions/aio-fluid.svg)](https://pypi.org/project/aio-fluid)
[![Python downloads](https://img.shields.io/pypi/dd/aio-fluid.svg)](https://pypi.org/project/aio-fluid)
[![build](https://github.com/quantmind/fluid/workflows/build/badge.svg)](https://github.com/quantmind/aio-fluid/actions?query=workflow%3Abuild)
[![codecov](https://codecov.io/gh/quantmind/aio-fluid/graph/badge.svg?token=81oWUoyEVp)](https://codecov.io/gh/quantmind/aio-fluid)

**Documentation**: [fluid.quantmind.com](https://fluid.quantmind.com/)

**Source Code**: [github.com/quantmind/aio-fluid](https://github.com/quantmind/aio-fluid)


## Features

- **Async workers**: workers with start/stop capabilities.
- **Async tasks scheduler and consumer**: A task scheduler and consumer for async and CPU bound tasks.
- **Async CRUD database operations**: An async CRUD interface for postgres databases.

## Installation

This is a python package you can install via pip:

```
pip install aio-fluid
```

To install all the dependencies:

```
pip install aio-fluid[cli, db, http, log, k8s]
```
this includes the following extra dependencies:

- `cli` for the command line interface using [click](https://click.palletsprojects.com/) and [rich](https://github.com/Textualize/rich)
- `db` for database support with [asyncpg](https://github.com/MagicStack/asyncpg) and [sqlalchemy](https://www.sqlalchemy.org/)
- `http` for http client support with [httpx](https://www.python-httpx.org/) and [aiohttp](https://docs.aiohttp.org/en/stable/)
- `log` for JSON logging support with [python-json-logger](https://github.com/madzak/python-json-logger)
- `k8s` for Kubernetes support for CPU bound tasks

## Development

You can run the examples via

```
poetry run python -m examples.main
```

