fastapi-rtk 1.0.13__tar.gz → 1.0.15__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 (134) hide show
  1. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/PKG-INFO +1 -1
  2. fastapi_rtk-1.0.15/fastapi_rtk/_version.py +1 -0
  3. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/api/model_rest_api.py +7 -7
  4. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/manager.py +8 -14
  5. fastapi_rtk-1.0.13/fastapi_rtk/_version.py +0 -1
  6. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/.gitignore +0 -0
  7. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/LICENSE +0 -0
  8. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/README.md +0 -0
  9. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/__init__.py +0 -0
  10. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/api/__init__.py +0 -0
  11. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/api/base_api.py +0 -0
  12. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/apis.py +0 -0
  13. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/auth/__init__.py +0 -0
  14. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/auth/auth.py +0 -0
  15. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/auth/hashers/__init__.py +0 -0
  16. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/auth/hashers/pbkdf2.py +0 -0
  17. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/auth/hashers/scrypt.py +0 -0
  18. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/auth/hashers/utils.py +0 -0
  19. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/auth/password_helpers/__init__.py +0 -0
  20. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/auth/password_helpers/fab.py +0 -0
  21. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/auth/strategies/__init__.py +0 -0
  22. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/auth/strategies/config.py +0 -0
  23. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/auth/strategies/db.py +0 -0
  24. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/auth/strategies/jwt.py +0 -0
  25. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/backends/__init__.py +0 -0
  26. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/backends/generic/__init__.py +0 -0
  27. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/backends/generic/column.py +0 -0
  28. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/backends/generic/db.py +0 -0
  29. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/backends/generic/exceptions.py +0 -0
  30. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/backends/generic/filters.py +0 -0
  31. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/backends/generic/interface.py +0 -0
  32. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/backends/generic/model.py +0 -0
  33. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/backends/generic/session.py +0 -0
  34. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/backends/sqla/__init__.py +0 -0
  35. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/backends/sqla/column.py +0 -0
  36. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/backends/sqla/db.py +0 -0
  37. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/backends/sqla/exceptions.py +0 -0
  38. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/backends/sqla/extensions/__init__.py +0 -0
  39. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/backends/sqla/extensions/audit/__init__.py +0 -0
  40. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/backends/sqla/extensions/audit/audit.py +0 -0
  41. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/backends/sqla/extensions/audit/types.py +0 -0
  42. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/backends/sqla/extensions/geoalchemy2/__init__.py +0 -0
  43. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/backends/sqla/extensions/geoalchemy2/filters.py +0 -0
  44. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/backends/sqla/extensions/geoalchemy2/geometry_converter.py +0 -0
  45. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/backends/sqla/filters.py +0 -0
  46. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/backends/sqla/interface.py +0 -0
  47. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/backends/sqla/model.py +0 -0
  48. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/backends/sqla/session.py +0 -0
  49. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/bases/__init__.py +0 -0
  50. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/bases/db.py +0 -0
  51. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/bases/file_manager.py +0 -0
  52. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/bases/filter.py +0 -0
  53. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/bases/interface.py +0 -0
  54. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/bases/model.py +0 -0
  55. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/bases/session.py +0 -0
  56. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/cli/__init__.py +0 -0
  57. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/cli/cli.py +0 -0
  58. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/cli/commands/__init__.py +0 -0
  59. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/cli/commands/db/__init__.py +0 -0
  60. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/cli/commands/db/templates/fastapi/README +0 -0
  61. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/cli/commands/db/templates/fastapi/alembic.ini.mako +0 -0
  62. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/cli/commands/db/templates/fastapi/env.py +0 -0
  63. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/cli/commands/db/templates/fastapi/script.py.mako +0 -0
  64. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/cli/commands/db/templates/fastapi-multidb/README +0 -0
  65. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/cli/commands/db/templates/fastapi-multidb/alembic.ini.mako +0 -0
  66. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/cli/commands/db/templates/fastapi-multidb/env.py +0 -0
  67. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/cli/commands/db/templates/fastapi-multidb/script.py.mako +0 -0
  68. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/cli/commands/export.py +0 -0
  69. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/cli/commands/security.py +0 -0
  70. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/cli/commands/translate.py +0 -0
  71. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/cli/const.py +0 -0
  72. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/cli/decorators.py +0 -0
  73. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/cli/types.py +0 -0
  74. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/cli/utils.py +0 -0
  75. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/config.py +0 -0
  76. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/const.py +0 -0
  77. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/db.py +0 -0
  78. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/decorators.py +0 -0
  79. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/dependencies.py +0 -0
  80. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/exceptions.py +0 -0
  81. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/fastapi_react_toolkit.py +0 -0
  82. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/file_managers/__init__.py +0 -0
  83. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/file_managers/file_manager.py +0 -0
  84. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/file_managers/image_manager.py +0 -0
  85. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/file_managers/s3_file_manager.py +0 -0
  86. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/file_managers/s3_image_manager.py +0 -0
  87. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/filters.py +0 -0
  88. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/globals.py +0 -0
  89. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/lang/__init__.py +0 -0
  90. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/lang/babel/__init__.py +0 -0
  91. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/lang/babel/cli.py +0 -0
  92. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/lang/babel/config.py +0 -0
  93. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/lang/babel.cfg +0 -0
  94. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/lang/lazy_text.py +0 -0
  95. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/lang/messages.pot +0 -0
  96. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/lang/translations/de/LC_MESSAGES/messages.mo +0 -0
  97. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/lang/translations/de/LC_MESSAGES/messages.po +0 -0
  98. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/lang/translations/en/LC_MESSAGES/messages.mo +0 -0
  99. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/lang/translations/en/LC_MESSAGES/messages.po +0 -0
  100. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/middlewares.py +0 -0
  101. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/mixins.py +0 -0
  102. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/models.py +0 -0
  103. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/routers.py +0 -0
  104. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/schemas.py +0 -0
  105. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/security/__init__.py +0 -0
  106. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/security/sqla/__init__.py +0 -0
  107. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/security/sqla/apis.py +0 -0
  108. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/security/sqla/models.py +0 -0
  109. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/security/sqla/security_manager.py +0 -0
  110. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/setting.py +0 -0
  111. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/types.py +0 -0
  112. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/utils/__init__.py +0 -0
  113. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/utils/async_task_runner.py +0 -0
  114. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/utils/class_factory.py +0 -0
  115. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/utils/csv_json_converter.py +0 -0
  116. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/utils/deep_merge.py +0 -0
  117. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/utils/extender_mixin.py +0 -0
  118. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/utils/flask_appbuilder_utils.py +0 -0
  119. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/utils/hooks.py +0 -0
  120. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/utils/lazy.py +0 -0
  121. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/utils/merge_schema.py +0 -0
  122. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/utils/multiple_async_contexts.py +0 -0
  123. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/utils/prettify_dict.py +0 -0
  124. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/utils/pydantic.py +0 -0
  125. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/utils/run_utils.py +0 -0
  126. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/utils/self_dependencies.py +0 -0
  127. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/utils/smartdefaultdict.py +0 -0
  128. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/utils/sqla.py +0 -0
  129. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/utils/timezone.py +0 -0
  130. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/utils/update_signature.py +0 -0
  131. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/utils/use_default_when_none.py +0 -0
  132. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/utils/werkzeug.py +0 -0
  133. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/fastapi_rtk/version.py +0 -0
  134. {fastapi_rtk-1.0.13 → fastapi_rtk-1.0.15}/pyproject.toml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fastapi-rtk
3
- Version: 1.0.13
3
+ Version: 1.0.15
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
@@ -0,0 +1 @@
1
+ __version__ = "1.0.15"
@@ -1050,16 +1050,16 @@ class ModelRestApi(BaseApi):
1050
1050
  Returns:
1051
1051
  Callable[..., Coroutine[Any, Any, Tuple[QuerySchema, AsyncSession | Session | None]]]: The dependency that yields the tuple.
1052
1052
  """
1053
- session_factory = self.datamodel.get_session_factory()
1054
1053
 
1055
- async def dependency(q: self.query_schema = Depends()): # type: ignore
1054
+ async def dependency(
1055
+ q: self.query_schema = Depends(), # type: ignore
1056
+ session=Depends(self.datamodel.get_session_factory()),
1057
+ ):
1056
1058
  q: QuerySchema = q
1057
1059
  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
1060
+ # TODO: Find a better way to not request session count when not needed
1061
+ return q, None
1062
+ return q, session
1063
1063
 
1064
1064
  return dependency
1065
1065
 
@@ -81,6 +81,8 @@ class UserManager(IDParser, BaseUserManager[User, int]):
81
81
  Returns:
82
82
  list[Role]: A list of Role objects that match the given role names.
83
83
  """
84
+ if not roles:
85
+ return []
84
86
  if isinstance(roles, str):
85
87
  roles = [roles]
86
88
  statement = select(Role).where(Role.name.in_(roles))
@@ -354,18 +356,14 @@ class UserManager(IDParser, BaseUserManager[User, int]):
354
356
  password = user_dict.pop("password")
355
357
  user_dict["hashed_password"] = self.password_helper.hash(password)
356
358
 
357
- role_names = roles
358
- if role_names is None:
359
- if request:
360
- from .setting import Setting
359
+ if roles is None and request:
360
+ from .setting import Setting
361
361
 
362
- role_names = Setting.AUTH_USER_REGISTRATION_ROLE
362
+ roles = Setting.AUTH_USER_REGISTRATION_ROLE
363
363
 
364
364
  # Get the roles if they exist
365
- if role_names:
366
- if isinstance(role_names, str):
367
- role_names = [role_names]
368
- user_dict["roles"] = await self.get_roles_by_names(role_names)
365
+ if roles is not None:
366
+ user_dict["roles"] = await self.get_roles_by_names(roles)
369
367
 
370
368
  created_user = await self.user_db.create(user_dict)
371
369
 
@@ -408,8 +406,6 @@ class UserManager(IDParser, BaseUserManager[User, int]):
408
406
  )
409
407
  )
410
408
  if roles is not None:
411
- if isinstance(roles, str):
412
- roles = [roles]
413
409
  updated_user_data["roles"] = await self.get_roles_by_names(roles)
414
410
  updated_user = await self._update(user, updated_user_data)
415
411
  await self.on_after_update(updated_user, updated_user_data, request)
@@ -718,13 +714,11 @@ class UserManager(IDParser, BaseUserManager[User, int]):
718
714
  Returns:
719
715
  User | dict[str, Any]: The updated user or user dictionary with roles.
720
716
  """
721
- if not role_keys:
717
+ if role_keys is None:
722
718
  return user_or_user_dict
723
719
  role_names = [Setting.AUTH_ROLES_MAPPING.get(key, []) for key in role_keys]
724
720
  role_names = [name for sublist in role_names for name in sublist]
725
721
  role_names = list(dict.fromkeys(role_names).keys())
726
- if not role_names:
727
- return user_or_user_dict
728
722
  if isinstance(user_or_user_dict, User):
729
723
  user_or_user_dict = await self.update({}, user_or_user_dict, role_names)
730
724
  else:
@@ -1 +0,0 @@
1
- __version__ = "1.0.13"
File without changes
File without changes
File without changes