diff --git a/content/projects/fastapi-toolsets/index.md b/content/projects/fastapi-toolsets/index.md index fda7209..f8fed96 100644 --- a/content/projects/fastapi-toolsets/index.md +++ b/content/projects/fastapi-toolsets/index.md @@ -13,7 +13,7 @@ tags: ["python", "fastapi", "package", "toolsets"] ![overview](featured.png) {{< github repo="d3vyce/fastapi-toolsets" >}} -> Production-ready utilities for FastAPI applications +> Production-ready utilities for FastAPI applications 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. @@ -35,7 +35,7 @@ A modular collection of production-ready utilities for FastAPI. Install only wha ## Installation -The base package includes the core modules (CRUD, database, schemas, exceptions, fixtures, dependencies, logging): +The base package includes the core modules (CRUD, database, schemas, exceptions, fixtures, dependencies, model mixins, logging): ```bash uv add fastapi-toolsets @@ -44,9 +44,9 @@ 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) +uv add "fastapi-toolsets[cli]" +uv add "fastapi-toolsets[metrics]" +uv add "fastapi-toolsets[pytest]" ``` Or install everything: @@ -63,7 +63,9 @@ uv add "fastapi-toolsets[all]" - **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` +- **Model Mixins**: SQLAlchemy mixins for common column patterns (`UUIDMixin`, `UUIDv7Mixin`, `CreatedAtMixin`, `UpdatedAtMixin`, `TimestampMixin`) +- **Lifecycle Events**: Post-commit event system (`EventSession`, `listens_for`) that dispatches async/sync callbacks for insert, update, and delete operations +- **Standardized API Responses**: Consistent response format with `Response`, `ErrorResponse`, `PaginatedResponse`, `CursorPaginatedResponse` and `OffsetPaginatedResponse`. - **Exception Handling**: Structured error responses with automatic OpenAPI documentation - **Logging**: Logging configuration with uvicorn integration via `configure_logging` and `get_logger`