FastAPI Toolsets

FastAPI Toolsets provides production-ready utilities for FastAPI applications built with async SQLAlchemy and PostgreSQL. It includes generic CRUD operations, a fixture system with dependency resolution, a Django-like CLI, standardized API responses, and structured exception handling with automatic OpenAPI documentation.

CI codecov ty uv Ruff Python 3.11+ License: MIT


Documentation: https://fastapi-toolsets.d3vyce.fr

Source Code: https://github.com/d3vyce/fastapi-toolsets


Installation

The base package includes the core modules (CRUD, database, schemas, exceptions, fixtures, dependencies, logging):

uv add fastapi-toolsets

Install only the extras you need:

uv add "fastapi-toolsets[cli]"      # CLI (typer)
uv add "fastapi-toolsets[metrics]"  # Prometheus metrics (prometheus_client)
uv add "fastapi-toolsets[pytest]"   # Pytest helpers (httpx, pytest-xdist)

Or install everything:

uv add "fastapi-toolsets[all]"

Features

Core

  • CRUD: Generic async CRUD operations with CrudFactory, built-in search with relationship traversal
  • Database: Session management, transaction helpers, table locking, and polling-based row change detection
  • Dependencies: FastAPI dependency factories (PathDependency, BodyDependency) for automatic DB lookups from path or body parameters
  • Fixtures: Fixture system with dependency management, context support, and pytest integration
  • Standardized API Responses: Consistent response format with Response, PaginatedResponse, and PydanticBase
  • Exception Handling: Structured error responses with automatic OpenAPI documentation
  • Logging: Logging configuration with uvicorn integration via configure_logging and get_logger

Optional

  • CLI: Django-like command-line interface with fixture management and custom commands support
  • Metrics: Prometheus metrics endpoint with provider/collector registry
  • Pytest Helpers: Async test client, database session management, pytest-xdist support, and table cleanup utilities

License

MIT License - see LICENSE for details.

Contributing

Contributions are welcome! Please feel free to submit issues and pull requests.

Description
No description provided
Readme MIT 4 MiB
Languages
Python 100%