fastapi-sqlalchemy-toolkit 0.7.12__tar.gz → 0.7.13__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.12 → fastapi_sqlalchemy_toolkit-0.7.13}/PKG-INFO +1 -1
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/fastapi_sqlalchemy_toolkit/model_manager.py +13 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/pyproject.toml +1 -1
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/.flake8 +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/.github/workflows/docker-test.yml +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/.github/workflows/python-publish.yml +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/.gitignore +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/.pylintrc +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/AUTHORS +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/LICENSE +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/Makefile +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/README.md +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/docs/benefits.md +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/docs/db_validation.md +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/docs/extension.md +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/docs/filtering.md +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/docs/index.md +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/docs/ru/benefits.md +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/docs/ru/db_validation.md +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/docs/ru/extension.md +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/docs/ru/filtering.md +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/docs/ru/index.md +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/docs/ru/sorting.md +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/docs/ru/transactions.md +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/docs/ru/usage.md +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/docs/ru/utils.md +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/docs/sorting.md +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/docs/transactions.md +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/docs/usage.md +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/docs/utils.md +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/examples/app/.env +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/examples/app/__init__.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/examples/app/api/__init__.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/examples/app/api/api.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/examples/app/api/deps.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/examples/app/api/endpoints/__init__.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/examples/app/api/endpoints/child.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/examples/app/config.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/examples/app/db.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/examples/app/main.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/examples/app/managers.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/examples/app/models.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/examples/app/schemas.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/fastapi_sqlalchemy_toolkit/__init__.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/fastapi_sqlalchemy_toolkit/filters.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/fastapi_sqlalchemy_toolkit/ordering.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/fastapi_sqlalchemy_toolkit/utils.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/mkdocs.yml +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/requirements/base.txt +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/requirements/docs.txt +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/requirements/lint.txt +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/requirements/test.txt +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/tests/Dockerfile +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/tests/__init__.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/tests/conftest.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/tests/db.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/tests/docker-compose.yml +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/tests/models.py +0 -0
- {fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/tests/test_public_methods.py +0 -0
|
@@ -216,6 +216,8 @@ class ModelManager(Generic[ModelT, CreateSchemaT, UpdateSchemaT]):
|
|
|
216
216
|
order_by: InstrumentedAttribute | UnaryExpression | None = None,
|
|
217
217
|
where: Any | None = None,
|
|
218
218
|
base_stmt: Select | None = None,
|
|
219
|
+
*,
|
|
220
|
+
unique: bool = False,
|
|
219
221
|
**simple_filters: Any,
|
|
220
222
|
) -> ModelT | Row | None:
|
|
221
223
|
"""
|
|
@@ -234,6 +236,9 @@ class ModelManager(Generic[ModelT, CreateSchemaT, UpdateSchemaT]):
|
|
|
234
236
|
Примечание: фильтрация и сортировка по связанным моделям скорее всего
|
|
235
237
|
не будут работать вместе с этим параметром.
|
|
236
238
|
|
|
239
|
+
:param unique: определяет необходимость вызова метода .unique()
|
|
240
|
+
у результата SQLAlchemy
|
|
241
|
+
|
|
237
242
|
:param simple_filters: параметры для фильтрации по точному соответствию,
|
|
238
243
|
аналогично методу .filter_by() SQLAlchemy
|
|
239
244
|
|
|
@@ -242,6 +247,8 @@ class ModelManager(Generic[ModelT, CreateSchemaT, UpdateSchemaT]):
|
|
|
242
247
|
stmt = self.assemble_stmt(base_stmt, order_by, options, where, **simple_filters)
|
|
243
248
|
|
|
244
249
|
result = await session.execute(stmt)
|
|
250
|
+
if unique:
|
|
251
|
+
result = result.unique()
|
|
245
252
|
if base_stmt is None:
|
|
246
253
|
if order_by is not None:
|
|
247
254
|
return result.scalars().first()
|
|
@@ -255,6 +262,8 @@ class ModelManager(Generic[ModelT, CreateSchemaT, UpdateSchemaT]):
|
|
|
255
262
|
order_by: InstrumentedAttribute | UnaryExpression | None = None,
|
|
256
263
|
where: Any | None = None,
|
|
257
264
|
base_stmt: Select | None = None,
|
|
265
|
+
*,
|
|
266
|
+
unique: bool = False,
|
|
258
267
|
**simple_filters: Any,
|
|
259
268
|
) -> ModelT | Row:
|
|
260
269
|
"""
|
|
@@ -271,6 +280,9 @@ class ModelManager(Generic[ModelT, CreateSchemaT, UpdateSchemaT]):
|
|
|
271
280
|
:param base_stmt: объект Select для SQL запроса. Если передан, то метод вернёт
|
|
272
281
|
экземпляр Row, а не ModelT.
|
|
273
282
|
|
|
283
|
+
:param unique: определяет необходимость вызова метода .unique()
|
|
284
|
+
у результата SQLAlchemy
|
|
285
|
+
|
|
274
286
|
:param simple_filters: параметры для фильтрации по точному соответствию,
|
|
275
287
|
аналогично методу .filter_by() SQLAlchemy
|
|
276
288
|
|
|
@@ -285,6 +297,7 @@ class ModelManager(Generic[ModelT, CreateSchemaT, UpdateSchemaT]):
|
|
|
285
297
|
order_by=order_by,
|
|
286
298
|
where=where,
|
|
287
299
|
base_stmt=base_stmt,
|
|
300
|
+
unique=unique,
|
|
288
301
|
**simple_filters,
|
|
289
302
|
)
|
|
290
303
|
if not db_obj:
|
|
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.12 → fastapi_sqlalchemy_toolkit-0.7.13}/docs/db_validation.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/docs/ru/db_validation.md
RENAMED
|
File without changes
|
{fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/docs/ru/extension.md
RENAMED
|
File without changes
|
{fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/docs/ru/filtering.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/docs/ru/transactions.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/docs/transactions.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/examples/app/__init__.py
RENAMED
|
File without changes
|
{fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/examples/app/api/__init__.py
RENAMED
|
File without changes
|
{fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/examples/app/api/api.py
RENAMED
|
File without changes
|
{fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/examples/app/api/deps.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/examples/app/config.py
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/examples/app/main.py
RENAMED
|
File without changes
|
{fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/examples/app/managers.py
RENAMED
|
File without changes
|
{fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/examples/app/models.py
RENAMED
|
File without changes
|
{fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/examples/app/schemas.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/requirements/base.txt
RENAMED
|
File without changes
|
{fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/requirements/docs.txt
RENAMED
|
File without changes
|
{fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/requirements/lint.txt
RENAMED
|
File without changes
|
{fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/requirements/test.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/tests/docker-compose.yml
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_sqlalchemy_toolkit-0.7.12 → fastapi_sqlalchemy_toolkit-0.7.13}/tests/test_public_methods.py
RENAMED
|
File without changes
|