fastapi-rtk 2.3.1__tar.gz → 2.3.2__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 (297) hide show
  1. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/PKG-INFO +1 -1
  2. fastapi_rtk-2.3.2/fastapi_rtk/_version.py +1 -0
  3. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/backends/generic/model.py +26 -5
  4. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/backends/generic/test_model.py +30 -2
  5. fastapi_rtk-2.3.1/fastapi_rtk/_version.py +0 -1
  6. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/.gitignore +0 -0
  7. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/LICENSE +0 -0
  8. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/README.md +0 -0
  9. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/__init__.py +0 -0
  10. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/api/__init__.py +0 -0
  11. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/api/base_api.py +0 -0
  12. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/api/model_rest_api/__init__.py +0 -0
  13. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/api/model_rest_api/_add_mixin.py +0 -0
  14. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/api/model_rest_api/_bulk_mixin.py +0 -0
  15. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/api/model_rest_api/_columns.py +0 -0
  16. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/api/model_rest_api/_delete_mixin.py +0 -0
  17. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/api/model_rest_api/_download_mixin.py +0 -0
  18. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/api/model_rest_api/_edit_mixin.py +0 -0
  19. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/api/model_rest_api/_file_mixin.py +0 -0
  20. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/api/model_rest_api/_info_mixin.py +0 -0
  21. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/api/model_rest_api/_list_mixin.py +0 -0
  22. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/api/model_rest_api/_params.py +0 -0
  23. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/api/model_rest_api/_show_mixin.py +0 -0
  24. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/api/model_rest_api/_upload_mixin.py +0 -0
  25. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/apis/__init__.py +0 -0
  26. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/apis/info.py +0 -0
  27. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/apis/license.py +0 -0
  28. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/auth/__init__.py +0 -0
  29. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/auth/auth.py +0 -0
  30. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/auth/hashers/__init__.py +0 -0
  31. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/auth/hashers/pbkdf2.py +0 -0
  32. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/auth/hashers/scrypt.py +0 -0
  33. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/auth/ldap.py +0 -0
  34. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/auth/password_helpers/__init__.py +0 -0
  35. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/auth/password_helpers/fab.py +0 -0
  36. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/auth/strategies/__init__.py +0 -0
  37. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/auth/strategies/config.py +0 -0
  38. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/auth/strategies/db.py +0 -0
  39. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/auth/strategies/jwt.py +0 -0
  40. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/backends/__init__.py +0 -0
  41. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/backends/generic/__init__.py +0 -0
  42. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/backends/generic/column.py +0 -0
  43. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/backends/generic/db.py +0 -0
  44. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/backends/generic/exceptions.py +0 -0
  45. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/backends/generic/filters.py +0 -0
  46. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/backends/generic/interface.py +0 -0
  47. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/backends/generic/session.py +0 -0
  48. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/backends/sqla/__init__.py +0 -0
  49. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/backends/sqla/column.py +0 -0
  50. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/backends/sqla/db.py +0 -0
  51. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/backends/sqla/exceptions.py +0 -0
  52. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/backends/sqla/extensions/__init__.py +0 -0
  53. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/backends/sqla/extensions/audit/__init__.py +0 -0
  54. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/backends/sqla/extensions/audit/_decorators_mixin.py +0 -0
  55. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/backends/sqla/extensions/audit/_lifecycle_mixin.py +0 -0
  56. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/backends/sqla/extensions/audit/_logger.py +0 -0
  57. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/backends/sqla/extensions/audit/_processing_mixin.py +0 -0
  58. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/backends/sqla/extensions/audit/audit.py +0 -0
  59. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/backends/sqla/extensions/audit/types.py +0 -0
  60. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/backends/sqla/extensions/geoalchemy2/__init__.py +0 -0
  61. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/backends/sqla/extensions/geoalchemy2/filters.py +0 -0
  62. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/backends/sqla/extensions/geoalchemy2/geometry_converter.py +0 -0
  63. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/backends/sqla/filters.py +0 -0
  64. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/backends/sqla/interface.py +0 -0
  65. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/backends/sqla/model.py +0 -0
  66. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/backends/sqla/session.py +0 -0
  67. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/bases/__init__.py +0 -0
  68. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/bases/db.py +0 -0
  69. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/bases/file_manager.py +0 -0
  70. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/bases/filter.py +0 -0
  71. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/bases/interface.py +0 -0
  72. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/bases/model.py +0 -0
  73. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/bases/session.py +0 -0
  74. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/cli/__init__.py +0 -0
  75. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/cli/cli.py +0 -0
  76. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/cli/commands/__init__.py +0 -0
  77. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/cli/commands/_security_crypto.py +0 -0
  78. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/cli/commands/db/__init__.py +0 -0
  79. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/cli/commands/db/templates/fastapi/README +0 -0
  80. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/cli/commands/db/templates/fastapi/alembic.ini.mako +0 -0
  81. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/cli/commands/db/templates/fastapi/env.py +0 -0
  82. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/cli/commands/db/templates/fastapi/script.py.mako +0 -0
  83. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/cli/commands/db/templates/fastapi-multidb/README +0 -0
  84. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/cli/commands/db/templates/fastapi-multidb/alembic.ini.mako +0 -0
  85. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/cli/commands/db/templates/fastapi-multidb/env.py +0 -0
  86. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/cli/commands/db/templates/fastapi-multidb/script.py.mako +0 -0
  87. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/cli/commands/export.py +0 -0
  88. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/cli/commands/security.py +0 -0
  89. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/cli/commands/translate.py +0 -0
  90. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/cli/const.py +0 -0
  91. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/cli/decorators.py +0 -0
  92. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/cli/types.py +0 -0
  93. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/cli/utils.py +0 -0
  94. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/config.py +0 -0
  95. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/const.py +0 -0
  96. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/db.py +0 -0
  97. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/decorators.py +0 -0
  98. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/dependencies.py +0 -0
  99. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/exceptions.py +0 -0
  100. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/fastapi_react_toolkit.py +0 -0
  101. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/file_managers/__init__.py +0 -0
  102. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/file_managers/file_manager.py +0 -0
  103. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/file_managers/image_manager.py +0 -0
  104. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/file_managers/s3_file_manager.py +0 -0
  105. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/file_managers/s3_image_manager.py +0 -0
  106. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/filters.py +0 -0
  107. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/globals.py +0 -0
  108. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/lang/__init__.py +0 -0
  109. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/lang/babel/__init__.py +0 -0
  110. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/lang/babel/cli.py +0 -0
  111. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/lang/babel/config.py +0 -0
  112. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/lang/babel.cfg +0 -0
  113. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/lang/lazy_text.py +0 -0
  114. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/lang/messages.pot +0 -0
  115. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/lang/translations/de/LC_MESSAGES/messages.mo +0 -0
  116. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/lang/translations/de/LC_MESSAGES/messages.po +0 -0
  117. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/lang/translations/en/LC_MESSAGES/messages.mo +0 -0
  118. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/lang/translations/en/LC_MESSAGES/messages.po +0 -0
  119. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/manager.py +0 -0
  120. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/middlewares.py +0 -0
  121. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/mixins.py +0 -0
  122. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/models.py +0 -0
  123. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/py.typed +0 -0
  124. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/registry.py +0 -0
  125. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/routers.py +0 -0
  126. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/schemas.py +0 -0
  127. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/security/__init__.py +0 -0
  128. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/security/sqla/__init__.py +0 -0
  129. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/security/sqla/apis.py +0 -0
  130. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/security/sqla/models.py +0 -0
  131. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/security/sqla/security_manager/__init__.py +0 -0
  132. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/security/sqla/security_manager/_association_mixin.py +0 -0
  133. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/security/sqla/security_manager/_builtin_role_mixin.py +0 -0
  134. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/security/sqla/security_manager/_cleanup_mixin.py +0 -0
  135. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/security/sqla/security_manager/_exception_filters.py +0 -0
  136. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/security/sqla/security_manager/_export.py +0 -0
  137. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/security/sqla/security_manager/_import.py +0 -0
  138. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/security/sqla/security_manager/_role_mixin.py +0 -0
  139. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/security/sqla/security_manager/_user_mixin.py +0 -0
  140. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/setting.py +0 -0
  141. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/types.py +0 -0
  142. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/utils/__init__.py +0 -0
  143. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/utils/async_task_runner.py +0 -0
  144. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/utils/class_factory.py +0 -0
  145. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/utils/csv_json_converter.py +0 -0
  146. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/utils/deep_merge.py +0 -0
  147. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/utils/extender_mixin.py +0 -0
  148. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/utils/flask_appbuilder_utils.py +0 -0
  149. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/utils/formatter.py +0 -0
  150. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/utils/hooks.py +0 -0
  151. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/utils/lazy.py +0 -0
  152. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/utils/merge_schema.py +0 -0
  153. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/utils/multiple_async_contexts.py +0 -0
  154. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/utils/pydantic.py +0 -0
  155. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/utils/run_utils.py +0 -0
  156. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/utils/self_dependencies.py +0 -0
  157. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/utils/smartdefaultdict.py +0 -0
  158. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/utils/sqla.py +0 -0
  159. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/utils/timezone.py +0 -0
  160. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/utils/update_signature.py +0 -0
  161. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/utils/use_default_when_none.py +0 -0
  162. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/fastapi_rtk/version.py +0 -0
  163. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/pyproject.toml +0 -0
  164. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/conftest.py +0 -0
  165. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/docker-compose.gis.yml +0 -0
  166. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/integration/__init__.py +0 -0
  167. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/integration/api/__init__.py +0 -0
  168. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/integration/api/test_model_rest_api.py +0 -0
  169. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/integration/apis/__init__.py +0 -0
  170. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/integration/apis/test_info_contract.py +0 -0
  171. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/integration/auth/__init__.py +0 -0
  172. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/integration/auth/test_auth_flow.py +0 -0
  173. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/integration/auth/test_oauth.py +0 -0
  174. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/integration/conftest.py +0 -0
  175. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/integration/file_managers/__init__.py +0 -0
  176. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/integration/file_managers/test_file_routes.py +0 -0
  177. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/integration/security/__init__.py +0 -0
  178. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/integration/security/sqla/__init__.py +0 -0
  179. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/integration/security/sqla/test_security_manager.py +0 -0
  180. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/integration/test_app_smoke.py +0 -0
  181. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/__init__.py +0 -0
  182. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/api/__init__.py +0 -0
  183. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/api/conftest.py +0 -0
  184. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/api/model_rest_api/__init__.py +0 -0
  185. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/api/model_rest_api/test_columns.py +0 -0
  186. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/api/model_rest_api/test_file_mixin.py +0 -0
  187. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/api/model_rest_api/test_init.py +0 -0
  188. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/api/test_base_api.py +0 -0
  189. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/apis/__init__.py +0 -0
  190. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/apis/test_info.py +0 -0
  191. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/apis/test_license.py +0 -0
  192. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/auth/__init__.py +0 -0
  193. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/auth/hashers/__init__.py +0 -0
  194. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/auth/hashers/test_pbkdf2.py +0 -0
  195. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/auth/hashers/test_scrypt.py +0 -0
  196. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/auth/password_helpers/__init__.py +0 -0
  197. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/auth/password_helpers/test_fab.py +0 -0
  198. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/auth/strategies/__init__.py +0 -0
  199. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/auth/strategies/test_config.py +0 -0
  200. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/auth/strategies/test_db.py +0 -0
  201. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/auth/strategies/test_jwt.py +0 -0
  202. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/auth/test_auth.py +0 -0
  203. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/backends/__init__.py +0 -0
  204. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/backends/generic/__init__.py +0 -0
  205. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/backends/generic/test_column.py +0 -0
  206. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/backends/generic/test_db.py +0 -0
  207. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/backends/generic/test_exceptions.py +0 -0
  208. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/backends/generic/test_filters.py +0 -0
  209. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/backends/generic/test_interface.py +0 -0
  210. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/backends/generic/test_session.py +0 -0
  211. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/backends/sqla/__init__.py +0 -0
  212. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/backends/sqla/conftest.py +0 -0
  213. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/backends/sqla/test_audit.py +0 -0
  214. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/backends/sqla/test_audit_types.py +0 -0
  215. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/backends/sqla/test_column.py +0 -0
  216. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/backends/sqla/test_db.py +0 -0
  217. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/backends/sqla/test_filters.py +0 -0
  218. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/backends/sqla/test_geoalchemy2.py +0 -0
  219. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/backends/sqla/test_interface.py +0 -0
  220. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/backends/sqla/test_model.py +0 -0
  221. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/backends/sqla/test_session.py +0 -0
  222. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/bases/__init__.py +0 -0
  223. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/bases/test_db.py +0 -0
  224. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/bases/test_file_manager.py +0 -0
  225. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/bases/test_filter.py +0 -0
  226. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/bases/test_interface.py +0 -0
  227. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/bases/test_model.py +0 -0
  228. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/bases/test_session.py +0 -0
  229. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/cli/__init__.py +0 -0
  230. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/cli/commands/__init__.py +0 -0
  231. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/cli/commands/conftest.py +0 -0
  232. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/cli/commands/test_db.py +0 -0
  233. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/cli/commands/test_export.py +0 -0
  234. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/cli/commands/test_security.py +0 -0
  235. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/cli/commands/test_security_crypto.py +0 -0
  236. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/cli/commands/test_translate.py +0 -0
  237. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/cli/conftest.py +0 -0
  238. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/cli/test_cli.py +0 -0
  239. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/cli/test_decorators.py +0 -0
  240. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/cli/test_types.py +0 -0
  241. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/cli/test_utils.py +0 -0
  242. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/file_managers/__init__.py +0 -0
  243. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/file_managers/conftest.py +0 -0
  244. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/file_managers/test_file_manager.py +0 -0
  245. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/file_managers/test_image_manager.py +0 -0
  246. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/file_managers/test_s3_file_manager.py +0 -0
  247. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/file_managers/test_s3_image_manager.py +0 -0
  248. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/lang/__init__.py +0 -0
  249. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/lang/test_babel_cli.py +0 -0
  250. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/lang/test_babel_config.py +0 -0
  251. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/lang/test_lazy_text.py +0 -0
  252. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/security/__init__.py +0 -0
  253. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/security/sqla/__init__.py +0 -0
  254. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/security/sqla/conftest.py +0 -0
  255. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/security/sqla/test_apis.py +0 -0
  256. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/security/sqla/test_models.py +0 -0
  257. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/security/sqla/test_security_manager.py +0 -0
  258. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/test_config.py +0 -0
  259. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/test_const.py +0 -0
  260. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/test_db.py +0 -0
  261. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/test_decorators.py +0 -0
  262. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/test_dependencies.py +0 -0
  263. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/test_exceptions.py +0 -0
  264. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/test_fastapi_react_toolkit.py +0 -0
  265. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/test_filters.py +0 -0
  266. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/test_globals.py +0 -0
  267. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/test_manager.py +0 -0
  268. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/test_middlewares.py +0 -0
  269. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/test_mixins.py +0 -0
  270. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/test_models.py +0 -0
  271. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/test_registry.py +0 -0
  272. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/test_routers.py +0 -0
  273. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/test_schemas.py +0 -0
  274. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/test_setting.py +0 -0
  275. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/test_types.py +0 -0
  276. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/test_version.py +0 -0
  277. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/utils/__init__.py +0 -0
  278. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/utils/test_async_task_runner.py +0 -0
  279. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/utils/test_class_factory.py +0 -0
  280. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/utils/test_csv_json_converter.py +0 -0
  281. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/utils/test_deep_merge.py +0 -0
  282. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/utils/test_extender_mixin.py +0 -0
  283. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/utils/test_flask_appbuilder_utils.py +0 -0
  284. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/utils/test_formatter.py +0 -0
  285. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/utils/test_hooks.py +0 -0
  286. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/utils/test_lazy.py +0 -0
  287. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/utils/test_merge_schema.py +0 -0
  288. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/utils/test_multiple_async_contexts.py +0 -0
  289. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/utils/test_pydantic.py +0 -0
  290. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/utils/test_run_utils.py +0 -0
  291. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/utils/test_self_dependencies.py +0 -0
  292. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/utils/test_smartdefaultdict.py +0 -0
  293. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/utils/test_sqla.py +0 -0
  294. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/utils/test_timezone.py +0 -0
  295. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/utils/test_update_signature.py +0 -0
  296. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/tests/unit/utils/test_use_default_when_none.py +0 -0
  297. {fastapi_rtk-2.3.1 → fastapi_rtk-2.3.2}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fastapi-rtk
3
- Version: 2.3.1
3
+ Version: 2.3.2
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__ = "2.3.2"
@@ -1,4 +1,5 @@
1
1
  import typing
2
+ import warnings
2
3
 
3
4
  from ...bases.model import BasicModel
4
5
  from ...utils import T, lazy
@@ -52,11 +53,17 @@ class GenericModel(BasicModel):
52
53
  """
53
54
  A mapper that contains the primary key, properties, and columns of the model.
54
55
  """
56
+ __abstract__ = False
57
+ """
58
+ Set to True in a class body to skip `__init_subclass__` setup for that
59
+ class only (an abstract intermediate that should not be validated as a
60
+ concrete model). The flag does not inherit: a concrete subclass that does
61
+ not set it is reset to False and set up normally.
62
+ """
55
63
  __ignore_init__ = False
56
64
  """
57
- If set to True, the `__init_subclass__` method will not run for this class.
58
-
59
- Useful for subclasses that should work as a model.
65
+ Deprecated alias for `__abstract__`. Still honoured but emits a
66
+ DeprecationWarning; prefer `__abstract__` in new code.
60
67
  """
61
68
  __table__: "Table | None" = None
62
69
  """
@@ -64,8 +71,17 @@ class GenericModel(BasicModel):
64
71
  """
65
72
 
66
73
  def __init_subclass__(cls) -> None:
67
- if getattr(cls, "__ignore_init__", False):
68
- # If the child class defines '__ignore_init__', skip the parent's logic
74
+ own = cls.__dict__
75
+ if own.get("__abstract__") or own.get("__ignore_init__"):
76
+ # Abstract intermediate: skip setup for the declaring class only
77
+ # (own-dict, not inherited); concrete subclasses are reset below
78
+ # so the marker does not cascade.
79
+ if own.get("__ignore_init__"):
80
+ warnings.warn(
81
+ "__ignore_init__ is deprecated; set __abstract__ = True instead.",
82
+ DeprecationWarning,
83
+ stacklevel=2,
84
+ )
69
85
  return
70
86
 
71
87
  # Take all the columns from the base classes, this allow the use of multiple inheritance
@@ -92,6 +108,11 @@ class GenericModel(BasicModel):
92
108
  if not cls.__mapper__.pk:
93
109
  raise PKMissingException(cls.__name__, "Primary key is missing")
94
110
 
111
+ # The abstract markers apply only to the declaring class; reset them
112
+ # on this concrete subclass so an inherited True does not cascade.
113
+ cls.__abstract__ = False
114
+ cls.__ignore_init__ = False
115
+
95
116
  def __init__(self, *, __check_on_init__=True, **kwargs):
96
117
  """
97
118
  Initialize the model with the given keyword arguments.
@@ -30,12 +30,40 @@ class TestSubclassPKValidation:
30
30
  a = GenericColumn(int, primary_key=True, auto_increment=True)
31
31
  b = GenericColumn(str, primary_key=True)
32
32
 
33
- def test_ignore_init_skips_validation(self):
33
+ def test_abstract_skips_validation(self):
34
34
  class M(GenericModel):
35
- __ignore_init__ = True
35
+ __abstract__ = True
36
36
 
37
37
  # No exception even though no PK
38
38
 
39
+ def test_abstract_does_not_inherit_to_subclasses(self):
40
+ class Base(GenericModel):
41
+ __abstract__ = True # abstract intermediate, skipped
42
+
43
+ assert Base.__abstract__ is True
44
+
45
+ # a concrete subclass is validated normally (the marker did not
46
+ # inherit) and is reset to False
47
+ class Concrete(Base):
48
+ id = GenericColumn(int, primary_key=True)
49
+
50
+ assert Concrete.__abstract__ is False
51
+
52
+ # a concrete subclass without a pk is still enforced, proving no
53
+ # skip leaked from the abstract base
54
+ with pytest.raises(PKMissingException):
55
+
56
+ class NoPk(Base):
57
+ x = GenericColumn(int)
58
+
59
+ def test_ignore_init_deprecated_alias_still_skips(self):
60
+ with pytest.warns(DeprecationWarning):
61
+
62
+ class M(GenericModel):
63
+ __ignore_init__ = True
64
+
65
+ # still skipped (no PK error) but emits a DeprecationWarning
66
+
39
67
 
40
68
  class TestModelInit:
41
69
  def _model(self):
@@ -1 +0,0 @@
1
- __version__ = "2.3.1"
File without changes
File without changes
File without changes
File without changes