fastapi-toolsets 2.4.2__tar.gz → 3.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {fastapi_toolsets-2.4.2 → fastapi_toolsets-3.0.0}/PKG-INFO +3 -2
- {fastapi_toolsets-2.4.2 → fastapi_toolsets-3.0.0}/README.md +2 -1
- {fastapi_toolsets-2.4.2 → fastapi_toolsets-3.0.0}/pyproject.toml +8 -3
- {fastapi_toolsets-2.4.2 → fastapi_toolsets-3.0.0}/src/fastapi_toolsets/__init__.py +1 -1
- {fastapi_toolsets-2.4.2 → fastapi_toolsets-3.0.0}/src/fastapi_toolsets/crud/__init__.py +8 -1
- {fastapi_toolsets-2.4.2 → fastapi_toolsets-3.0.0}/src/fastapi_toolsets/crud/factory.py +332 -165
- {fastapi_toolsets-2.4.2 → fastapi_toolsets-3.0.0}/src/fastapi_toolsets/crud/search.py +82 -27
- {fastapi_toolsets-2.4.2 → fastapi_toolsets-3.0.0}/src/fastapi_toolsets/db.py +9 -5
- {fastapi_toolsets-2.4.2 → fastapi_toolsets-3.0.0}/src/fastapi_toolsets/exceptions/__init__.py +4 -0
- {fastapi_toolsets-2.4.2 → fastapi_toolsets-3.0.0}/src/fastapi_toolsets/exceptions/exceptions.py +55 -0
- {fastapi_toolsets-2.4.2 → fastapi_toolsets-3.0.0}/src/fastapi_toolsets/exceptions/handler.py +2 -2
- fastapi_toolsets-3.0.0/src/fastapi_toolsets/fixtures/registry.py +311 -0
- fastapi_toolsets-3.0.0/src/fastapi_toolsets/fixtures/utils.py +298 -0
- {fastapi_toolsets-2.4.2 → fastapi_toolsets-3.0.0}/src/fastapi_toolsets/logger.py +1 -1
- {fastapi_toolsets-2.4.2 → fastapi_toolsets-3.0.0}/src/fastapi_toolsets/metrics/handler.py +3 -3
- {fastapi_toolsets-2.4.2 → fastapi_toolsets-3.0.0}/src/fastapi_toolsets/models/__init__.py +3 -3
- {fastapi_toolsets-2.4.2 → fastapi_toolsets-3.0.0}/src/fastapi_toolsets/models/columns.py +0 -8
- fastapi_toolsets-3.0.0/src/fastapi_toolsets/models/watched.py +290 -0
- {fastapi_toolsets-2.4.2 → fastapi_toolsets-3.0.0}/src/fastapi_toolsets/pytest/utils.py +10 -35
- {fastapi_toolsets-2.4.2 → fastapi_toolsets-3.0.0}/src/fastapi_toolsets/schemas.py +4 -3
- fastapi_toolsets-2.4.2/src/fastapi_toolsets/fixtures/registry.py +0 -219
- fastapi_toolsets-2.4.2/src/fastapi_toolsets/fixtures/utils.py +0 -143
- fastapi_toolsets-2.4.2/src/fastapi_toolsets/models/watched.py +0 -269
- {fastapi_toolsets-2.4.2 → fastapi_toolsets-3.0.0}/LICENSE +0 -0
- {fastapi_toolsets-2.4.2 → fastapi_toolsets-3.0.0}/src/fastapi_toolsets/_imports.py +0 -0
- {fastapi_toolsets-2.4.2 → fastapi_toolsets-3.0.0}/src/fastapi_toolsets/cli/__init__.py +0 -0
- {fastapi_toolsets-2.4.2 → fastapi_toolsets-3.0.0}/src/fastapi_toolsets/cli/app.py +0 -0
- {fastapi_toolsets-2.4.2 → fastapi_toolsets-3.0.0}/src/fastapi_toolsets/cli/commands/__init__.py +0 -0
- {fastapi_toolsets-2.4.2 → fastapi_toolsets-3.0.0}/src/fastapi_toolsets/cli/commands/fixtures.py +0 -0
- {fastapi_toolsets-2.4.2 → fastapi_toolsets-3.0.0}/src/fastapi_toolsets/cli/config.py +0 -0
- {fastapi_toolsets-2.4.2 → fastapi_toolsets-3.0.0}/src/fastapi_toolsets/cli/pyproject.py +0 -0
- {fastapi_toolsets-2.4.2 → fastapi_toolsets-3.0.0}/src/fastapi_toolsets/cli/utils.py +0 -0
- {fastapi_toolsets-2.4.2 → fastapi_toolsets-3.0.0}/src/fastapi_toolsets/dependencies.py +0 -0
- {fastapi_toolsets-2.4.2 → fastapi_toolsets-3.0.0}/src/fastapi_toolsets/fixtures/__init__.py +0 -0
- {fastapi_toolsets-2.4.2 → fastapi_toolsets-3.0.0}/src/fastapi_toolsets/fixtures/enum.py +0 -0
- {fastapi_toolsets-2.4.2 → fastapi_toolsets-3.0.0}/src/fastapi_toolsets/metrics/__init__.py +0 -0
- {fastapi_toolsets-2.4.2 → fastapi_toolsets-3.0.0}/src/fastapi_toolsets/metrics/registry.py +0 -0
- {fastapi_toolsets-2.4.2 → fastapi_toolsets-3.0.0}/src/fastapi_toolsets/py.typed +0 -0
- {fastapi_toolsets-2.4.2 → fastapi_toolsets-3.0.0}/src/fastapi_toolsets/pytest/__init__.py +0 -0
- {fastapi_toolsets-2.4.2 → fastapi_toolsets-3.0.0}/src/fastapi_toolsets/pytest/plugin.py +0 -0
- {fastapi_toolsets-2.4.2 → fastapi_toolsets-3.0.0}/src/fastapi_toolsets/types.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fastapi-toolsets
|
|
3
|
-
Version:
|
|
3
|
+
Version: 3.0.0
|
|
4
4
|
Summary: Production-ready utilities for FastAPI applications
|
|
5
5
|
Keywords: fastapi,sqlalchemy,postgresql
|
|
6
6
|
Author: d3vyce
|
|
@@ -96,7 +96,8 @@ uv add "fastapi-toolsets[all]"
|
|
|
96
96
|
- **Database**: Session management, transaction helpers, table locking, and polling-based row change detection
|
|
97
97
|
- **Dependencies**: FastAPI dependency factories (`PathDependency`, `BodyDependency`) for automatic DB lookups from path or body parameters
|
|
98
98
|
- **Fixtures**: Fixture system with dependency management, context support, and pytest integration
|
|
99
|
-
- **Model Mixins**: SQLAlchemy mixins for common column patterns (`UUIDMixin`, `UUIDv7Mixin`, `CreatedAtMixin`, `UpdatedAtMixin`, `TimestampMixin`)
|
|
99
|
+
- **Model Mixins**: SQLAlchemy mixins for common column patterns (`UUIDMixin`, `UUIDv7Mixin`, `CreatedAtMixin`, `UpdatedAtMixin`, `TimestampMixin`)
|
|
100
|
+
- **Lifecycle Events**: Post-commit event system (`EventSession`, `listens_for`) that dispatches async/sync callbacks for insert, update, and delete operations
|
|
100
101
|
- **Standardized API Responses**: Consistent response format with `Response`, `ErrorResponse`, `PaginatedResponse`, `CursorPaginatedResponse` and `OffsetPaginatedResponse`.
|
|
101
102
|
- **Exception Handling**: Structured error responses with automatic OpenAPI documentation
|
|
102
103
|
- **Logging**: Logging configuration with uvicorn integration via `configure_logging` and `get_logger`
|
|
@@ -48,7 +48,8 @@ uv add "fastapi-toolsets[all]"
|
|
|
48
48
|
- **Database**: Session management, transaction helpers, table locking, and polling-based row change detection
|
|
49
49
|
- **Dependencies**: FastAPI dependency factories (`PathDependency`, `BodyDependency`) for automatic DB lookups from path or body parameters
|
|
50
50
|
- **Fixtures**: Fixture system with dependency management, context support, and pytest integration
|
|
51
|
-
- **Model Mixins**: SQLAlchemy mixins for common column patterns (`UUIDMixin`, `UUIDv7Mixin`, `CreatedAtMixin`, `UpdatedAtMixin`, `TimestampMixin`)
|
|
51
|
+
- **Model Mixins**: SQLAlchemy mixins for common column patterns (`UUIDMixin`, `UUIDv7Mixin`, `CreatedAtMixin`, `UpdatedAtMixin`, `TimestampMixin`)
|
|
52
|
+
- **Lifecycle Events**: Post-commit event system (`EventSession`, `listens_for`) that dispatches async/sync callbacks for insert, update, and delete operations
|
|
52
53
|
- **Standardized API Responses**: Consistent response format with `Response`, `ErrorResponse`, `PaginatedResponse`, `CursorPaginatedResponse` and `OffsetPaginatedResponse`.
|
|
53
54
|
- **Exception Handling**: Structured error responses with automatic OpenAPI documentation
|
|
54
55
|
- **Logging**: Logging configuration with uvicorn integration via `configure_logging` and `get_logger`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "fastapi-toolsets"
|
|
3
|
-
version = "
|
|
3
|
+
version = "3.0.0"
|
|
4
4
|
description = "Production-ready utilities for FastAPI applications"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = "MIT"
|
|
@@ -67,6 +67,7 @@ dev = [
|
|
|
67
67
|
{include-group = "tests"},
|
|
68
68
|
{include-group = "docs"},
|
|
69
69
|
"fastapi-toolsets[all]",
|
|
70
|
+
"prek>=0.3.8",
|
|
70
71
|
"ruff>=0.1.0",
|
|
71
72
|
"ty>=0.0.1a0",
|
|
72
73
|
]
|
|
@@ -79,12 +80,13 @@ tests = [
|
|
|
79
80
|
"pytest>=8.0.0",
|
|
80
81
|
]
|
|
81
82
|
docs = [
|
|
83
|
+
"mike",
|
|
82
84
|
"mkdocstrings-python>=2.0.2",
|
|
83
|
-
"zensical>=0.0.
|
|
85
|
+
"zensical>=0.0.30",
|
|
84
86
|
]
|
|
85
87
|
|
|
86
88
|
[build-system]
|
|
87
|
-
requires = ["uv_build>=0.10,<0.
|
|
89
|
+
requires = ["uv_build>=0.10,<0.12.0"]
|
|
88
90
|
build-backend = "uv_build"
|
|
89
91
|
|
|
90
92
|
[tool.pytest.ini_options]
|
|
@@ -103,3 +105,6 @@ exclude_lines = [
|
|
|
103
105
|
"if TYPE_CHECKING:",
|
|
104
106
|
"raise NotImplementedError",
|
|
105
107
|
]
|
|
108
|
+
|
|
109
|
+
[tool.uv.sources]
|
|
110
|
+
mike = { git = "https://github.com/squidfunk/mike.git", tag = "2.2.0+zensical-0.1.0" }
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
"""Generic async CRUD operations for SQLAlchemy models."""
|
|
2
2
|
|
|
3
|
-
from ..exceptions import
|
|
3
|
+
from ..exceptions import (
|
|
4
|
+
InvalidFacetFilterError,
|
|
5
|
+
InvalidSearchColumnError,
|
|
6
|
+
NoSearchableFieldsError,
|
|
7
|
+
UnsupportedFacetTypeError,
|
|
8
|
+
)
|
|
4
9
|
from ..schemas import PaginationType
|
|
5
10
|
from ..types import (
|
|
6
11
|
FacetFieldType,
|
|
@@ -18,6 +23,7 @@ __all__ = [
|
|
|
18
23
|
"FacetFieldType",
|
|
19
24
|
"get_searchable_fields",
|
|
20
25
|
"InvalidFacetFilterError",
|
|
26
|
+
"InvalidSearchColumnError",
|
|
21
27
|
"JoinType",
|
|
22
28
|
"M2MFieldType",
|
|
23
29
|
"NoSearchableFieldsError",
|
|
@@ -25,4 +31,5 @@ __all__ = [
|
|
|
25
31
|
"PaginationType",
|
|
26
32
|
"SearchConfig",
|
|
27
33
|
"SearchFieldType",
|
|
34
|
+
"UnsupportedFacetTypeError",
|
|
28
35
|
]
|