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.
Files changed (59) hide show
  1. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/PKG-INFO +1 -1
  2. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/fastapi_sqlalchemy_toolkit/model_manager.py +6 -7
  3. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/pyproject.toml +1 -1
  4. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/.flake8 +0 -0
  5. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/.github/workflows/docker-test.yml +0 -0
  6. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/.github/workflows/python-publish.yml +0 -0
  7. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/.gitignore +0 -0
  8. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/.pylintrc +0 -0
  9. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/AUTHORS +0 -0
  10. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/LICENSE +0 -0
  11. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/Makefile +0 -0
  12. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/README.md +0 -0
  13. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/docs/benefits.md +0 -0
  14. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/docs/db_validation.md +0 -0
  15. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/docs/extension.md +0 -0
  16. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/docs/filtering.md +0 -0
  17. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/docs/index.md +0 -0
  18. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/docs/ru/benefits.md +0 -0
  19. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/docs/ru/db_validation.md +0 -0
  20. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/docs/ru/extension.md +0 -0
  21. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/docs/ru/filtering.md +0 -0
  22. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/docs/ru/index.md +0 -0
  23. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/docs/ru/sorting.md +0 -0
  24. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/docs/ru/transactions.md +0 -0
  25. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/docs/ru/usage.md +0 -0
  26. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/docs/ru/utils.md +0 -0
  27. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/docs/sorting.md +0 -0
  28. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/docs/transactions.md +0 -0
  29. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/docs/usage.md +0 -0
  30. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/docs/utils.md +0 -0
  31. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/examples/app/.env +0 -0
  32. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/examples/app/__init__.py +0 -0
  33. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/examples/app/api/__init__.py +0 -0
  34. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/examples/app/api/api.py +0 -0
  35. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/examples/app/api/deps.py +0 -0
  36. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/examples/app/api/endpoints/__init__.py +0 -0
  37. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/examples/app/api/endpoints/child.py +0 -0
  38. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/examples/app/config.py +0 -0
  39. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/examples/app/db.py +0 -0
  40. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/examples/app/main.py +0 -0
  41. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/examples/app/managers.py +0 -0
  42. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/examples/app/models.py +0 -0
  43. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/examples/app/schemas.py +0 -0
  44. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/fastapi_sqlalchemy_toolkit/__init__.py +0 -0
  45. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/fastapi_sqlalchemy_toolkit/filters.py +0 -0
  46. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/fastapi_sqlalchemy_toolkit/ordering.py +0 -0
  47. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/fastapi_sqlalchemy_toolkit/utils.py +0 -0
  48. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/mkdocs.yml +0 -0
  49. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/requirements/base.txt +0 -0
  50. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/requirements/docs.txt +0 -0
  51. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/requirements/lint.txt +0 -0
  52. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/requirements/test.txt +0 -0
  53. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/tests/Dockerfile +0 -0
  54. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/tests/__init__.py +0 -0
  55. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/tests/conftest.py +0 -0
  56. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/tests/db.py +0 -0
  57. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/tests/docker-compose.yml +0 -0
  58. {fastapi_sqlalchemy_toolkit-0.7.7 → fastapi_sqlalchemy_toolkit-0.7.9}/tests/models.py +0 -0
  59. {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
  Metadata-Version: 2.3
2
2
  Name: fastapi_sqlalchemy_toolkit
3
- Version: 0.7.7
3
+ Version: 0.7.9
4
4
  Summary: FastAPI SQLAlchemy Toolkit
5
5
  Project-URL: Homepage, https://github.com/e-kondr01/fastapi-sqlalchemy-toolkit
6
6
  Author-email: Egor Kondrashov <e.kondr01@gmail.com>
@@ -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)
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "fastapi_sqlalchemy_toolkit"
7
- version = "0.7.7"
7
+ version = "0.7.9"
8
8
  authors = [
9
9
  { name="Egor Kondrashov", email="e.kondr01@gmail.com" },
10
10
  ]