fastapi-rtk 1.0.11__tar.gz → 1.0.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_rtk-1.0.11 → fastapi_rtk-1.0.13}/PKG-INFO +2 -1
- fastapi_rtk-1.0.13/fastapi_rtk/_version.py +1 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/api/model_rest_api.py +46 -9
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/schemas.py +6 -4
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/pyproject.toml +1 -0
- fastapi_rtk-1.0.11/fastapi_rtk/_version.py +0 -1
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/.gitignore +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/LICENSE +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/README.md +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/__init__.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/api/__init__.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/api/base_api.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/apis.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/auth/__init__.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/auth/auth.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/auth/hashers/__init__.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/auth/hashers/pbkdf2.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/auth/hashers/scrypt.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/auth/hashers/utils.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/auth/password_helpers/__init__.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/auth/password_helpers/fab.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/auth/strategies/__init__.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/auth/strategies/config.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/auth/strategies/db.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/auth/strategies/jwt.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/backends/__init__.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/backends/generic/__init__.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/backends/generic/column.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/backends/generic/db.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/backends/generic/exceptions.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/backends/generic/filters.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/backends/generic/interface.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/backends/generic/model.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/backends/generic/session.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/backends/sqla/__init__.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/backends/sqla/column.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/backends/sqla/db.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/backends/sqla/exceptions.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/backends/sqla/extensions/__init__.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/backends/sqla/extensions/audit/__init__.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/backends/sqla/extensions/audit/audit.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/backends/sqla/extensions/audit/types.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/backends/sqla/extensions/geoalchemy2/__init__.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/backends/sqla/extensions/geoalchemy2/filters.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/backends/sqla/extensions/geoalchemy2/geometry_converter.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/backends/sqla/filters.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/backends/sqla/interface.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/backends/sqla/model.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/backends/sqla/session.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/bases/__init__.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/bases/db.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/bases/file_manager.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/bases/filter.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/bases/interface.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/bases/model.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/bases/session.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/cli/__init__.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/cli/cli.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/cli/commands/__init__.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/cli/commands/db/__init__.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/cli/commands/db/templates/fastapi/README +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/cli/commands/db/templates/fastapi/alembic.ini.mako +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/cli/commands/db/templates/fastapi/env.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/cli/commands/db/templates/fastapi/script.py.mako +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/cli/commands/db/templates/fastapi-multidb/README +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/cli/commands/db/templates/fastapi-multidb/alembic.ini.mako +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/cli/commands/db/templates/fastapi-multidb/env.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/cli/commands/db/templates/fastapi-multidb/script.py.mako +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/cli/commands/export.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/cli/commands/security.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/cli/commands/translate.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/cli/const.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/cli/decorators.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/cli/types.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/cli/utils.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/config.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/const.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/db.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/decorators.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/dependencies.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/exceptions.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/fastapi_react_toolkit.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/file_managers/__init__.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/file_managers/file_manager.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/file_managers/image_manager.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/file_managers/s3_file_manager.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/file_managers/s3_image_manager.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/filters.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/globals.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/lang/__init__.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/lang/babel/__init__.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/lang/babel/cli.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/lang/babel/config.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/lang/babel.cfg +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/lang/lazy_text.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/lang/messages.pot +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/lang/translations/de/LC_MESSAGES/messages.mo +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/lang/translations/de/LC_MESSAGES/messages.po +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/lang/translations/en/LC_MESSAGES/messages.mo +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/lang/translations/en/LC_MESSAGES/messages.po +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/manager.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/middlewares.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/mixins.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/models.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/routers.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/security/__init__.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/security/sqla/__init__.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/security/sqla/apis.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/security/sqla/models.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/security/sqla/security_manager.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/setting.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/types.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/utils/__init__.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/utils/async_task_runner.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/utils/class_factory.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/utils/csv_json_converter.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/utils/deep_merge.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/utils/extender_mixin.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/utils/flask_appbuilder_utils.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/utils/hooks.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/utils/lazy.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/utils/merge_schema.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/utils/multiple_async_contexts.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/utils/prettify_dict.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/utils/pydantic.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/utils/run_utils.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/utils/self_dependencies.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/utils/smartdefaultdict.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/utils/sqla.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/utils/timezone.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/utils/update_signature.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/utils/use_default_when_none.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/utils/werkzeug.py +0 -0
- {fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/version.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fastapi-rtk
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.13
|
|
4
4
|
Summary: A package that provides a set of tools to build a FastAPI application with a Class-Based CRUD API.
|
|
5
5
|
Project-URL: Homepage, https://codeberg.org/datatactics/fastapi-rtk
|
|
6
6
|
Project-URL: Issues, https://codeberg.org/datatactics/fastapi-rtk/issues
|
|
@@ -25,3 +25,4 @@ Requires-Dist: polib>=1.2.0
|
|
|
25
25
|
Requires-Dist: prometheus-fastapi-instrumentator>=7.1.0
|
|
26
26
|
Requires-Dist: secweb>=1.25.2
|
|
27
27
|
Requires-Dist: sqlalchemy-utils>=0.42.0
|
|
28
|
+
Requires-Dist: uvicorn==0.38.0
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1.0.13"
|
|
@@ -462,6 +462,17 @@ class ModelRestApi(BaseApi):
|
|
|
462
462
|
DO NOT MODIFY UNLESS YOU KNOW WHAT YOU ARE DOING.
|
|
463
463
|
"""
|
|
464
464
|
|
|
465
|
+
"""
|
|
466
|
+
-------------
|
|
467
|
+
LIST
|
|
468
|
+
-------------
|
|
469
|
+
"""
|
|
470
|
+
|
|
471
|
+
list_query_count_enabled = True
|
|
472
|
+
"""
|
|
473
|
+
Whether to enable counting the total number of items in the list endpoint. Defaults to `True`.
|
|
474
|
+
"""
|
|
475
|
+
|
|
465
476
|
"""
|
|
466
477
|
-------------
|
|
467
478
|
TITLES
|
|
@@ -1030,6 +1041,28 @@ class ModelRestApi(BaseApi):
|
|
|
1030
1041
|
"""
|
|
1031
1042
|
return current_permissions(self)
|
|
1032
1043
|
|
|
1044
|
+
def get_q_and_session_count_factory(self):
|
|
1045
|
+
"""
|
|
1046
|
+
Returns a dependency that yields a tuple of (QuerySchema, session or None).
|
|
1047
|
+
|
|
1048
|
+
If `list_query_count_enabled` is False or `q.with_count` is False, the session will be None.
|
|
1049
|
+
|
|
1050
|
+
Returns:
|
|
1051
|
+
Callable[..., Coroutine[Any, Any, Tuple[QuerySchema, AsyncSession | Session | None]]]: The dependency that yields the tuple.
|
|
1052
|
+
"""
|
|
1053
|
+
session_factory = self.datamodel.get_session_factory()
|
|
1054
|
+
|
|
1055
|
+
async def dependency(q: self.query_schema = Depends()): # type: ignore
|
|
1056
|
+
q: QuerySchema = q
|
|
1057
|
+
if not self.list_query_count_enabled or not q.with_count:
|
|
1058
|
+
yield q, None
|
|
1059
|
+
return
|
|
1060
|
+
|
|
1061
|
+
async for session in session_factory():
|
|
1062
|
+
yield q, session
|
|
1063
|
+
|
|
1064
|
+
return dependency
|
|
1065
|
+
|
|
1033
1066
|
"""
|
|
1034
1067
|
-------------
|
|
1035
1068
|
ROUTES
|
|
@@ -1508,19 +1541,17 @@ class ModelRestApi(BaseApi):
|
|
|
1508
1541
|
|
|
1509
1542
|
async def get_list_headless(
|
|
1510
1543
|
self,
|
|
1511
|
-
q: QuerySchema = SelfType.with_depends().query_schema,
|
|
1512
1544
|
session: AsyncSession | Session = SelfDepends().datamodel.get_session_factory,
|
|
1513
|
-
|
|
1514
|
-
|
|
1545
|
+
q_session_count: tuple[
|
|
1546
|
+
QuerySchema, AsyncSession | Session | None
|
|
1547
|
+
] = SelfDepends().get_q_and_session_count_factory,
|
|
1515
1548
|
):
|
|
1516
1549
|
"""
|
|
1517
1550
|
Retrieves all items in a headless mode.
|
|
1518
1551
|
|
|
1519
1552
|
Args:
|
|
1520
|
-
q (QuerySchema): The query schema.
|
|
1521
|
-
query (QueryManager): The query manager object.
|
|
1522
1553
|
session (AsyncSession | Session): A database scoped session.
|
|
1523
|
-
|
|
1554
|
+
q_session_count (tuple[QuerySchema, AsyncSession | Session | None]): A tuple of query schema and a database scoped session for counting.
|
|
1524
1555
|
|
|
1525
1556
|
Returns:
|
|
1526
1557
|
list_return_schema: The list return schema.
|
|
@@ -1529,6 +1560,7 @@ class ModelRestApi(BaseApi):
|
|
|
1529
1560
|
If you are overriding this method, make sure to copy all the decorators too.
|
|
1530
1561
|
"""
|
|
1531
1562
|
async with AsyncTaskRunner():
|
|
1563
|
+
q, session_count = q_session_count
|
|
1532
1564
|
self._validate_query_parameters(q)
|
|
1533
1565
|
params = self._handle_query_params(q)
|
|
1534
1566
|
try:
|
|
@@ -1536,9 +1568,14 @@ class ModelRestApi(BaseApi):
|
|
|
1536
1568
|
task_items = tg.create_task(
|
|
1537
1569
|
smart_run(self.datamodel.get_many, session, params)
|
|
1538
1570
|
)
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1571
|
+
if session_count:
|
|
1572
|
+
task_count = tg.create_task(
|
|
1573
|
+
smart_run(self.datamodel.count, session_count, params)
|
|
1574
|
+
)
|
|
1575
|
+
else:
|
|
1576
|
+
task_count = tg.create_task(
|
|
1577
|
+
asyncio.sleep(0, result=None)
|
|
1578
|
+
) # Dummy task
|
|
1542
1579
|
items, count = await task_items, await task_count
|
|
1543
1580
|
pks, data = self.datamodel.convert_to_result(items)
|
|
1544
1581
|
schema = self.list_return_schema
|
|
@@ -323,7 +323,7 @@ class BaseResponseMany(BaseResponse):
|
|
|
323
323
|
Represents a response containing multiple items.
|
|
324
324
|
|
|
325
325
|
Attributes:
|
|
326
|
-
count (int): The count of items.
|
|
326
|
+
count (int | None): The count of items. If None, count is not provided.
|
|
327
327
|
ids (List[PRIMARY_KEY]): The IDs of the items.
|
|
328
328
|
list_columns (List[str]): The columns to show in the list.
|
|
329
329
|
list_title (str): The title for the list.
|
|
@@ -331,7 +331,7 @@ class BaseResponseMany(BaseResponse):
|
|
|
331
331
|
result (List[BaseModel] | None): The result of the response.
|
|
332
332
|
"""
|
|
333
333
|
|
|
334
|
-
count: int
|
|
334
|
+
count: int | None = None
|
|
335
335
|
ids: list[PRIMARY_KEY]
|
|
336
336
|
list_columns: list[str] = []
|
|
337
337
|
list_title: str = ""
|
|
@@ -384,24 +384,26 @@ class QuerySchema(BaseModel):
|
|
|
384
384
|
Represents the query parameters for selection, pagination, ordering, and filtering.
|
|
385
385
|
|
|
386
386
|
Attributes:
|
|
387
|
-
columns (str, optional): The columns to select in the query. Defaults to '[]'.
|
|
388
387
|
page (int): The page number for pagination. Defaults to 0.
|
|
389
388
|
page_size (int, optional): The number of items per page. Defaults to 25.
|
|
390
389
|
order_column (str, optional): The column to order the results by.
|
|
391
390
|
order_direction (Literal['asc', 'desc'], optional): The direction of the ordering (asc or desc).
|
|
391
|
+
columns (str, optional): The columns to select in the query. Defaults to '[]'.
|
|
392
392
|
filters (str, optional): The filters to apply to the query. Defaults to '[]'.
|
|
393
393
|
opr_filters (str, optional): The filters to apply without column name. Defaults to '[]'.
|
|
394
394
|
global_filter (str, optional): The filter to apply globally across all columns.
|
|
395
|
+
with_count (bool): Whether to include the total count of items. Defaults to True.
|
|
395
396
|
"""
|
|
396
397
|
|
|
397
|
-
columns: str = "[]"
|
|
398
398
|
page: int = 0
|
|
399
399
|
page_size: int | None = 25
|
|
400
400
|
order_column: str | None = None
|
|
401
401
|
order_direction: Literal["asc", "desc"] | None = None
|
|
402
|
+
columns: str = "[]"
|
|
402
403
|
filters: str = "[]"
|
|
403
404
|
opr_filters: str = "[]"
|
|
404
405
|
global_filter: str | None = None
|
|
406
|
+
with_count: bool = True
|
|
405
407
|
|
|
406
408
|
@field_validator("columns")
|
|
407
409
|
@classmethod
|
|
@@ -38,6 +38,7 @@ dependencies = [
|
|
|
38
38
|
"prometheus-fastapi-instrumentator>=7.1.0",
|
|
39
39
|
"secweb>=1.25.2",
|
|
40
40
|
"sqlalchemy-utils>=0.42.0",
|
|
41
|
+
"uvicorn==0.38.0",
|
|
41
42
|
]
|
|
42
43
|
urls = { Homepage = "https://codeberg.org/datatactics/fastapi-rtk", Issues = "https://codeberg.org/datatactics/fastapi-rtk/issues" }
|
|
43
44
|
scripts = { "fastapi-rtk" = "fastapi_rtk.cli:main" }
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "1.0.11"
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/backends/sqla/extensions/audit/__init__.py
RENAMED
|
File without changes
|
{fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/backends/sqla/extensions/audit/audit.py
RENAMED
|
File without changes
|
{fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/backends/sqla/extensions/audit/types.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/cli/commands/db/templates/fastapi/README
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/cli/commands/db/templates/fastapi/env.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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/lang/translations/de/LC_MESSAGES/messages.mo
RENAMED
|
File without changes
|
{fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/lang/translations/de/LC_MESSAGES/messages.po
RENAMED
|
File without changes
|
{fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/lang/translations/en/LC_MESSAGES/messages.mo
RENAMED
|
File without changes
|
{fastapi_rtk-1.0.11 → fastapi_rtk-1.0.13}/fastapi_rtk/lang/translations/en/LC_MESSAGES/messages.po
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|