fastapi-sqlalchemy-toolkit 0.7.7__tar.gz → 0.7.9__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_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/PKG-INFO +1 -1
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/fastapi_sqlalchemy_toolkit/model_manager.py +6 -7
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/pyproject.toml +1 -1
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/.flake8 +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/.github/workflows/docker-test.yml +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/.github/workflows/python-publish.yml +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/.gitignore +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/.pylintrc +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/AUTHORS +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/LICENSE +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/Makefile +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/README.md +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/docs/benefits.md +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/docs/db_validation.md +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/docs/extension.md +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/docs/filtering.md +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/docs/index.md +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/docs/ru/benefits.md +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/docs/ru/db_validation.md +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/docs/ru/extension.md +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/docs/ru/filtering.md +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/docs/ru/index.md +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/docs/ru/sorting.md +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/docs/ru/transactions.md +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/docs/ru/usage.md +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/docs/ru/utils.md +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/docs/sorting.md +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/docs/transactions.md +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/docs/usage.md +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/docs/utils.md +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/examples/app/.env +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/examples/app/__init__.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/examples/app/api/__init__.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/examples/app/api/api.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/examples/app/api/deps.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/examples/app/api/endpoints/__init__.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/examples/app/api/endpoints/child.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/examples/app/config.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/examples/app/db.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/examples/app/main.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/examples/app/managers.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/examples/app/models.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/examples/app/schemas.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/fastapi_sqlalchemy_toolkit/__init__.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/fastapi_sqlalchemy_toolkit/filters.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/fastapi_sqlalchemy_toolkit/ordering.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/fastapi_sqlalchemy_toolkit/utils.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/mkdocs.yml +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/requirements/base.txt +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/requirements/docs.txt +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/requirements/lint.txt +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/requirements/test.txt +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/tests/Dockerfile +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/tests/__init__.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/tests/conftest.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/tests/db.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/tests/docker-compose.yml +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/tests/models.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/tests/test_public_methods.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# ruff: noqa: UP006
|
|
2
2
|
from collections.abc import Callable, Iterable
|
|
3
|
-
from typing import Any, List # noqa: UP035
|
|
3
|
+
from typing import Any, Generic, List, TypeVar # noqa: UP035
|
|
4
4
|
|
|
5
5
|
from fastapi import HTTPException, status
|
|
6
6
|
from fastapi_pagination.bases import BasePage
|
|
@@ -30,6 +30,9 @@ from sqlalchemy.sql.selectable import Exists
|
|
|
30
30
|
|
|
31
31
|
from .filters import null_query_values
|
|
32
32
|
|
|
33
|
+
ModelT = TypeVar("ModelT", bound=DeclarativeBase)
|
|
34
|
+
CreateSchemaT = TypeVar("CreateSchemaT", bound=BaseModel)
|
|
35
|
+
UpdateSchemaT = TypeVar("UpdateSchemaT", bound=BaseModel)
|
|
33
36
|
ModelDict = dict[str, Any]
|
|
34
37
|
|
|
35
38
|
|
|
@@ -39,11 +42,7 @@ def sqlalchemy_model_to_dict(model: DeclarativeBase) -> dict:
|
|
|
39
42
|
return db_obj_dict
|
|
40
43
|
|
|
41
44
|
|
|
42
|
-
class ModelManager[
|
|
43
|
-
ModelT: DeclarativeBase,
|
|
44
|
-
CreateSchemaT: BaseModel,
|
|
45
|
-
UpdateSchemaT: BaseModel,
|
|
46
|
-
]:
|
|
45
|
+
class ModelManager(Generic[ModelT, CreateSchemaT, UpdateSchemaT]):
|
|
47
46
|
def __init__(
|
|
48
47
|
self,
|
|
49
48
|
model: type[ModelT],
|
|
@@ -668,7 +667,7 @@ class ModelManager[
|
|
|
668
667
|
"""
|
|
669
668
|
update_data = in_obj.model_dump(exclude_unset=exclude_unset) if in_obj else {}
|
|
670
669
|
update_data.update(attrs)
|
|
671
|
-
await self.run_db_validation(session, db_obj=db_obj, in_obj=update_data)
|
|
670
|
+
update_data = await self.run_db_validation(session, db_obj=db_obj, in_obj=update_data)
|
|
672
671
|
for field in update_data:
|
|
673
672
|
setattr(db_obj, field, update_data[field])
|
|
674
673
|
await self.save(session, commit=commit)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/docs/ru/db_validation.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/docs/ru/transactions.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/examples/app/__init__.py
RENAMED
|
File without changes
|
{fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/examples/app/api/__init__.py
RENAMED
|
File without changes
|
{fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/examples/app/api/api.py
RENAMED
|
File without changes
|
{fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/examples/app/api/deps.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/examples/app/config.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/examples/app/managers.py
RENAMED
|
File without changes
|
{fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/examples/app/models.py
RENAMED
|
File without changes
|
{fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/examples/app/schemas.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/tests/docker-compose.yml
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/tests/test_public_methods.py
RENAMED
|
File without changes
|