fastapi-rtk 2.15.0__tar.gz → 2.17.0__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 (356) hide show
  1. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/.gitignore +7 -1
  2. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/PKG-INFO +16 -1
  3. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/README.md +15 -0
  4. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/__init__.py +18 -0
  5. fastapi_rtk-2.17.0/fastapi_rtk/_version.py +1 -0
  6. fastapi_rtk-2.17.0/fastapi_rtk/agent_docs/adapters/agents-md/AGENTS.md +38 -0
  7. fastapi_rtk-2.17.0/fastapi_rtk/agent_docs/adapters/claude/skill.frontmatter +2 -0
  8. fastapi_rtk-2.17.0/fastapi_rtk/agent_docs/guide/backend.md +794 -0
  9. fastapi_rtk-2.17.0/fastapi_rtk/agent_docs/guide/frontend.md +662 -0
  10. fastapi_rtk-2.17.0/fastapi_rtk/agent_docs/guide/legacy.md +45 -0
  11. fastapi_rtk-2.17.0/fastapi_rtk/agent_docs/guide/overview.md +106 -0
  12. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/api/__init__.py +13 -0
  13. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/api/base_api.py +14 -4
  14. fastapi_rtk-2.17.0/fastapi_rtk/api/model_rest_api/__init__.py +19 -0
  15. fastapi_rtk-2.17.0/fastapi_rtk/api/model_rest_api/model_rest_api.py +2322 -0
  16. fastapi_rtk-2.15.0/fastapi_rtk/api/model_rest_api/_params.py → fastapi_rtk-2.17.0/fastapi_rtk/api/model_rest_api/params.py +1 -1
  17. fastapi_rtk-2.17.0/fastapi_rtk/api/model_rest_api/services/__init__.py +25 -0
  18. fastapi_rtk-2.17.0/fastapi_rtk/api/model_rest_api/services/_add_service.py +99 -0
  19. fastapi_rtk-2.17.0/fastapi_rtk/api/model_rest_api/services/_bulk_service.py +59 -0
  20. fastapi_rtk-2.15.0/fastapi_rtk/api/model_rest_api/_delete_mixin.py → fastapi_rtk-2.17.0/fastapi_rtk/api/model_rest_api/services/_delete_service.py +36 -77
  21. fastapi_rtk-2.15.0/fastapi_rtk/api/model_rest_api/_download_mixin.py → fastapi_rtk-2.17.0/fastapi_rtk/api/model_rest_api/services/_download_service.py +90 -68
  22. fastapi_rtk-2.17.0/fastapi_rtk/api/model_rest_api/services/_edit_service.py +123 -0
  23. fastapi_rtk-2.17.0/fastapi_rtk/api/model_rest_api/services/_file_service.py +85 -0
  24. fastapi_rtk-2.15.0/fastapi_rtk/api/model_rest_api/_info_mixin.py → fastapi_rtk-2.17.0/fastapi_rtk/api/model_rest_api/services/_info_service.py +86 -97
  25. fastapi_rtk-2.17.0/fastapi_rtk/api/model_rest_api/services/_list_service.py +99 -0
  26. fastapi_rtk-2.15.0/fastapi_rtk/api/model_rest_api/_columns_mixin.py → fastapi_rtk-2.17.0/fastapi_rtk/api/model_rest_api/services/_schema_service.py +95 -80
  27. fastapi_rtk-2.17.0/fastapi_rtk/api/model_rest_api/services/_show_service.py +76 -0
  28. fastapi_rtk-2.15.0/fastapi_rtk/backends/sqla/extensions/audit/_decorators_mixin.py → fastapi_rtk-2.17.0/fastapi_rtk/backends/sqla/extensions/audit/_decorators_service.py +38 -64
  29. fastapi_rtk-2.15.0/fastapi_rtk/backends/sqla/extensions/audit/_lifecycle_mixin.py → fastapi_rtk-2.17.0/fastapi_rtk/backends/sqla/extensions/audit/_lifecycle_service.py +79 -120
  30. fastapi_rtk-2.15.0/fastapi_rtk/backends/sqla/extensions/audit/_processing_mixin.py → fastapi_rtk-2.17.0/fastapi_rtk/backends/sqla/extensions/audit/_processing_service.py +51 -56
  31. fastapi_rtk-2.17.0/fastapi_rtk/backends/sqla/extensions/audit/audit.py +715 -0
  32. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/bases/interface.py +3 -1
  33. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/cli.py +5 -1
  34. fastapi_rtk-2.17.0/fastapi_rtk/cli/commands/agent/__init__.py +98 -0
  35. fastapi_rtk-2.17.0/fastapi_rtk/cli/commands/agent/adapters/__init__.py +4 -0
  36. fastapi_rtk-2.17.0/fastapi_rtk/cli/commands/agent/adapters/agents_md.py +155 -0
  37. fastapi_rtk-2.17.0/fastapi_rtk/cli/commands/agent/adapters/claude.py +118 -0
  38. fastapi_rtk-2.17.0/fastapi_rtk/cli/commands/agent/base.py +146 -0
  39. fastapi_rtk-2.17.0/fastapi_rtk/cli/commands/agent/docs.py +126 -0
  40. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/security.py +456 -686
  41. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/const.py +1 -0
  42. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/decorators.py +1 -0
  43. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/dependencies.py +13 -79
  44. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/exceptions.py +63 -0
  45. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/fastapi_react_toolkit.py +2 -2
  46. fastapi_rtk-2.17.0/fastapi_rtk/security/sqla/security_manager/__init__.py +4 -0
  47. fastapi_rtk-2.15.0/fastapi_rtk/security/sqla/security_manager/_builtin_role_mixin.py → fastapi_rtk-2.17.0/fastapi_rtk/security/sqla/security_manager/_builtin_role_service.py +52 -34
  48. fastapi_rtk-2.17.0/fastapi_rtk/security/sqla/security_manager/_entities.py +71 -0
  49. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/security/sqla/security_manager/_exception_filters.py +4 -1
  50. fastapi_rtk-2.17.0/fastapi_rtk/security/sqla/security_manager/_permission_service.py +446 -0
  51. fastapi_rtk-2.17.0/fastapi_rtk/security/sqla/security_manager/_results.py +58 -0
  52. fastapi_rtk-2.17.0/fastapi_rtk/security/sqla/security_manager/_role_service.py +356 -0
  53. fastapi_rtk-2.17.0/fastapi_rtk/security/sqla/security_manager/_user_service.py +866 -0
  54. fastapi_rtk-2.17.0/fastapi_rtk/security/sqla/security_manager/security_manager.py +1315 -0
  55. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/setting.py +7 -0
  56. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/lazy.py +18 -5
  57. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/integration/api/test_model_rest_api.py +135 -0
  58. fastapi_rtk-2.17.0/tests/integration/security/sqla/conftest.py +20 -0
  59. fastapi_rtk-2.17.0/tests/integration/security/sqla/test_permission_service.py +118 -0
  60. fastapi_rtk-2.17.0/tests/integration/security/sqla/test_role_service.py +64 -0
  61. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/integration/security/sqla/test_security_manager.py +32 -20
  62. fastapi_rtk-2.17.0/tests/integration/security/sqla/test_user_service.py +105 -0
  63. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/api/model_rest_api/test_init.py +18 -3
  64. fastapi_rtk-2.17.0/tests/unit/api/model_rest_api/test_service_delegators.py +78 -0
  65. fastapi_rtk-2.17.0/tests/unit/backends/sqla/test_audit_service_delegators.py +81 -0
  66. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/cli/commands/test_security.py +605 -518
  67. fastapi_rtk-2.17.0/tests/unit/cli/test_cli.py +584 -0
  68. fastapi_rtk-2.17.0/tests/unit/security/sqla/security_manager/test_builtin_role_service.py +81 -0
  69. fastapi_rtk-2.17.0/tests/unit/security/sqla/security_manager/test_entities.py +91 -0
  70. fastapi_rtk-2.17.0/tests/unit/security/sqla/security_manager/test_permission_service.py +32 -0
  71. fastapi_rtk-2.17.0/tests/unit/security/sqla/security_manager/test_results.py +24 -0
  72. fastapi_rtk-2.17.0/tests/unit/security/sqla/security_manager/test_role_service.py +28 -0
  73. fastapi_rtk-2.17.0/tests/unit/security/sqla/security_manager/test_user_service.py +118 -0
  74. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/security/sqla/test_security_manager.py +10 -8
  75. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_const.py +2 -0
  76. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_decorators.py +7 -0
  77. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_dependencies.py +68 -149
  78. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_exceptions.py +63 -0
  79. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_setting.py +8 -0
  80. fastapi_rtk-2.17.0/tests/unit/utils/__init__.py +0 -0
  81. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_lazy.py +99 -0
  82. fastapi_rtk-2.15.0/fastapi_rtk/_version.py +0 -1
  83. fastapi_rtk-2.15.0/fastapi_rtk/api/model_rest_api/__init__.py +0 -1322
  84. fastapi_rtk-2.15.0/fastapi_rtk/api/model_rest_api/_add_mixin.py +0 -135
  85. fastapi_rtk-2.15.0/fastapi_rtk/api/model_rest_api/_bulk_mixin.py +0 -97
  86. fastapi_rtk-2.15.0/fastapi_rtk/api/model_rest_api/_edit_mixin.py +0 -176
  87. fastapi_rtk-2.15.0/fastapi_rtk/api/model_rest_api/_file_mixin.py +0 -131
  88. fastapi_rtk-2.15.0/fastapi_rtk/api/model_rest_api/_list_mixin.py +0 -119
  89. fastapi_rtk-2.15.0/fastapi_rtk/api/model_rest_api/_show_mixin.py +0 -97
  90. fastapi_rtk-2.15.0/fastapi_rtk/api/model_rest_api/_typed_base.py +0 -215
  91. fastapi_rtk-2.15.0/fastapi_rtk/api/model_rest_api/_upload_mixin.py +0 -62
  92. fastapi_rtk-2.15.0/fastapi_rtk/backends/sqla/extensions/audit/audit.py +0 -255
  93. fastapi_rtk-2.15.0/fastapi_rtk/security/sqla/security_manager/__init__.py +0 -155
  94. fastapi_rtk-2.15.0/fastapi_rtk/security/sqla/security_manager/_association_mixin.py +0 -136
  95. fastapi_rtk-2.15.0/fastapi_rtk/security/sqla/security_manager/_cleanup_mixin.py +0 -108
  96. fastapi_rtk-2.15.0/fastapi_rtk/security/sqla/security_manager/_role_mixin.py +0 -239
  97. fastapi_rtk-2.15.0/fastapi_rtk/security/sqla/security_manager/_user_mixin.py +0 -507
  98. fastapi_rtk-2.15.0/tests/unit/api/model_rest_api/test_typed_base_consistency.py +0 -104
  99. fastapi_rtk-2.15.0/tests/unit/cli/test_cli.py +0 -172
  100. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/LICENSE +0 -0
  101. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/apis/__init__.py +0 -0
  102. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/apis/info.py +0 -0
  103. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/apis/license.py +0 -0
  104. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/auth/__init__.py +0 -0
  105. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/auth/auth.py +0 -0
  106. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/auth/hashers/__init__.py +0 -0
  107. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/auth/hashers/pbkdf2.py +0 -0
  108. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/auth/hashers/scrypt.py +0 -0
  109. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/auth/ldap.py +0 -0
  110. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/auth/password_helpers/__init__.py +0 -0
  111. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/auth/password_helpers/fab.py +0 -0
  112. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/auth/strategies/__init__.py +0 -0
  113. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/auth/strategies/config.py +0 -0
  114. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/auth/strategies/db.py +0 -0
  115. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/auth/strategies/jwt.py +0 -0
  116. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/__init__.py +0 -0
  117. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/generic/__init__.py +0 -0
  118. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/generic/column.py +0 -0
  119. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/generic/db.py +0 -0
  120. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/generic/exceptions.py +0 -0
  121. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/generic/filters.py +0 -0
  122. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/generic/interface.py +0 -0
  123. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/generic/model.py +0 -0
  124. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/generic/session.py +0 -0
  125. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/__init__.py +0 -0
  126. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/column.py +0 -0
  127. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/db.py +0 -0
  128. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/exceptions.py +0 -0
  129. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/extensions/__init__.py +0 -0
  130. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/extensions/audit/__init__.py +0 -0
  131. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/extensions/audit/_logger.py +0 -0
  132. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/extensions/audit/types.py +0 -0
  133. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/extensions/geoalchemy2/__init__.py +0 -0
  134. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/extensions/geoalchemy2/filters.py +0 -0
  135. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/extensions/geoalchemy2/geometry_converter.py +0 -0
  136. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/filters.py +0 -0
  137. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/interface.py +0 -0
  138. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/model.py +0 -0
  139. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/backends/sqla/session.py +0 -0
  140. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/bases/__init__.py +0 -0
  141. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/bases/cache.py +0 -0
  142. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/bases/db.py +0 -0
  143. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/bases/file_manager.py +0 -0
  144. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/bases/filter.py +0 -0
  145. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/bases/loop_manager.py +0 -0
  146. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/bases/model.py +0 -0
  147. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/bases/session.py +0 -0
  148. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/bases/user_cache.py +0 -0
  149. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/caches/__init__.py +0 -0
  150. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/caches/cache.py +0 -0
  151. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/caches/serializers.py +0 -0
  152. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/caches/storages.py +0 -0
  153. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/__init__.py +0 -0
  154. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/__init__.py +0 -0
  155. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/_security_crypto.py +0 -0
  156. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/db/__init__.py +0 -0
  157. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/db/templates/fastapi/README +0 -0
  158. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/db/templates/fastapi/alembic.ini.mako +0 -0
  159. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/db/templates/fastapi/env.py +0 -0
  160. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/db/templates/fastapi/script.py.mako +0 -0
  161. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/db/templates/fastapi-multidb/README +0 -0
  162. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/db/templates/fastapi-multidb/alembic.ini.mako +0 -0
  163. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/db/templates/fastapi-multidb/env.py +0 -0
  164. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/db/templates/fastapi-multidb/script.py.mako +0 -0
  165. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/export.py +0 -0
  166. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/commands/translate.py +0 -0
  167. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/const.py +0 -0
  168. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/decorators.py +0 -0
  169. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/types.py +0 -0
  170. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/cli/utils.py +0 -0
  171. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/config.py +0 -0
  172. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/db.py +0 -0
  173. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/file_managers/__init__.py +0 -0
  174. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/file_managers/file_manager.py +0 -0
  175. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/file_managers/image_manager.py +0 -0
  176. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/file_managers/s3_file_manager.py +0 -0
  177. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/file_managers/s3_image_manager.py +0 -0
  178. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/filters.py +0 -0
  179. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/globals.py +0 -0
  180. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/lang/__init__.py +0 -0
  181. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/lang/babel/__init__.py +0 -0
  182. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/lang/babel/cli.py +0 -0
  183. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/lang/babel/config.py +0 -0
  184. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/lang/babel.cfg +0 -0
  185. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/lang/lazy_text.py +0 -0
  186. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/lang/messages.pot +0 -0
  187. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/lang/translations/de/LC_MESSAGES/messages.mo +0 -0
  188. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/lang/translations/de/LC_MESSAGES/messages.po +0 -0
  189. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/lang/translations/en/LC_MESSAGES/messages.mo +0 -0
  190. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/lang/translations/en/LC_MESSAGES/messages.po +0 -0
  191. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/loop_managers/__init__.py +0 -0
  192. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/loop_managers/loop_manager.py +0 -0
  193. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/manager.py +0 -0
  194. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/middlewares.py +0 -0
  195. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/mixins.py +0 -0
  196. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/models.py +0 -0
  197. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/py.typed +0 -0
  198. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/registry.py +0 -0
  199. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/routers.py +0 -0
  200. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/schemas.py +0 -0
  201. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/security/__init__.py +0 -0
  202. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/security/sqla/__init__.py +0 -0
  203. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/security/sqla/apis.py +0 -0
  204. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/security/sqla/models.py +0 -0
  205. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/security/sqla/security_manager/_export.py +0 -0
  206. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/security/sqla/security_manager/_import.py +0 -0
  207. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/security/sqla/user_cache.py +0 -0
  208. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/types.py +0 -0
  209. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/__init__.py +0 -0
  210. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/async_task_runner.py +0 -0
  211. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/class_factory.py +0 -0
  212. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/csv_json_converter.py +0 -0
  213. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/deep_merge.py +0 -0
  214. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/extender_mixin.py +0 -0
  215. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/flask_appbuilder_utils.py +0 -0
  216. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/formatter.py +0 -0
  217. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/hooks.py +0 -0
  218. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/merge_schema.py +0 -0
  219. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/multiple_async_contexts.py +0 -0
  220. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/pydantic.py +0 -0
  221. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/run_utils.py +0 -0
  222. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/self_dependencies.py +0 -0
  223. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/smartdefaultdict.py +0 -0
  224. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/sqla.py +0 -0
  225. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/timezone.py +0 -0
  226. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/update_signature.py +0 -0
  227. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/utils/use_default_when_none.py +0 -0
  228. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/fastapi_rtk/version.py +0 -0
  229. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/pyproject.toml +0 -0
  230. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/conftest.py +0 -0
  231. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/docker-compose.gis.yml +0 -0
  232. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/integration/__init__.py +0 -0
  233. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/integration/api/__init__.py +0 -0
  234. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/integration/api/test_add_edit_relation_response.py +0 -0
  235. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/integration/apis/__init__.py +0 -0
  236. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/integration/apis/test_info_callable_schema.py +0 -0
  237. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/integration/apis/test_info_contract.py +0 -0
  238. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/integration/auth/__init__.py +0 -0
  239. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/integration/auth/test_auth_flow.py +0 -0
  240. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/integration/auth/test_oauth.py +0 -0
  241. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/integration/conftest.py +0 -0
  242. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/integration/file_managers/__init__.py +0 -0
  243. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/integration/file_managers/test_file_routes.py +0 -0
  244. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/integration/security/__init__.py +0 -0
  245. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/integration/security/sqla/__init__.py +0 -0
  246. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/integration/test_app_smoke.py +0 -0
  247. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/__init__.py +0 -0
  248. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/api/__init__.py +0 -0
  249. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/api/conftest.py +0 -0
  250. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/api/model_rest_api/__init__.py +0 -0
  251. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/api/model_rest_api/test_columns.py +0 -0
  252. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/api/model_rest_api/test_file_mixin.py +0 -0
  253. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/api/test_base_api.py +0 -0
  254. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/apis/__init__.py +0 -0
  255. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/apis/test_info.py +0 -0
  256. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/apis/test_license.py +0 -0
  257. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/auth/__init__.py +0 -0
  258. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/auth/hashers/__init__.py +0 -0
  259. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/auth/hashers/test_pbkdf2.py +0 -0
  260. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/auth/hashers/test_scrypt.py +0 -0
  261. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/auth/password_helpers/__init__.py +0 -0
  262. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/auth/password_helpers/test_fab.py +0 -0
  263. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/auth/strategies/__init__.py +0 -0
  264. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/auth/strategies/test_config.py +0 -0
  265. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/auth/strategies/test_db.py +0 -0
  266. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/auth/strategies/test_jwt.py +0 -0
  267. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/auth/test_auth.py +0 -0
  268. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/__init__.py +0 -0
  269. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/generic/__init__.py +0 -0
  270. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/generic/test_column.py +0 -0
  271. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/generic/test_db.py +0 -0
  272. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/generic/test_exceptions.py +0 -0
  273. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/generic/test_filters.py +0 -0
  274. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/generic/test_interface.py +0 -0
  275. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/generic/test_model.py +0 -0
  276. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/generic/test_session.py +0 -0
  277. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/sqla/__init__.py +0 -0
  278. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/sqla/conftest.py +0 -0
  279. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/sqla/test_audit.py +0 -0
  280. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/sqla/test_audit_types.py +0 -0
  281. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/sqla/test_column.py +0 -0
  282. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/sqla/test_db.py +0 -0
  283. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/sqla/test_filters.py +0 -0
  284. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/sqla/test_geoalchemy2.py +0 -0
  285. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/sqla/test_interface.py +0 -0
  286. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/sqla/test_model.py +0 -0
  287. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/backends/sqla/test_session.py +0 -0
  288. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/bases/__init__.py +0 -0
  289. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/bases/test_db.py +0 -0
  290. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/bases/test_file_manager.py +0 -0
  291. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/bases/test_filter.py +0 -0
  292. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/bases/test_interface.py +0 -0
  293. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/bases/test_model.py +0 -0
  294. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/bases/test_session.py +0 -0
  295. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/cli/__init__.py +0 -0
  296. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/cli/commands/__init__.py +0 -0
  297. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/cli/commands/conftest.py +0 -0
  298. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/cli/commands/test_db.py +0 -0
  299. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/cli/commands/test_export.py +0 -0
  300. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/cli/commands/test_security_crypto.py +0 -0
  301. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/cli/commands/test_translate.py +0 -0
  302. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/cli/conftest.py +0 -0
  303. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/cli/test_decorators.py +0 -0
  304. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/cli/test_types.py +0 -0
  305. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/cli/test_utils.py +0 -0
  306. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/file_managers/__init__.py +0 -0
  307. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/file_managers/conftest.py +0 -0
  308. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/file_managers/test_file_manager.py +0 -0
  309. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/file_managers/test_image_manager.py +0 -0
  310. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/file_managers/test_s3_file_manager.py +0 -0
  311. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/file_managers/test_s3_image_manager.py +0 -0
  312. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/lang/__init__.py +0 -0
  313. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/lang/test_babel_cli.py +0 -0
  314. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/lang/test_babel_config.py +0 -0
  315. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/lang/test_lazy_text.py +0 -0
  316. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/security/__init__.py +0 -0
  317. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/security/sqla/__init__.py +0 -0
  318. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/security/sqla/conftest.py +0 -0
  319. {fastapi_rtk-2.15.0/tests/unit/utils → fastapi_rtk-2.17.0/tests/unit/security/sqla/security_manager}/__init__.py +0 -0
  320. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/security/sqla/test_apis.py +0 -0
  321. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/security/sqla/test_models.py +0 -0
  322. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_caches.py +0 -0
  323. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_config.py +0 -0
  324. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_db.py +0 -0
  325. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_fastapi_react_toolkit.py +0 -0
  326. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_filters.py +0 -0
  327. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_globals.py +0 -0
  328. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_manager.py +0 -0
  329. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_middlewares.py +0 -0
  330. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_mixins.py +0 -0
  331. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_models.py +0 -0
  332. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_registry.py +0 -0
  333. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_routers.py +0 -0
  334. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_schemas.py +0 -0
  335. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_types.py +0 -0
  336. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_user_cache.py +0 -0
  337. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/test_version.py +0 -0
  338. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_async_task_runner.py +0 -0
  339. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_class_factory.py +0 -0
  340. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_csv_json_converter.py +0 -0
  341. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_deep_merge.py +0 -0
  342. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_extender_mixin.py +0 -0
  343. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_flask_appbuilder_utils.py +0 -0
  344. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_formatter.py +0 -0
  345. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_hooks.py +0 -0
  346. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_merge_schema.py +0 -0
  347. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_multiple_async_contexts.py +0 -0
  348. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_pydantic.py +0 -0
  349. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_run_utils.py +0 -0
  350. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_self_dependencies.py +0 -0
  351. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_smartdefaultdict.py +0 -0
  352. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_sqla.py +0 -0
  353. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_timezone.py +0 -0
  354. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_update_signature.py +0 -0
  355. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/tests/unit/utils/test_use_default_when_none.py +0 -0
  356. {fastapi_rtk-2.15.0 → fastapi_rtk-2.17.0}/uv.lock +0 -0
@@ -294,4 +294,10 @@ dist
294
294
  .pnp.*
295
295
 
296
296
  .vscode
297
- py/fastapi_rtk/_version.py
297
+ py/fastapi_rtk/_version.py
298
+
299
+ # What `fastapi-rtk agent install` writes when it is run against the example app.
300
+ # The guide's source of truth is py/fastapi_rtk/agent_docs/guide/.
301
+ py/example/docs/agents/
302
+ py/example/AGENTS.md
303
+ py/example/.claude/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: fastapi-rtk
3
- Version: 2.15.0
3
+ Version: 2.17.0
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
@@ -69,6 +69,21 @@ FastAPI React Toolkit bootstraps a web API with [FastAPI](https://github.com/tia
69
69
 
70
70
  You can use `fastapi-rtk create-app` command to quickly set up a new project with the recommended structure and example code.
71
71
 
72
+ ### AI coding agents
73
+
74
+ If you work with an AI coding agent, run this inside your project to teach it the framework:
75
+
76
+ ```bash
77
+ fastapi-rtk agent install
78
+ ```
79
+
80
+ It installs the guide at `docs/agents/fastapi-rtk/`, then one entry point per agent:
81
+
82
+ - `.claude/skills/rtk-developer/SKILL.md` for Claude Code, when the project has a `.claude` directory or a `CLAUDE.md`, or `claude` is on your PATH. `--claude` writes it regardless, `--no-claude` skips it.
83
+ - A section in `AGENTS.md`, read by Codex, Cursor and others following that convention, when no other entry point was written. `--agents-md` writes it regardless, `--no-agents-md` skips it.
84
+
85
+ The guide ships inside the installed package, so re-run with `--force` after an upgrade. `fastapi-rtk agent uninstall` removes it all again, keeping your own text in `AGENTS.md` and any file you added under the guide directory. Every file that gets overwritten or removed is copied to `<name>.<YYYYmmdd-HHMMSS>.bak` first.
86
+
72
87
  ### Recommended Project Structure
73
88
 
74
89
  ```
@@ -20,6 +20,21 @@ FastAPI React Toolkit bootstraps a web API with [FastAPI](https://github.com/tia
20
20
 
21
21
  You can use `fastapi-rtk create-app` command to quickly set up a new project with the recommended structure and example code.
22
22
 
23
+ ### AI coding agents
24
+
25
+ If you work with an AI coding agent, run this inside your project to teach it the framework:
26
+
27
+ ```bash
28
+ fastapi-rtk agent install
29
+ ```
30
+
31
+ It installs the guide at `docs/agents/fastapi-rtk/`, then one entry point per agent:
32
+
33
+ - `.claude/skills/rtk-developer/SKILL.md` for Claude Code, when the project has a `.claude` directory or a `CLAUDE.md`, or `claude` is on your PATH. `--claude` writes it regardless, `--no-claude` skips it.
34
+ - A section in `AGENTS.md`, read by Codex, Cursor and others following that convention, when no other entry point was written. `--agents-md` writes it regardless, `--no-agents-md` skips it.
35
+
36
+ The guide ships inside the installed package, so re-run with `--force` after an upgrade. `fastapi-rtk agent uninstall` removes it all again, keeping your own text in `AGENTS.md` and any file you added under the guide directory. Every file that gets overwritten or removed is copied to `<name>.<YYYYmmdd-HHMMSS>.bak` first.
37
+
23
38
  ### Recommended Project Structure
24
39
 
25
40
  ```
@@ -37,6 +37,19 @@ __all__ = [
37
37
  # .api
38
38
  "BaseApi",
39
39
  "ModelRestApi",
40
+ "Params",
41
+ "P_ID",
42
+ "P_IDS",
43
+ "P_Q",
44
+ "P_SESSION",
45
+ "P_BODY",
46
+ "P_ITEM",
47
+ "P_ITEMS",
48
+ "PARAM_Q",
49
+ "PARAM_IDS_Q_SESSION_ITEMS",
50
+ "PARAM_ID_SESSION",
51
+ "PARAM_ID_SESSION_ITEM",
52
+ "PARAM_BODY_SESSION",
40
53
  # .auth
41
54
  "FABPasswordHelper",
42
55
  "Authenticator",
@@ -185,6 +198,7 @@ __all__ = [
185
198
  "ignore_g_user",
186
199
  "relationship_filter",
187
200
  "docs",
201
+ "priority",
188
202
  # .dependencies
189
203
  "set_global_user",
190
204
  "current_permissions",
@@ -193,6 +207,10 @@ __all__ = [
193
207
  "raise_exception",
194
208
  "FastAPIReactToolkitException",
195
209
  "RolesMismatchException",
210
+ "RoleNotFoundException",
211
+ "RoleAlreadyExistsException",
212
+ "RoleInUseException",
213
+ "ColumnNotSupportedException",
196
214
  "HTTPWithValidationException",
197
215
  # .fastapi_react_toolkit
198
216
  "FastAPIReactToolkit",
@@ -0,0 +1 @@
1
+ __version__ = "2.17.0"
@@ -0,0 +1,38 @@
1
+ ## fastapi-rtk
2
+
3
+ This project uses [fastapi-rtk](https://codeberg.org/datatactics/fastapi-rtk), a full-stack toolkit
4
+ whose Python backend generates CRUD endpoints from SQLAlchemy models and whose React frontend
5
+ consumes them through `ApiProvider`. Treat the two halves as one system, not two independent stacks.
6
+
7
+ Detailed guidance ships with the package and was installed into this project:
8
+
9
+ - `docs/agents/fastapi-rtk/overview.md`: start here. Maps each feature to its backend and frontend
10
+ halves, and says which of the files below to open.
11
+ - `docs/agents/fastapi-rtk/backend.md`: models, `ModelRestApi`, hooks, filters, permissions,
12
+ migrations, file uploads, bulk handlers, OAuth.
13
+ - `docs/agents/fastapi-rtk/frontend.md`: `Provider`, `ApiProvider`, `useApi`, `NextGenDataGrid`,
14
+ `useForms`, dialogs, JsonForms, i18n.
15
+ - `docs/agents/fastapi-rtk/legacy.md`: workarounds for older releases, keyed by symptom. Open it only
16
+ when this project pins an older fastapi-rtk than the guide was verified against.
17
+
18
+ Read the file that covers the half you are touching before writing fastapi-rtk code.
19
+
20
+ ### Rules that always apply
21
+
22
+ 1. `resource_name` is the contract. Backend `resource_name = "items"` and frontend
23
+ `<ApiProvider resource_name="items">` must match exactly; a typo breaks it silently.
24
+ 2. Extend the generated endpoints through `pre_*` / `post_*` hooks rather than hand-rolled routes,
25
+ and render resource tables with `NextGenDataGrid` configured through `columnProps` rather than a
26
+ raw table. Reserve `@expose` for endpoints that are not CRUD on a model.
27
+ 3. Async-first: use async drivers (`sqlite+aiosqlite`, `postgresql+asyncpg`), write hooks as
28
+ `async def`, and bridge sync code with `smart_run`.
29
+ 4. Filter relationship options on the backend with `@relationship_filter` or
30
+ `add_query_rel_fields` / `edit_query_rel_fields`, never in JS.
31
+ 5. Frontend provider order is MantineProvider, then the fastapi-rtk `Provider`, then the app. CSS
32
+ imports go Mantine first, fastapi-rtk last.
33
+
34
+ Refresh this section and the guide after upgrading fastapi-rtk:
35
+
36
+ ```bash
37
+ fastapi-rtk agent install --force
38
+ ```
@@ -0,0 +1,2 @@
1
+ name: rtk-developer
2
+ description: Full-stack development with the FastAPI React Toolkit (fastapi-rtk), a tightly coupled Python (FastAPI + SQLAlchemy + Pydantic + Alembic) backend and React (Mantine-based) frontend framework that generates CRUD endpoints from models and consumes them automatically through an ApiProvider. Use this skill whenever the user is building, modifying, or debugging anything in a fastapi-rtk project: Python models, ModelRestApi / BaseApi endpoints, pre/post hooks, permissions, migrations, file uploads, bulk operations, or the React side (Provider setup, ApiProvider, useApi, NextGenDataGrid, useForms, dialogs, JsonForms). Also use it when the user mentions fastapi-rtk, rtk, "rtk backend", "rtk frontend", or describes a problem that touches both sides at once (e.g. adding a model and surfacing it in a grid). Prefer this skill over plain FastAPI or React skills whenever the project imports from `fastapi_rtk` or `fastapi-rtk` (JS package).