From 106df3574cf5ad6956a74974be1bc603225a8fbe Mon Sep 17 00:00:00 2001 From: d3vyce Date: Sun, 1 Mar 2026 10:05:04 -0500 Subject: [PATCH] update fastapi-toolsets project --- content/projects/fastapi-toolsets/index.md | 40 ++++++++++++++++++---- 1 file changed, 33 insertions(+), 7 deletions(-) diff --git a/content/projects/fastapi-toolsets/index.md b/content/projects/fastapi-toolsets/index.md index 56206e8..fda7209 100644 --- a/content/projects/fastapi-toolsets/index.md +++ b/content/projects/fastapi-toolsets/index.md @@ -7,15 +7,15 @@ showWordCount: false showReadingTime: false showRelatedContent: false showPagination: false -tags: ["fastapi", "package", "toolsets"] +tags: ["python", "fastapi", "package", "toolsets"] --- ![overview](featured.png) {{< github repo="d3vyce/fastapi-toolsets" >}} -> Reusable tools for FastAPI: async CRUD, fixtures, CLI, and standardized responses +> Production-ready utilities for FastAPI applications -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. +A modular collection of production-ready utilities for FastAPI. Install only what you need — from async CRUD and database helpers to CLI tooling, Prometheus metrics, and pytest fixtures. Each module is independently installable via optional extras, keeping your dependency footprint minimal. [![CI](https://github.com/d3vyce/fastapi-toolsets/actions/workflows/ci.yml/badge.svg)](https://github.com/d3vyce/fastapi-toolsets/actions/workflows/ci.yml) [![codecov](https://codecov.io/gh/d3vyce/fastapi-toolsets/graph/badge.svg)](https://codecov.io/gh/d3vyce/fastapi-toolsets) @@ -35,17 +35,43 @@ FastAPI Toolsets provides production-ready utilities for FastAPI applications bu ## Installation +The base package includes the core modules (CRUD, database, schemas, exceptions, fixtures, dependencies, logging): + ```bash uv add fastapi-toolsets ``` +Install only the extras you need: + +```bash +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: + +```bash +uv add "fastapi-toolsets[all]" +``` + ## Features -- **CRUD**: Generic async CRUD operations with `CrudFactory` -- **Fixtures**: Fixture system with dependency management, context support and pytest integration -- **CLI**: Django-like command-line interface with fixture management and custom commands support -- **Standardized API Responses**: Consistent response format across your API +### Core + +- **CRUD**: Generic async CRUD operations with `CrudFactory`, built-in full-text/faceted search and Offset/Cursor pagination. +- **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