Metadata-Version: 2.3
Name: fastgear
Version: 0.1.0
Summary: A personal utility library I've developed to streamline and optimize backend development with FastAPI in my projects. From generic repositories and queries to enums, error handling, and more, fastutils_hmarcuzzo encompasses essential tools that have proven invaluable in my development journey, whether as a novice or a seasoned professional.
License: MIT
Author: Henrique Marcuzzo
Author-email: henrique.souza.m06@gmail.com
Requires-Python: >=3.10,<3.13
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Provides-Extra: redis
Requires-Dist: fastapi (>=0.115.10,<0.116.0)
Requires-Dist: fastapi-pagination (>=0.12.34,<0.13.0)
Requires-Dist: pydantic (>=2.10.6,<3.0.0)
Requires-Dist: redis (>=5.2.1,<6.0.0) ; extra == "redis"
Requires-Dist: sqlalchemy (>=2.0.38,<3.0.0)
Requires-Dist: sqlalchemy-utils (>=0.41.2,<0.42.0)
Requires-Dist: uuid6 (>=2024.7.10,<2025.0.0)
Description-Content-Type: text/markdown

<p align="center" markdown=1>
  <i>Python library for FastAPI, boosting SQLAlchemy and Redis with pagination, error handling, and session management.</i>
</p>
<p align="center" markdown=1>
<a href="https://github.psa-cloud.com/gtf08/hil-fastapi-utils">
  <img src="https://img.shields.io/badge/Python-3.10 | 3.11 | 3.12-40cd60" alt="Supported Python Versions"/>
</a>
</p>
<hr>
<p align="justify">
<b>FastUtils</b> is a comprehensive Python library designed for <b>FastAPI</b>. It provides robust support for both 
    asynchronous and synchronous operations with <b>SQLAlchemy</b> and asynchronous operations with <b>Redis</b>. Key 
    features include dynamic pagination, custom error handling, automatic database session management within a context 
    manager, and much more.
</p>
<hr>

**Source Code**: <a href="https://github.com/hmarcuzzo/fast-utils" target="_blank">https://github.com/hmarcuzzo/fast-utils</a>


## Features
- **Fully Async**: Leverages Python's async capabilities for non-blocking database operations.
- **SQLAlchemy 2.0**: Works with the latest SQLAlchemy version for robust database interactions.
- **Redis Support**: Provides support for Redis for caching and other operations.
- **Dynamic Query Building**: Supports building simple queries dynamically, including filtering, sorting, and pagination.
- **Built-in Offset Pagination**: Comes with ready-to-use offset pagination.
- **Custom Error Handling**: Provides custom error handling for better debugging and user experience.
- **Session Management**: Automatically manages database sessions within a context manager.

## Requirements

Before installing FastUtils, ensure you have the following prerequisites:

* **Python:** Version 3.10 or newer.
* **FastAPI:** FastUtils is built to work with FastAPI, so having FastAPI in your project is essential.
* **SQLAlchemy:** FastUtils uses SQLAlchemy 2.0 for database operations, so you need SQLAlchemy 2.0 or newer.
* **Pydantic V2:** FastUtils leverages Pydantic models for data validation and serialization, so you need Pydantic 2.0 or newer.
* **Redis:** If you plan to use Redis with FastUtils, you need to have Redis installed and running in a version 5.0 or newer.

# Installing

To install the `fastgear` package, follow these steps:

## Using pip
Run the following command:
```sh
pip install fastgear
```

## Using Poetry
Run the following command:
```sh
poetry add fastgear
```

## License

This project is licensed under the terms of the MIT license.

