tempest-fastapi-sdk 0.167.0__tar.gz → 0.167.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 (772) hide show
  1. tempest_fastapi_sdk-0.167.2/.github/ISSUE_TEMPLATE/bug_report.yml +63 -0
  2. tempest_fastapi_sdk-0.167.2/.github/ISSUE_TEMPLATE/config.yml +8 -0
  3. tempest_fastapi_sdk-0.167.2/.github/ISSUE_TEMPLATE/docs.yml +39 -0
  4. tempest_fastapi_sdk-0.167.2/.github/ISSUE_TEMPLATE/feature_request.yml +59 -0
  5. tempest_fastapi_sdk-0.167.2/.github/ISSUE_TEMPLATE/question.yml +36 -0
  6. tempest_fastapi_sdk-0.167.2/.github/PULL_REQUEST_TEMPLATE.md +50 -0
  7. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/CHANGELOG.md +78 -0
  8. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/PKG-INFO +1 -1
  9. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/architecture.en.md +25 -0
  10. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/architecture.md +25 -0
  11. tempest_fastapi_sdk-0.167.2/docs/contributing.en.md +121 -0
  12. tempest_fastapi_sdk-0.167.2/docs/contributing.md +121 -0
  13. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/index.en.md +41 -2
  14. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/index.md +41 -2
  15. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/integrated.en.md +2 -2
  16. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/integrated.md +2 -2
  17. tempest_fastapi_sdk-0.167.2/docs/recipes/index.en.md +357 -0
  18. tempest_fastapi_sdk-0.167.2/docs/recipes/index.md +356 -0
  19. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/mkdocs.yml +8 -9
  20. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/pyproject.toml +1 -1
  21. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/__init__.py +1 -1
  22. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/controllers/base.py +7 -1
  23. tempest_fastapi_sdk-0.167.2/tests/controllers/test_generic_bounds.py +121 -0
  24. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/uv.lock +1 -1
  25. tempest_fastapi_sdk-0.167.0/docs/contributing.en.md +0 -82
  26. tempest_fastapi_sdk-0.167.0/docs/contributing.md +0 -82
  27. tempest_fastapi_sdk-0.167.0/docs/recipes/index.en.md +0 -62
  28. tempest_fastapi_sdk-0.167.0/docs/recipes/index.md +0 -62
  29. tempest_fastapi_sdk-0.167.0/docs/tour.en.md +0 -274
  30. tempest_fastapi_sdk-0.167.0/docs/tour.md +0 -273
  31. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/.github/workflows/ci.yml +0 -0
  32. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/.github/workflows/docs.yml +0 -0
  33. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/.github/workflows/nightly-model.yml +0 -0
  34. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/.github/workflows/release-pypi.yml +0 -0
  35. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/.gitignore +0 -0
  36. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/.python-version +0 -0
  37. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/CLAUDE.md +0 -0
  38. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/Makefile +0 -0
  39. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/README.md +0 -0
  40. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/admin-showcase.en.md +0 -0
  41. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/admin-showcase.md +0 -0
  42. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/changelog.en.md +0 -0
  43. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/changelog.md +0 -0
  44. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/fullstack-web.en.md +0 -0
  45. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/fullstack-web.md +0 -0
  46. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/genai-examples.en.md +0 -0
  47. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/genai-examples.md +0 -0
  48. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/installation.en.md +0 -0
  49. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/installation.md +0 -0
  50. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/learning/index.en.md +0 -0
  51. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/learning/index.md +0 -0
  52. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/learning/marketplace/api.en.md +0 -0
  53. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/learning/marketplace/api.md +0 -0
  54. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/learning/marketplace/business-rules.en.md +0 -0
  55. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/learning/marketplace/business-rules.md +0 -0
  56. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/learning/marketplace/domain.en.md +0 -0
  57. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/learning/marketplace/domain.md +0 -0
  58. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/learning/marketplace/flows.en.md +0 -0
  59. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/learning/marketplace/flows.md +0 -0
  60. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/learning/marketplace/index.en.md +0 -0
  61. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/learning/marketplace/index.md +0 -0
  62. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/marketplace-local.en.md +0 -0
  63. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/marketplace-local.md +0 -0
  64. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/migration.en.md +0 -0
  65. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/migration.md +0 -0
  66. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/admin.en.md +0 -0
  67. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/admin.md +0 -0
  68. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/artifact-registry.en.md +0 -0
  69. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/artifact-registry.md +0 -0
  70. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/audit-trail.en.md +0 -0
  71. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/audit-trail.md +0 -0
  72. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/auth-flow.en.md +0 -0
  73. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/auth-flow.md +0 -0
  74. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/authz.en.md +0 -0
  75. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/authz.md +0 -0
  76. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/br-helpers.en.md +0 -0
  77. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/br-helpers.md +0 -0
  78. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/cache.en.md +0 -0
  79. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/cache.md +0 -0
  80. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/chat.en.md +0 -0
  81. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/chat.md +0 -0
  82. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/cli.en.md +0 -0
  83. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/cli.md +0 -0
  84. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/database.en.md +0 -0
  85. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/database.md +0 -0
  86. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/deploy-safety.en.md +0 -0
  87. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/deploy-safety.md +0 -0
  88. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/downloads.en.md +0 -0
  89. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/downloads.md +0 -0
  90. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/email.en.md +0 -0
  91. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/email.md +0 -0
  92. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/feature-flags.en.md +0 -0
  93. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/feature-flags.md +0 -0
  94. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/fields.en.md +0 -0
  95. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/fields.md +0 -0
  96. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/file-store.en.md +0 -0
  97. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/file-store.md +0 -0
  98. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/genai.en.md +0 -0
  99. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/genai.md +0 -0
  100. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/geo.en.md +0 -0
  101. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/geo.md +0 -0
  102. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/http-client.en.md +0 -0
  103. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/http-client.md +0 -0
  104. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/http.en.md +0 -0
  105. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/http.md +0 -0
  106. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/idempotency.en.md +0 -0
  107. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/idempotency.md +0 -0
  108. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/introspection-auth.en.md +0 -0
  109. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/introspection-auth.md +0 -0
  110. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/logging.en.md +0 -0
  111. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/logging.md +0 -0
  112. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/management-commands.en.md +0 -0
  113. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/management-commands.md +0 -0
  114. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/metrics.en.md +0 -0
  115. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/metrics.md +0 -0
  116. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/mfa.en.md +0 -0
  117. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/mfa.md +0 -0
  118. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/multi-tenant.en.md +0 -0
  119. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/multi-tenant.md +0 -0
  120. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/observability.en.md +0 -0
  121. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/observability.md +0 -0
  122. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/offline-sync.en.md +0 -0
  123. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/offline-sync.md +0 -0
  124. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/openapi-client.en.md +0 -0
  125. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/openapi-client.md +0 -0
  126. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/openapi-errors.en.md +0 -0
  127. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/openapi-errors.md +0 -0
  128. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/outbox.en.md +0 -0
  129. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/outbox.md +0 -0
  130. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/permission-guards.en.md +0 -0
  131. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/permission-guards.md +0 -0
  132. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/queue-tasks.en.md +0 -0
  133. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/queue-tasks.md +0 -0
  134. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/react-spa.en.md +0 -0
  135. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/react-spa.md +0 -0
  136. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/realtime.en.md +0 -0
  137. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/realtime.md +0 -0
  138. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/refresh-tokens.en.md +0 -0
  139. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/refresh-tokens.md +0 -0
  140. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/reviews.en.md +0 -0
  141. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/reviews.md +0 -0
  142. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/security.en.md +0 -0
  143. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/security.md +0 -0
  144. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/sessions.en.md +0 -0
  145. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/sessions.md +0 -0
  146. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/sse.en.md +0 -0
  147. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/sse.md +0 -0
  148. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/storage.en.md +0 -0
  149. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/storage.md +0 -0
  150. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/stored-files.en.md +0 -0
  151. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/stored-files.md +0 -0
  152. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/system-checks.en.md +0 -0
  153. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/system-checks.md +0 -0
  154. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/tempestweb-frontend.en.md +0 -0
  155. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/tempestweb-frontend.md +0 -0
  156. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/testing.en.md +0 -0
  157. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/testing.md +0 -0
  158. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/typing.en.md +0 -0
  159. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/typing.md +0 -0
  160. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/uploads.en.md +0 -0
  161. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/uploads.md +0 -0
  162. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/utilities.en.md +0 -0
  163. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/utilities.md +0 -0
  164. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/vision.en.md +0 -0
  165. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/vision.md +0 -0
  166. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/webpush.en.md +0 -0
  167. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/webpush.md +0 -0
  168. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/websocket.en.md +0 -0
  169. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/recipes/websocket.md +0 -0
  170. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/reference.en.md +0 -0
  171. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/reference.md +0 -0
  172. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/roadmap.en.md +0 -0
  173. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/roadmap.md +0 -0
  174. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/ssr.en.md +0 -0
  175. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/ssr.md +0 -0
  176. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/tutorial.en.md +0 -0
  177. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/docs/tutorial.md +0 -0
  178. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/mkdocs_hooks/llmstxt.py +0 -0
  179. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/planning/genai/README.md +0 -0
  180. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/planning/genai/manual-validation.md +0 -0
  181. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/planning/genai/phase-0.md +0 -0
  182. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/planning/genai/phase-1.md +0 -0
  183. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/planning/genai/phase-2.md +0 -0
  184. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/planning/genai/phase-3.md +0 -0
  185. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/planning/genai/validation-strategy.md +0 -0
  186. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/scripts/extract_recipe.py +0 -0
  187. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/admin/__init__.py +0 -0
  188. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/admin/actions.py +0 -0
  189. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/admin/auth.py +0 -0
  190. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/admin/config.py +0 -0
  191. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/admin/dashboard.py +0 -0
  192. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/admin/discovery.py +0 -0
  193. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/admin/forms.py +0 -0
  194. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/admin/permissions.py +0 -0
  195. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/admin/router.py +0 -0
  196. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/admin/session.py +0 -0
  197. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/admin/site.py +0 -0
  198. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/admin/static/admin.css +0 -0
  199. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/admin/templates/autocomplete.html +0 -0
  200. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/admin/templates/base.html +0 -0
  201. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/admin/templates/dashboard.html +0 -0
  202. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/admin/templates/detail.html +0 -0
  203. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/admin/templates/form.html +0 -0
  204. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/admin/templates/import.html +0 -0
  205. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/admin/templates/list.html +0 -0
  206. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/admin/templates/login.html +0 -0
  207. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/admin/templates/logs.html +0 -0
  208. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/admin/templates/mfa.html +0 -0
  209. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/admin/theme.py +0 -0
  210. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/api/__init__.py +0 -0
  211. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/api/cookies.py +0 -0
  212. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/api/dependencies/__init__.py +0 -0
  213. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/api/dependencies/auth.py +0 -0
  214. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/api/error_docs.py +0 -0
  215. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/api/handlers.py +0 -0
  216. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/api/middlewares/__init__.py +0 -0
  217. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/api/middlewares/body_size.py +0 -0
  218. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/api/middlewares/cors.py +0 -0
  219. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/api/middlewares/csrf.py +0 -0
  220. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/api/middlewares/graceful.py +0 -0
  221. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/api/middlewares/idempotency.py +0 -0
  222. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/api/middlewares/rate_limit.py +0 -0
  223. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/api/middlewares/request_id.py +0 -0
  224. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/api/middlewares/response_cache.py +0 -0
  225. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/api/oauth.py +0 -0
  226. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/api/routers/__init__.py +0 -0
  227. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/api/routers/health.py +0 -0
  228. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/api/routers/logs.py +0 -0
  229. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/api/routers/metrics.py +0 -0
  230. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/api/routers/tool_spec.py +0 -0
  231. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/api/server.py +0 -0
  232. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/api/spa.py +0 -0
  233. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/api/static.py +0 -0
  234. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/api/tracing.py +0 -0
  235. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/api/webhooks.py +0 -0
  236. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/artifacts/__init__.py +0 -0
  237. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/artifacts/actions.py +0 -0
  238. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/artifacts/digest.py +0 -0
  239. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/artifacts/model.py +0 -0
  240. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/artifacts/registry.py +0 -0
  241. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/auth/__init__.py +0 -0
  242. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/auth/guards.py +0 -0
  243. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/auth/introspection.py +0 -0
  244. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/auth/locale.py +0 -0
  245. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/auth/page_renderer.py +0 -0
  246. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/auth/router.py +0 -0
  247. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/auth/schemas.py +0 -0
  248. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/auth/service.py +0 -0
  249. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/auth/templates/en-US/activation.html +0 -0
  250. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/auth/templates/en-US/activation_error.html +0 -0
  251. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/auth/templates/en-US/activation_success.html +0 -0
  252. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/auth/templates/en-US/email_change.html +0 -0
  253. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/auth/templates/en-US/email_change_error.html +0 -0
  254. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/auth/templates/en-US/email_change_success.html +0 -0
  255. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/auth/templates/en-US/email_changed_notice.html +0 -0
  256. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/auth/templates/en-US/email_verification.html +0 -0
  257. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/auth/templates/en-US/email_verification_error.html +0 -0
  258. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/auth/templates/en-US/email_verification_success.html +0 -0
  259. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/auth/templates/en-US/password_reset.html +0 -0
  260. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/auth/templates/en-US/password_reset_error.html +0 -0
  261. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/auth/templates/en-US/password_reset_form.html +0 -0
  262. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/auth/templates/en-US/password_reset_success.html +0 -0
  263. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/auth/templates/pt-BR/activation.html +0 -0
  264. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/auth/templates/pt-BR/activation_error.html +0 -0
  265. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/auth/templates/pt-BR/activation_success.html +0 -0
  266. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/auth/templates/pt-BR/email_change.html +0 -0
  267. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/auth/templates/pt-BR/email_change_error.html +0 -0
  268. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/auth/templates/pt-BR/email_change_success.html +0 -0
  269. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/auth/templates/pt-BR/email_changed_notice.html +0 -0
  270. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/auth/templates/pt-BR/email_verification.html +0 -0
  271. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/auth/templates/pt-BR/email_verification_error.html +0 -0
  272. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/auth/templates/pt-BR/email_verification_success.html +0 -0
  273. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/auth/templates/pt-BR/password_reset.html +0 -0
  274. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/auth/templates/pt-BR/password_reset_error.html +0 -0
  275. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/auth/templates/pt-BR/password_reset_form.html +0 -0
  276. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/auth/templates/pt-BR/password_reset_success.html +0 -0
  277. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/auth/token_delivery.py +0 -0
  278. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/authz/__init__.py +0 -0
  279. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/authz/dependencies.py +0 -0
  280. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/authz/permissions.py +0 -0
  281. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/authz/requires.py +0 -0
  282. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cache/__init__.py +0 -0
  283. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cache/decorator.py +0 -0
  284. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cache/invalidation.py +0 -0
  285. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cache/redis_manager.py +0 -0
  286. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/chat/__init__.py +0 -0
  287. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/chat/models.py +0 -0
  288. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/chat/router.py +0 -0
  289. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/chat/schemas.py +0 -0
  290. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/chat/service.py +0 -0
  291. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/checks/__init__.py +0 -0
  292. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/checks/builtins.py +0 -0
  293. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/checks/messages.py +0 -0
  294. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/checks/registry.py +0 -0
  295. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/__init__.py +0 -0
  296. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/_templates/Dockerfile.tmpl +0 -0
  297. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/_templates/README.md.tmpl +0 -0
  298. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/_templates/dockerignore.tmpl +0 -0
  299. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/_templates/env.example.tmpl +0 -0
  300. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/_templates/gitignore.tmpl +0 -0
  301. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/_templates/main.py.tmpl +0 -0
  302. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/_templates/pyproject.toml.tmpl +0 -0
  303. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/_templates/src/__init__.py.tmpl +0 -0
  304. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/_templates/src/api/__init__.py.tmpl +0 -0
  305. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/_templates/src/api/app.py.tmpl +0 -0
  306. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/_templates/src/api/dependencies/__init__.py.tmpl +0 -0
  307. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/_templates/src/api/dependencies/auth.py.tmpl +0 -0
  308. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/_templates/src/api/dependencies/resources.py.tmpl +0 -0
  309. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/_templates/src/api/routers/__init__.py.tmpl +0 -0
  310. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/_templates/src/controllers/__init__.py.tmpl +0 -0
  311. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/_templates/src/core/__init__.py.tmpl +0 -0
  312. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/_templates/src/core/exceptions.py.tmpl +0 -0
  313. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/_templates/src/core/settings.py.tmpl +0 -0
  314. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/_templates/src/db/__init__.py.tmpl +0 -0
  315. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/_templates/src/db/models/__init__.py.tmpl +0 -0
  316. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/_templates/src/db/models/user.py.tmpl +0 -0
  317. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/_templates/src/db/repositories/__init__.py.tmpl +0 -0
  318. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/_templates/src/schemas/__init__.py.tmpl +0 -0
  319. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/_templates/src/server.py.tmpl +0 -0
  320. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/_templates/src/services/__init__.py.tmpl +0 -0
  321. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/_templates/src/utils/__init__.py.tmpl +0 -0
  322. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/_templates/tests/__init__.py.tmpl +0 -0
  323. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/_templates/tests/test_smoke.py.tmpl +0 -0
  324. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/commands.py +0 -0
  325. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/config.py +0 -0
  326. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/db.py +0 -0
  327. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/docker_compose.py +0 -0
  328. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/generate.py +0 -0
  329. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/lint.py +0 -0
  330. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/main.py +0 -0
  331. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/new.py +0 -0
  332. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/openapi_errors.py +0 -0
  333. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/openapi_fix.py +0 -0
  334. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/permissions.py +0 -0
  335. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/secrets.py +0 -0
  336. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/src_layers.py +0 -0
  337. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/cli/user.py +0 -0
  338. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/controllers/__init__.py +0 -0
  339. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/core/__init__.py +0 -0
  340. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/core/context.py +0 -0
  341. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/core/enums.py +0 -0
  342. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/core/logging.py +0 -0
  343. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/core/typed.py +0 -0
  344. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/db/__init__.py +0 -0
  345. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/db/_alembic_templates/__init__.py +0 -0
  346. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/db/_alembic_templates/env.py.template +0 -0
  347. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/db/alembic_hooks.py +0 -0
  348. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/db/audit.py +0 -0
  349. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/db/backup.py +0 -0
  350. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/db/connection.py +0 -0
  351. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/db/expressions.py +0 -0
  352. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/db/migrations.py +0 -0
  353. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/db/mixins.py +0 -0
  354. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/db/model.py +0 -0
  355. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/db/outbox.py +0 -0
  356. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/db/repository.py +0 -0
  357. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/db/signals.py +0 -0
  358. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/db/slow_query.py +0 -0
  359. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/db/tenant.py +0 -0
  360. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/db/user_model.py +0 -0
  361. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/db/user_recovery_code_model.py +0 -0
  362. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/db/user_refresh_token_model.py +0 -0
  363. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/db/user_token_model.py +0 -0
  364. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/db/webpush_subscription_model.py +0 -0
  365. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/exceptions/__init__.py +0 -0
  366. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/exceptions/base.py +0 -0
  367. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/exceptions/conflict.py +0 -0
  368. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/exceptions/forbidden.py +0 -0
  369. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/exceptions/i18n.py +0 -0
  370. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/exceptions/jwt.py +0 -0
  371. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/exceptions/not_found.py +0 -0
  372. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/exceptions/too_many_requests.py +0 -0
  373. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/exceptions/unauthorized.py +0 -0
  374. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/exceptions/upload.py +0 -0
  375. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/exceptions/validation.py +0 -0
  376. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/flags/__init__.py +0 -0
  377. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/flags/backends.py +0 -0
  378. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/flags/dependencies.py +0 -0
  379. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/flags/service.py +0 -0
  380. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/genai/__init__.py +0 -0
  381. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/genai/audio/__init__.py +0 -0
  382. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/genai/audio/language.py +0 -0
  383. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/genai/audio/schemas.py +0 -0
  384. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/genai/audio/stt.py +0 -0
  385. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/genai/audio/tts.py +0 -0
  386. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/genai/batching.py +0 -0
  387. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/genai/embeddings.py +0 -0
  388. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/genai/generation_cache.py +0 -0
  389. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/genai/hardware.py +0 -0
  390. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/genai/metrics.py +0 -0
  391. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/genai/moderation.py +0 -0
  392. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/genai/ollama.py +0 -0
  393. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/genai/onnx_embed.py +0 -0
  394. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/genai/pipeline.py +0 -0
  395. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/genai/rag/__init__.py +0 -0
  396. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/genai/rag/chroma.py +0 -0
  397. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/genai/rag/chunking.py +0 -0
  398. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/genai/rag/context.py +0 -0
  399. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/genai/rag/extract.py +0 -0
  400. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/genai/rag/fusion.py +0 -0
  401. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/genai/rag/hybrid.py +0 -0
  402. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/genai/rag/pdf.py +0 -0
  403. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/genai/rag/rerank.py +0 -0
  404. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/genai/rag/retriever.py +0 -0
  405. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/genai/rag/schemas.py +0 -0
  406. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/genai/rag/search.py +0 -0
  407. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/genai/rag/vectorstore.py +0 -0
  408. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/genai/registry.py +0 -0
  409. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/genai/router.py +0 -0
  410. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/genai/schemas.py +0 -0
  411. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/genai/structured.py +0 -0
  412. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/genai/text.py +0 -0
  413. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/genai/tokens.py +0 -0
  414. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/genai/tracing.py +0 -0
  415. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/genai/vision_text.py +0 -0
  416. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/geo/__init__.py +0 -0
  417. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/geo/br.py +0 -0
  418. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/geo/db.py +0 -0
  419. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/geo/distance.py +0 -0
  420. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/geo/enums.py +0 -0
  421. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/geo/estimate.py +0 -0
  422. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/geo/geocoding.py +0 -0
  423. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/geo/geometry.py +0 -0
  424. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/geo/polyline.py +0 -0
  425. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/geo/routing.py +0 -0
  426. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/geo/schemas.py +0 -0
  427. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/openapi/__init__.py +0 -0
  428. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/openapi/emit_client.py +0 -0
  429. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/openapi/emit_schemas.py +0 -0
  430. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/openapi/generate.py +0 -0
  431. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/openapi/ir.py +0 -0
  432. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/openapi/loader.py +0 -0
  433. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/openapi/naming.py +0 -0
  434. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/openapi/parse.py +0 -0
  435. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/py.typed +0 -0
  436. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/queue/__init__.py +0 -0
  437. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/queue/broker.py +0 -0
  438. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/queue/consumer.py +0 -0
  439. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/queue/manager.py +0 -0
  440. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/reviews/__init__.py +0 -0
  441. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/reviews/models.py +0 -0
  442. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/reviews/router.py +0 -0
  443. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/reviews/schemas.py +0 -0
  444. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/reviews/service.py +0 -0
  445. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/schemas/__init__.py +0 -0
  446. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/schemas/base.py +0 -0
  447. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/schemas/errors.py +0 -0
  448. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/schemas/link_headers.py +0 -0
  449. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/schemas/logs.py +0 -0
  450. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/schemas/pagination.py +0 -0
  451. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/schemas/response.py +0 -0
  452. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/services/__init__.py +0 -0
  453. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/services/base.py +0 -0
  454. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/services/file_mixin.py +0 -0
  455. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/sessions/__init__.py +0 -0
  456. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/sessions/dependencies.py +0 -0
  457. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/sessions/middleware.py +0 -0
  458. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/sessions/router.py +0 -0
  459. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/sessions/schemas.py +0 -0
  460. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/sessions/service.py +0 -0
  461. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/sessions/store.py +0 -0
  462. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/settings/__init__.py +0 -0
  463. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/settings/base.py +0 -0
  464. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/settings/mixins.py +0 -0
  465. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/sse/__init__.py +0 -0
  466. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/sse/broker.py +0 -0
  467. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/sse/event_stream.py +0 -0
  468. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/ssr/__init__.py +0 -0
  469. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/ssr/_static/htmx.min.js +0 -0
  470. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/ssr/assets.py +0 -0
  471. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/ssr/attributes.py +0 -0
  472. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/ssr/page.py +0 -0
  473. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/ssr/response.py +0 -0
  474. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/ssr/webapp.py +0 -0
  475. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/storage/__init__.py +0 -0
  476. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/storage/minio_client.py +0 -0
  477. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/tasks/__init__.py +0 -0
  478. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/tasks/cron.py +0 -0
  479. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/tasks/dead_letter.py +0 -0
  480. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/tasks/manager.py +0 -0
  481. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/tasks/observability.py +0 -0
  482. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/tasks/oop.py +0 -0
  483. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/tasks/queue.py +0 -0
  484. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/tasks/scheduler.py +0 -0
  485. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/testing/__init__.py +0 -0
  486. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/testing/database.py +0 -0
  487. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/testing/factories.py +0 -0
  488. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/utils/__init__.py +0 -0
  489. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/utils/client_ip.py +0 -0
  490. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/utils/data/br_locations.json +0 -0
  491. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/utils/datetime.py +0 -0
  492. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/utils/dict.py +0 -0
  493. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/utils/download.py +0 -0
  494. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/utils/email.py +0 -0
  495. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/utils/fields.py +0 -0
  496. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/utils/file_store.py +0 -0
  497. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/utils/http_client.py +0 -0
  498. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/utils/jwt.py +0 -0
  499. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/utils/locations.py +0 -0
  500. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/utils/log.py +0 -0
  501. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/utils/metrics.py +0 -0
  502. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/utils/opaque_token.py +0 -0
  503. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/utils/password.py +0 -0
  504. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/utils/regex.py +0 -0
  505. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/utils/storage_backends.py +0 -0
  506. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/utils/throttle.py +0 -0
  507. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/utils/totp.py +0 -0
  508. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/utils/upload.py +0 -0
  509. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/vision/__init__.py +0 -0
  510. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/vision/mapping.py +0 -0
  511. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/vision/router.py +0 -0
  512. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/vision/schemas.py +0 -0
  513. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/webpush/__init__.py +0 -0
  514. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/webpush/dispatcher.py +0 -0
  515. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/webpush/router.py +0 -0
  516. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/webpush/schemas.py +0 -0
  517. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/webpush/service.py +0 -0
  518. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/websockets/__init__.py +0 -0
  519. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/websockets/hub.py +0 -0
  520. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/websockets/router.py +0 -0
  521. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tempest_fastapi_sdk/websockets/schemas.py +0 -0
  522. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/__init__.py +0 -0
  523. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/admin/__init__.py +0 -0
  524. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/admin/test_actions.py +0 -0
  525. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/admin/test_audit_viewer.py +0 -0
  526. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/admin/test_auth.py +0 -0
  527. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/admin/test_autocomplete_fk.py +0 -0
  528. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/admin/test_csv_import.py +0 -0
  529. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/admin/test_dashboard_cards.py +0 -0
  530. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/admin/test_discovery.py +0 -0
  531. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/admin/test_forms.py +0 -0
  532. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/admin/test_inlines.py +0 -0
  533. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/admin/test_lenses.py +0 -0
  534. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/admin/test_logs_nav.py +0 -0
  535. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/admin/test_mfa.py +0 -0
  536. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/admin/test_rbac.py +0 -0
  537. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/admin/test_rich_filters.py +0 -0
  538. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/admin/test_router.py +0 -0
  539. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/admin/test_site.py +0 -0
  540. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/admin/test_theme.py +0 -0
  541. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/admin/test_upload_field.py +0 -0
  542. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/admin/test_user_model.py +0 -0
  543. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/admin/test_widgets_json_time.py +0 -0
  544. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/api/__init__.py +0 -0
  545. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/api/test_body_size.py +0 -0
  546. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/api/test_business_metrics.py +0 -0
  547. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/api/test_cookies.py +0 -0
  548. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/api/test_cors.py +0 -0
  549. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/api/test_csrf.py +0 -0
  550. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/api/test_dependencies_auth.py +0 -0
  551. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/api/test_error_docs.py +0 -0
  552. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/api/test_graceful.py +0 -0
  553. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/api/test_handlers.py +0 -0
  554. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/api/test_health_router.py +0 -0
  555. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/api/test_idempotency.py +0 -0
  556. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/api/test_jwt_dependency.py +0 -0
  557. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/api/test_logs_router.py +0 -0
  558. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/api/test_oauth.py +0 -0
  559. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/api/test_outbound_webhooks.py +0 -0
  560. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/api/test_prometheus.py +0 -0
  561. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/api/test_rate_limit.py +0 -0
  562. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/api/test_rate_limit_extras.py +0 -0
  563. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/api/test_request_id_middleware.py +0 -0
  564. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/api/test_response_cache.py +0 -0
  565. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/api/test_role_dependency.py +0 -0
  566. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/api/test_server.py +0 -0
  567. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/api/test_spa.py +0 -0
  568. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/api/test_static.py +0 -0
  569. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/api/test_tool_spec.py +0 -0
  570. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/api/test_tracing.py +0 -0
  571. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/api/test_webhooks.py +0 -0
  572. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/api/test_webhooks_rsa.py +0 -0
  573. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/artifacts/__init__.py +0 -0
  574. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/artifacts/support.py +0 -0
  575. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/artifacts/test_actions.py +0 -0
  576. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/artifacts/test_digest.py +0 -0
  577. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/artifacts/test_registry.py +0 -0
  578. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/auth/__init__.py +0 -0
  579. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/auth/test_cookie_delivery.py +0 -0
  580. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/auth/test_email_change.py +0 -0
  581. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/auth/test_guards.py +0 -0
  582. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/auth/test_introspection.py +0 -0
  583. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/auth/test_locale.py +0 -0
  584. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/auth/test_mfa.py +0 -0
  585. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/auth/test_refresh.py +0 -0
  586. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/auth/test_refresh_db.py +0 -0
  587. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/auth/test_service.py +0 -0
  588. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/authz/__init__.py +0 -0
  589. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/authz/test_dependencies.py +0 -0
  590. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/authz/test_permissions.py +0 -0
  591. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/authz/test_requires.py +0 -0
  592. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/cache/__init__.py +0 -0
  593. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/cache/test_decorator.py +0 -0
  594. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/cache/test_invalidation.py +0 -0
  595. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/cache/test_redis_manager.py +0 -0
  596. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/chat/__init__.py +0 -0
  597. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/chat/test_chat.py +0 -0
  598. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/checks/__init__.py +0 -0
  599. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/checks/test_check_config_cli.py +0 -0
  600. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/checks/test_checks.py +0 -0
  601. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/cli/__init__.py +0 -0
  602. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/cli/test_config.py +0 -0
  603. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/cli/test_db.py +0 -0
  604. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/cli/test_db_seed.py +0 -0
  605. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/cli/test_docker_compose.py +0 -0
  606. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/cli/test_dockerfile_spa.py +0 -0
  607. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/cli/test_generate.py +0 -0
  608. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/cli/test_lint_strictness.py +0 -0
  609. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/cli/test_main.py +0 -0
  610. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/cli/test_management_commands.py +0 -0
  611. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/cli/test_openapi_errors.py +0 -0
  612. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/cli/test_openapi_fix.py +0 -0
  613. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/cli/test_permissions.py +0 -0
  614. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/cli/test_secrets.py +0 -0
  615. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/cli/test_user.py +0 -0
  616. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/conftest.py +0 -0
  617. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/controllers/__init__.py +0 -0
  618. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/controllers/test_base.py +0 -0
  619. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/core/__init__.py +0 -0
  620. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/core/test_context.py +0 -0
  621. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/core/test_enums.py +0 -0
  622. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/core/test_logging.py +0 -0
  623. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/core/test_typed.py +0 -0
  624. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/db/__init__.py +0 -0
  625. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/db/test_alembic_hooks.py +0 -0
  626. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/db/test_audit.py +0 -0
  627. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/db/test_backup.py +0 -0
  628. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/db/test_bulk_ops.py +0 -0
  629. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/db/test_connection.py +0 -0
  630. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/db/test_eager_load.py +0 -0
  631. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/db/test_expressions.py +0 -0
  632. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/db/test_migrations.py +0 -0
  633. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/db/test_mixins.py +0 -0
  634. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/db/test_model.py +0 -0
  635. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/db/test_outbox.py +0 -0
  636. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/db/test_repository.py +0 -0
  637. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/db/test_safe_upgrade.py +0 -0
  638. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/db/test_signals.py +0 -0
  639. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/db/test_slow_query.py +0 -0
  640. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/db/test_tenant.py +0 -0
  641. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/exceptions/__init__.py +0 -0
  642. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/exceptions/test_exceptions.py +0 -0
  643. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/exceptions/test_i18n.py +0 -0
  644. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/exceptions/test_inherited_code_warning.py +0 -0
  645. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/flags/__init__.py +0 -0
  646. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/flags/test_flags.py +0 -0
  647. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/genai/__init__.py +0 -0
  648. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/genai/_eval/__init__.py +0 -0
  649. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/genai/_eval/corpus.py +0 -0
  650. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/genai/audio/__init__.py +0 -0
  651. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/genai/audio/test_audio.py +0 -0
  652. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/genai/audio/test_language.py +0 -0
  653. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/genai/conftest.py +0 -0
  654. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/genai/test_batching.py +0 -0
  655. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/genai/test_chat_memory.py +0 -0
  656. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/genai/test_embedding_cache_redis.py +0 -0
  657. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/genai/test_embeddings.py +0 -0
  658. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/genai/test_eval_harness.py +0 -0
  659. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/genai/test_genai_metrics.py +0 -0
  660. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/genai/test_generation_cache.py +0 -0
  661. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/genai/test_generation_config.py +0 -0
  662. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/genai/test_gpu_validation.py +0 -0
  663. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/genai/test_hardware.py +0 -0
  664. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/genai/test_hybrid.py +0 -0
  665. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/genai/test_moderation.py +0 -0
  666. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/genai/test_ollama.py +0 -0
  667. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/genai/test_onnx_embed.py +0 -0
  668. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/genai/test_pipeline.py +0 -0
  669. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/genai/test_pipeline_integration.py +0 -0
  670. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/genai/test_rag.py +0 -0
  671. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/genai/test_refinements.py +0 -0
  672. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/genai/test_rerank.py +0 -0
  673. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/genai/test_router.py +0 -0
  674. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/genai/test_structured.py +0 -0
  675. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/genai/test_text.py +0 -0
  676. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/genai/test_textgen_embed_metrics.py +0 -0
  677. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/genai/test_tokens.py +0 -0
  678. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/genai/test_tracing.py +0 -0
  679. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/genai/test_vectorstore.py +0 -0
  680. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/genai/test_vision_text.py +0 -0
  681. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/geo/__init__.py +0 -0
  682. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/geo/test_br.py +0 -0
  683. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/geo/test_db.py +0 -0
  684. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/geo/test_distance.py +0 -0
  685. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/geo/test_estimate.py +0 -0
  686. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/geo/test_geocoding.py +0 -0
  687. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/geo/test_geometry.py +0 -0
  688. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/geo/test_polyline.py +0 -0
  689. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/geo/test_routing.py +0 -0
  690. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/geo/test_routing_extra.py +0 -0
  691. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/openapi/__init__.py +0 -0
  692. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/openapi/conftest.py +0 -0
  693. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/openapi/test_generate.py +0 -0
  694. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/openapi/test_loader.py +0 -0
  695. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/openapi/test_naming.py +0 -0
  696. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/openapi/test_parse.py +0 -0
  697. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/queue/__init__.py +0 -0
  698. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/queue/test_broker.py +0 -0
  699. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/queue/test_consumer.py +0 -0
  700. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/queue/test_manager.py +0 -0
  701. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/reviews/__init__.py +0 -0
  702. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/reviews/test_reviews.py +0 -0
  703. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/schemas/__init__.py +0 -0
  704. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/schemas/test_base.py +0 -0
  705. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/schemas/test_cursor_pagination.py +0 -0
  706. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/schemas/test_errors.py +0 -0
  707. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/schemas/test_link_headers.py +0 -0
  708. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/schemas/test_pagination.py +0 -0
  709. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/schemas/test_response.py +0 -0
  710. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/services/__init__.py +0 -0
  711. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/services/test_base.py +0 -0
  712. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/services/test_file_mixin.py +0 -0
  713. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/sessions/__init__.py +0 -0
  714. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/sessions/test_sessions.py +0 -0
  715. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/settings/__init__.py +0 -0
  716. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/settings/test_base.py +0 -0
  717. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/settings/test_mixins.py +0 -0
  718. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/sse/__init__.py +0 -0
  719. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/sse/test_broker.py +0 -0
  720. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/sse/test_event_stream.py +0 -0
  721. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/ssr/__init__.py +0 -0
  722. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/ssr/test_attributes.py +0 -0
  723. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/ssr/test_integration.py +0 -0
  724. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/ssr/test_page.py +0 -0
  725. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/ssr/test_response.py +0 -0
  726. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/ssr/test_webapp.py +0 -0
  727. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/storage/__init__.py +0 -0
  728. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/storage/test_minio_client.py +0 -0
  729. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/tasks/__init__.py +0 -0
  730. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/tasks/test_cron.py +0 -0
  731. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/tasks/test_dead_letter.py +0 -0
  732. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/tasks/test_manager.py +0 -0
  733. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/tasks/test_observability.py +0 -0
  734. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/tasks/test_oop.py +0 -0
  735. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/tasks/test_queue.py +0 -0
  736. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/tasks/test_scheduler.py +0 -0
  737. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/test_docs_api_guard.py +0 -0
  738. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/test_llmstxt.py +0 -0
  739. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/test_reference_coverage.py +0 -0
  740. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/testing/__init__.py +0 -0
  741. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/testing/test_database.py +0 -0
  742. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/testing/test_factories.py +0 -0
  743. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/utils/__init__.py +0 -0
  744. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/utils/test_client_ip.py +0 -0
  745. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/utils/test_datetime.py +0 -0
  746. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/utils/test_dict.py +0 -0
  747. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/utils/test_download.py +0 -0
  748. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/utils/test_email.py +0 -0
  749. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/utils/test_fields.py +0 -0
  750. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/utils/test_file_store.py +0 -0
  751. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/utils/test_http_client.py +0 -0
  752. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/utils/test_jwt.py +0 -0
  753. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/utils/test_lazy_extras.py +0 -0
  754. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/utils/test_locations.py +0 -0
  755. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/utils/test_log.py +0 -0
  756. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/utils/test_metrics.py +0 -0
  757. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/utils/test_opaque_token.py +0 -0
  758. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/utils/test_password.py +0 -0
  759. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/utils/test_regex.py +0 -0
  760. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/utils/test_storage_backends.py +0 -0
  761. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/utils/test_throttle.py +0 -0
  762. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/utils/test_upload.py +0 -0
  763. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/vision/__init__.py +0 -0
  764. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/vision/test_router.py +0 -0
  765. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/vision/test_vision.py +0 -0
  766. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/webpush/__init__.py +0 -0
  767. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/webpush/test_dispatcher.py +0 -0
  768. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/webpush/test_router.py +0 -0
  769. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/webpush/test_schemas.py +0 -0
  770. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/webpush/test_service.py +0 -0
  771. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/websockets/__init__.py +0 -0
  772. {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.2}/tests/websockets/test_hub_and_router.py +0 -0
@@ -0,0 +1,63 @@
1
+ name: Bug
2
+ description: Algo não se comporta como a documentação diz
3
+ title: "fix: "
4
+ labels: ["bug"]
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ Obrigado por reportar. Issue é o canal padrão deste repositório — se você
10
+ quiser implementar a correção, diga isso abaixo e espere o alinhamento
11
+ antes de abrir PR (a doc PT+EN e o release andam junto com o código).
12
+ - type: input
13
+ id: sdk-version
14
+ attributes:
15
+ label: Versão do SDK
16
+ description: 'Saída de `python -c "import tempest_fastapi_sdk as t; print(t.__version__)"`'
17
+ placeholder: "0.167.1"
18
+ validations:
19
+ required: true
20
+ - type: input
21
+ id: python-version
22
+ attributes:
23
+ label: Versão do Python
24
+ placeholder: "3.12.11"
25
+ validations:
26
+ required: true
27
+ - type: textarea
28
+ id: what-happened
29
+ attributes:
30
+ label: O que aconteceu
31
+ description: Inclua o traceback completo, não só a última linha.
32
+ render: text
33
+ validations:
34
+ required: true
35
+ - type: textarea
36
+ id: expected
37
+ attributes:
38
+ label: O que você esperava
39
+ description: E, se aplicável, o trecho da doc que diz isso.
40
+ validations:
41
+ required: true
42
+ - type: textarea
43
+ id: reproduction
44
+ attributes:
45
+ label: Como reproduzir
46
+ description: Snippet mínimo e completo — com imports, sem `...`.
47
+ render: python
48
+ validations:
49
+ required: true
50
+ - type: input
51
+ id: extras
52
+ attributes:
53
+ label: Extras instalados
54
+ placeholder: "[auth,cache,queue] — ou [all]"
55
+ - type: checkboxes
56
+ id: checks
57
+ attributes:
58
+ label: Antes de enviar
59
+ options:
60
+ - label: Reproduzi na versão mais recente publicada no PyPI.
61
+ required: true
62
+ - label: Procurei uma issue existente sobre o mesmo comportamento.
63
+ required: true
@@ -0,0 +1,8 @@
1
+ blank_issues_enabled: false
2
+ contact_links:
3
+ - name: Documentação (PT-BR / EN-US)
4
+ url: https://mauriciobenjamin700.github.io/tempest-fastapi-sdk/
5
+ about: Tutorial, receitas, exemplos completos e a referência da API — confira antes de abrir a issue.
6
+ - name: Divulgação de segurança
7
+ url: mailto:mauricio.benjamin@reloverelations.com
8
+ about: Relate vulnerabilidades em privado por e-mail, nunca em issue pública.
@@ -0,0 +1,39 @@
1
+ name: Documentação
2
+ description: Página confusa, exemplo que não roda, informação desatualizada ou typo
3
+ title: "docs: "
4
+ labels: ["documentation"]
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ Cada página existe duas vezes (`docs/<página>.md` em PT-BR e
10
+ `docs/<página>.en.md` em EN-US). Por isso a correção sai daqui, aplicada
11
+ nas duas de uma vez — um PR que arruma só um lado deixa o site
12
+ inconsistente.
13
+ - type: input
14
+ id: page
15
+ attributes:
16
+ label: Página
17
+ description: URL ou caminho do arquivo.
18
+ placeholder: "https://mauriciobenjamin700.github.io/tempest-fastapi-sdk/recipes/permission-guards/"
19
+ validations:
20
+ required: true
21
+ - type: textarea
22
+ id: problem
23
+ attributes:
24
+ label: O que está errado
25
+ description: Cole o trecho e diga o que ele deveria dizer. Se é um exemplo que não roda, inclua o erro.
26
+ validations:
27
+ required: true
28
+ - type: dropdown
29
+ id: kind
30
+ attributes:
31
+ label: Tipo
32
+ options:
33
+ - Exemplo não roda / está errado
34
+ - Informação desatualizada
35
+ - Explicação confusa ou incompleta
36
+ - Falta uma página / receita
37
+ - Typo / formatação
38
+ validations:
39
+ required: true
@@ -0,0 +1,59 @@
1
+ name: Feature / ideia de API
2
+ description: Uma capacidade nova ou uma mudança na superfície pública
3
+ title: "feat: "
4
+ labels: ["enhancement"]
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ Descreva o **caso de uso**, não a solução já desenhada — o problema
10
+ costuma ter uma resposta melhor com as peças que o SDK já tem. O escopo
11
+ e o formato da API são combinados aqui, antes de existir código.
12
+ - type: textarea
13
+ id: use-case
14
+ attributes:
15
+ label: Caso de uso
16
+ description: O que você está construindo e onde o SDK te obriga a escrever código repetido, frágil ou fora do padrão.
17
+ validations:
18
+ required: true
19
+ - type: textarea
20
+ id: today
21
+ attributes:
22
+ label: Como você resolve isso hoje
23
+ description: O workaround atual, com código se ajudar.
24
+ render: python
25
+ - type: textarea
26
+ id: proposal
27
+ attributes:
28
+ label: Ideia de API (opcional)
29
+ description: Se já imaginou uma assinatura, mostre o call site que gostaria de escrever.
30
+ render: python
31
+ - type: dropdown
32
+ id: area
33
+ attributes:
34
+ label: Área do SDK
35
+ options:
36
+ - auth / authz
37
+ - db / repository / migrations
38
+ - api / middlewares / HTTP
39
+ - queue / tasks / outbox
40
+ - cache / flags
41
+ - admin
42
+ - genai
43
+ - geo
44
+ - storage / upload / download
45
+ - sse / websocket / webpush
46
+ - CLI / tooling
47
+ - docs
48
+ - outra / não sei
49
+ validations:
50
+ required: true
51
+ - type: checkboxes
52
+ id: checks
53
+ attributes:
54
+ label: Antes de enviar
55
+ options:
56
+ - label: Verifiquei no [roadmap](https://mauriciobenjamin700.github.io/tempest-fastapi-sdk/roadmap/) se já está entregue ou na fila.
57
+ required: true
58
+ - label: Procurei uma issue existente com o mesmo pedido.
59
+ required: true
@@ -0,0 +1,36 @@
1
+ name: Dúvida de uso
2
+ description: "\"Como faço X com o SDK?\""
3
+ title: "dúvida: "
4
+ labels: ["question"]
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ Dúvida é bem-vinda como issue: se a resposta não estava na doc, a doc
10
+ tem um buraco — e a issue costuma virar uma receita ou um trecho novo.
11
+ - type: textarea
12
+ id: goal
13
+ attributes:
14
+ label: O que você quer fazer
15
+ description: O objetivo em uma ou duas frases.
16
+ validations:
17
+ required: true
18
+ - type: textarea
19
+ id: tried
20
+ attributes:
21
+ label: O que você já tentou
22
+ description: Código, se houver, e onde travou.
23
+ render: python
24
+ - type: input
25
+ id: docs-read
26
+ attributes:
27
+ label: Páginas da doc que você leu
28
+ description: Ajuda a saber onde a explicação falhou.
29
+ placeholder: "recipes/auth-flow, tutorial"
30
+ - type: input
31
+ id: sdk-version
32
+ attributes:
33
+ label: Versão do SDK
34
+ placeholder: "0.167.1"
35
+ validations:
36
+ required: true
@@ -0,0 +1,50 @@
1
+ Tem Script? | Novas Env Vars
2
+ -- | --
3
+ Não/Sim | Não/Sim
4
+
5
+ > :warning: **NOTA**
6
+ > - <o que precisa ficar saliente para o revisor: migrations, env vars, scripts, integrações externas>
7
+
8
+ Issue relacionada: #
9
+
10
+ > Este repositório trabalha com **issue primeiro**: a superfície pública é versionada e a doc PT+EN entra no mesmo commit, então o escopo é combinado na issue antes do código. PR sem issue aceita costuma voltar com um pedido pra abrir uma — veja [Contribuindo](https://mauriciobenjamin700.github.io/tempest-fastapi-sdk/contributing/).
11
+
12
+ ## Problema
13
+
14
+ <por que esse PR existe; o estado anterior, riscos, bugs latentes>
15
+
16
+ ## Solução
17
+
18
+ <o que foi feito, em sub-seções (### Componente A / ### Componente B) quando faz sentido>
19
+
20
+ ## Screenshots
21
+
22
+ **Descrição do Screenshot**:
23
+ <descrição da captura, ou "Não se aplica — alterações de backend/tooling/etc.">
24
+
25
+ ## Outras mudanças
26
+
27
+ <bullets pequenos / "Nenhuma">
28
+
29
+ ## Notas sobre deploy
30
+
31
+ <passos de deploy, rebuilds necessários, validação local executada>
32
+
33
+ **Validação local executada**:
34
+ - <comandos rodados (testes, build, lint) com resultado>
35
+
36
+ **Novas Variáveis de Ambiente**:
37
+ - Nenhuma | <nome>: <descrição>
38
+
39
+ **Novos Scripts e/ou Tarefas de Background**:
40
+ - Nenhum | <descrição>
41
+
42
+ **Novas Dependências**:
43
+ - Nenhuma | <pacote@versão>: <motivo>
44
+
45
+ **Documentação** (obrigatório quando muda superfície pública):
46
+ - [ ] `README.md`
47
+ - [ ] `CHANGELOG.md`
48
+ - [ ] receita / página em `docs/<página>.md` **e** `docs/<página>.en.md`
49
+ - [ ] stub em `docs/reference.md` para cada símbolo público novo
50
+ - [ ] `uv run --group docs mkdocs build --strict` verde
@@ -5,6 +5,84 @@ All notable changes to **tempest-fastapi-sdk** are listed below.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.167.2] — 2026-07-26
9
+
10
+ Documentation layout only — no code change, no API change.
11
+
12
+ ### Changed
13
+
14
+ - **The tab bar is down from 13 tabs to 11, and every section is reachable from
15
+ the landing page.** `Exemplos` and `SSR (páginas tipadas)` were loose
16
+ top-level nav entries, which crowded the Material tab bar; the landing page
17
+ meanwhile pointed only at Installation / Architecture / Tutorial, so Recipes,
18
+ Reference and Learning projects existed on the bar and nowhere in the prose.
19
+ Both fixed:
20
+ - `Exemplos` is gone as a tab. The five integrated walkthroughs (Pix
21
+ checkout, neighborhood marketplace, full store admin, fullstack web,
22
+ GenAI flows) now live under **Recipes** as the `Exemplos completos` /
23
+ `Complete examples` sub-section, and are indexed in a table on the
24
+ Recipes landing. Their URLs are unchanged.
25
+ - `SSR (páginas tipadas)` is now a recipe, listed in the Recipes index
26
+ alongside the others. URL unchanged.
27
+ - The **SDK tour** was merged into the Recipes landing
28
+ (`docs/recipes/index.md`) as its opening section, so one page is the
29
+ entry point instead of two competing for the role. `docs/tour.md` /
30
+ `docs/tour.en.md` are removed and the `/tour/` URL is gone — inbound
31
+ links now target the tour section of the Recipes landing.
32
+ - The Recipes index table covers **all 53 recipes**; twelve were missing
33
+ (`authz`, `permission-guards`, `introspection-auth`, `geo`, `genai`,
34
+ `file-store`, `artifact-registry`, `openapi-errors`, `openapi-client`,
35
+ `system-checks`, `management-commands`, `react-spa`) plus SSR.
36
+ - The landing page gained a **"Por onde continuar" / "Where to go next"**
37
+ card grid naming every section — Installation, Architecture, Tutorial,
38
+ Recipes, Reference, Learning projects, Roadmap, Migration guide and
39
+ Changelog — and its stale Status row (`630+ tests, ≥ 89 %`) now reads
40
+ `2.650+ / ≥ 90 %`.
41
+ - **Contributing is issue-first.** The page now opens with the policy: the
42
+ useful contribution is an issue, not a PR, because the public surface is
43
+ versioned and the bilingual docs ship in the same commit as the code. It
44
+ explains what makes an issue actionable, why the ordering exists, and what a
45
+ PR needs *after* an issue is accepted. "Docs typo → PR straight against
46
+ `docs/<page>.md`" is gone: a fix touching only one of the two language
47
+ mirrors leaves the site inconsistent, so typos are issues too.
48
+
49
+ ### Added
50
+
51
+ - **GitHub issue forms** under `.github/ISSUE_TEMPLATE/` — bug, feature / API
52
+ idea, documentation and usage question — with `config.yml` disabling blank
53
+ issues and pointing at the docs site and the private security contact. Plus a
54
+ `PULL_REQUEST_TEMPLATE.md` carrying the project's PT-BR PR shape and a
55
+ documentation checklist.
56
+
57
+ ## [0.167.1] — 2026-07-26
58
+
59
+ ### Fixed
60
+
61
+ - **`BaseController` now accepts services typed over a concrete update
62
+ schema.** `ServiceT`'s bound was written `BaseService[Any, Any]`, which is not
63
+ a partial application: PEP 696 fills the omitted `UpdateT` with its
64
+ `BaseSchema` default, and since that parameter is invariant the bound admitted
65
+ only services whose update schema was exactly `BaseSchema`. Every service
66
+ written the documented way — `BaseService[Repo, Resp, MyUpdateSchema]` — was
67
+ rejected by the type checker with `Type parameter "UpdateT@BaseService" is
68
+ invariant, but "MyUpdateSchema" is not the same as "BaseSchema"`, forcing a
69
+ `# type: ignore[type-var]` on the controller declaration. The bound is now
70
+ `BaseService[Any, Any, Any]`, which leaves the invariant parameter open while
71
+ keeping the `BaseSchema` constraint. Type-check only — runtime behavior is
72
+ unchanged, and the `# type: ignore[type-var]` workarounds can be dropped.
73
+ - **The suite can now see this class of bug.** `mypy` runs over the package, not
74
+ over `tests/`, so `tests/controllers/test_base.py` already declared exactly
75
+ this service/controller pair and stayed green. New
76
+ `tests/controllers/test_generic_bounds.py` inspects `ServiceT.__bound__`
77
+ directly and runs `mypy --strict` over a downstream-shaped snippet, asserting
78
+ no `[type-var]` diagnostic.
79
+
80
+ ### Documentation
81
+
82
+ - `docs/architecture.md` / `docs/architecture.en.md` — the controllers & services
83
+ section now shows the 3rd generic parameter on both layers and notes that the
84
+ pair requires 0.167.1+.
85
+
8
86
  ## [0.167.0] — 2026-07-26
9
87
 
10
88
  Permission guards: a decorator that runs plain `(user) -> user | None`
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tempest-fastapi-sdk
3
- Version: 0.167.0
3
+ Version: 0.167.2
4
4
  Summary: Shared FastAPI building blocks: base schemas, ORM model, async repository, exceptions, pagination and settings — the conventions used across Tempest projects.
5
5
  Project-URL: Homepage, https://github.com/mauriciobenjamin700/tempest-fastapi-sdk
6
6
  Project-URL: Repository, https://github.com/mauriciobenjamin700/tempest-fastapi-sdk
@@ -163,6 +163,31 @@ What you inherit by subclassing `BaseController[ServiceT, ResponseT]`:
163
163
  | `update(id, data)` | `service.update` | Same. |
164
164
  | `delete(id)` | `service.delete` | Same. |
165
165
 
166
+ !!! tip "Typing the `update` payload end to end"
167
+ The 3rd generic parameter is the update schema, and it must be the **same** on both layers: a service declared as `BaseService[Repo, Resp, MyUpdateSchema]` fits `BaseController[MyService, Resp, MyUpdateSchema]`. Omit the 3rd parameter on either one and it falls back to the `BaseSchema` default, leaving `update`'s `data` loosely typed.
168
+
169
+ ```python
170
+ from tempest_fastapi_sdk import BaseController, BaseService
171
+
172
+ from src.db.repositories import CoinPackRepository
173
+ from src.schemas import CoinPackResponseSchema, CoinPackUpdateSchema
174
+
175
+
176
+ class CoinPackService(
177
+ BaseService[CoinPackRepository, CoinPackResponseSchema, CoinPackUpdateSchema]
178
+ ):
179
+ """Service typed over the concrete update schema."""
180
+
181
+
182
+ class CoinPackController(
183
+ BaseController[CoinPackService, CoinPackResponseSchema, CoinPackUpdateSchema]
184
+ ):
185
+ """Controller repeating the same update schema."""
186
+ ```
187
+
188
+ !!! warning "Requires 0.167.1+"
189
+ On earlier versions this pair failed type checking with `Type parameter "UpdateT@BaseService" is invariant, but "CoinPackUpdateSchema" is not the same as "BaseSchema"` — `ServiceT`'s bound pinned that invariant parameter to `BaseSchema`. Fixed in 0.167.1; nothing changes at runtime.
190
+
166
191
  When a use case needs domain rules, override the inherited method in the service. When a use case needs to coordinate more than one service, override the inherited method (or add a new one) in the controller. The router never grows — it only depends on the controller.
167
192
 
168
193
  ```python
@@ -163,6 +163,31 @@ O que você herda ao subclassear `BaseController[ServiceT, ResponseT]`:
163
163
  | `update(id, data)` | `service.update` | Igual. |
164
164
  | `delete(id)` | `service.delete` | Igual. |
165
165
 
166
+ !!! tip "Tipando o payload de `update` ponta a ponta"
167
+ O 3º parâmetro genérico é o schema de update, e ele precisa ser o **mesmo** nas duas camadas: um service declarado como `BaseService[Repo, Resp, MeuUpdateSchema]` encaixa em `BaseController[MeuService, Resp, MeuUpdateSchema]`. Omitir o 3º parâmetro em qualquer uma delas cai no default `BaseSchema`, e o `data` de `update` chega sem tipo preciso.
168
+
169
+ ```python
170
+ from tempest_fastapi_sdk import BaseController, BaseService
171
+
172
+ from src.db.repositories import CoinPackRepository
173
+ from src.schemas import CoinPackResponseSchema, CoinPackUpdateSchema
174
+
175
+
176
+ class CoinPackService(
177
+ BaseService[CoinPackRepository, CoinPackResponseSchema, CoinPackUpdateSchema]
178
+ ):
179
+ """Service tipado sobre o schema de update concreto."""
180
+
181
+
182
+ class CoinPackController(
183
+ BaseController[CoinPackService, CoinPackResponseSchema, CoinPackUpdateSchema]
184
+ ):
185
+ """Controller que repete o mesmo schema de update."""
186
+ ```
187
+
188
+ !!! warning "Requer 0.167.1+"
189
+ Em versões anteriores esse par falhava no type check com `Type parameter "UpdateT@BaseService" is invariant, but "CoinPackUpdateSchema" is not the same as "BaseSchema"` — o bound de `ServiceT` deixava o parâmetro invariante fixado em `BaseSchema`. Corrigido em 0.167.1; nada muda em runtime.
190
+
166
191
  Quando um caso de uso precisa de regras de domínio, sobrescreva o método herdado no service. Quando um caso de uso precisa coordenar mais de um service, sobrescreva o método herdado (ou adicione um novo) no controller. O router nunca cresce — ele só depende do controller.
167
192
 
168
193
  ```python
@@ -0,0 +1,121 @@
1
+ # Contributing
2
+
3
+ !!! tip "The most useful contribution is an issue — not a PR"
4
+ This SDK is a **versioned public surface**: every release publishes to PyPI, and every new symbol carries a docstring, bilingual docs and a reference entry. So the flow here is **issue first**: you describe the problem (or the idea), we agree on the scope and the shape, and only then does anyone write code. A PR that arrives before that agreement almost always has to be redone.
5
+
6
+ **[Open an issue »](https://github.com/mauriciobenjamin700/tempest-fastapi-sdk/issues/new/choose)**
7
+
8
+ ## Open an issue
9
+
10
+ | Need | Where |
11
+ | --- | --- |
12
+ | Bug (something does not behave as documented) | [Issue: bug report](https://github.com/mauriciobenjamin700/tempest-fastapi-sdk/issues/new?template=bug_report.yml) |
13
+ | Feature / API idea | [Issue: feature request](https://github.com/mauriciobenjamin700/tempest-fastapi-sdk/issues/new?template=feature_request.yml) |
14
+ | Confusing or incomplete docs, an example that does not run, a typo | [Issue: docs](https://github.com/mauriciobenjamin700/tempest-fastapi-sdk/issues/new?template=docs.yml) |
15
+ | Usage question ("how do I do X with the SDK?") | [Issue: question](https://github.com/mauriciobenjamin700/tempest-fastapi-sdk/issues/new?template=question.yml) |
16
+ | Security disclosure | mauricio.benjamin@reloverelations.com (private, **never** a public issue) |
17
+
18
+ What makes an issue get resolved fast:
19
+
20
+ - the **SDK version** (`python -c "import tempest_fastapi_sdk as t; print(t.__version__)"`) and the Python version;
21
+ - a **minimal snippet** that reproduces it — complete, with imports, no `...`;
22
+ - **what you expected** and **what happened** (the whole traceback, not its last line);
23
+ - for a feature: the **use case**, not a solution already designed. The problem often has a better answer built from pieces the SDK already ships.
24
+
25
+ !!! note "A docs typo is an issue too"
26
+ It used to say "send a PR straight away". Not anymore: every page exists **twice** (`docs/<page>.md` in PT-BR and `docs/<page>.en.md` in EN-US), and a PR fixing only one side leaves the site inconsistent. Open the issue pointing at the page and the passage — the fix lands in both at once.
27
+
28
+ ## Why an issue comes before code
29
+
30
+ Three constraints of this repository that never show up in a diff:
31
+
32
+ 1. **Versioning and compatibility.** Every public symbol lands in `__all__`, in the rendered reference and in the SemVer contract. Renaming it or changing its signature later is a breaking change with a migration guide.
33
+ 2. **Docs in the same commit.** A public-surface change without README, `CHANGELOG.md`, the bilingual recipe and the reference stub updated does not pass — that is a project rule, not a reviewer's preference.
34
+ 3. **One release per feature.** Each slice ships as its own version (bump in `pyproject.toml`, `__version__` and `uv.lock`, full gates, tag). The maintainer drives that cycle.
35
+
36
+ None of this blocks your contribution — it just means **agreeing on the scope in the issue is faster** than discovering it during PR review.
37
+
38
+ ## I want to implement it
39
+
40
+ Great — say so **in the issue** and wait for the go-ahead. Then:
41
+
42
+ - work on a `feat/<slug>` / `fix/<slug>` branch off `main`;
43
+ - run `make check` (lint + format + mypy + tests) — CI runs the same target on 3.11 / 3.12 / 3.13;
44
+ - update the PT **and** EN docs along with the code, plus `CHANGELOG.md`;
45
+ - do **not** bump the version or create a tag — that belongs to the release;
46
+ - one PR per topic, with a body that states the problem before the solution.
47
+
48
+ A PR without an accepted issue is usually closed with a request to open one — that is not a rejection of the work, it is the ordering that keeps the docs and the release coherent.
49
+
50
+ ## Development environment
51
+
52
+ ```bash
53
+ # Clone + sync every extra and the dev/docs groups
54
+ git clone https://github.com/mauriciobenjamin700/tempest-fastapi-sdk.git
55
+ cd tempest-fastapi-sdk
56
+ uv sync --all-extras --group dev --group docs
57
+ ```
58
+
59
+ !!! tip "Quick verification"
60
+ `make check` runs the full quality gate (lint + format check + mypy + pytest). CI runs the same target on every push, so a green `make check` locally means a green PR.
61
+
62
+ ## Quality gates
63
+
64
+ | Command | What it does |
65
+ | --- | --- |
66
+ | `make lint` | `ruff check .` (no auto-fix) |
67
+ | `make fix` | `ruff check --fix .` + `ruff format .` (writes) |
68
+ | `make fmt` | `ruff format .` (writes) |
69
+ | `make fmt-check` | `ruff format --check .` (read-only) |
70
+ | `make type` | `mypy tempest_fastapi_sdk` (strict) |
71
+ | `make test` | `pytest` with coverage |
72
+ | `make check` | `lint + fmt-check + type + test` (stops at first failure) |
73
+ | `make ci` | `check + build + smoke` (full CI mirror) |
74
+
75
+ The same gates are available through the bundled CLI: `tempest lint` / `tempest fix` / `tempest check` work in any consumer project too.
76
+
77
+ ## Tests
78
+
79
+ ```bash
80
+ make test # full suite + coverage
81
+ uv run pytest tests/admin # the admin module only
82
+ uv run pytest -k cursor # tests matching "cursor"
83
+ uv run pytest -x # stop at the first failure
84
+ ```
85
+
86
+ The suite uses in-memory SQLite via `tempest_fastapi_sdk.testing.test_session`. Repository tests share the `session` fixture from `tests/conftest.py`.
87
+
88
+ ## Docs
89
+
90
+ ```bash
91
+ make docs-serve # mkdocs serve — live reload at http://127.0.0.1:8000
92
+ make docs-build # build the static site into ./site/
93
+ ```
94
+
95
+ Every page lives in two languages (`docs/<page>.md` + `docs/<page>.en.md`) and the build runs with `--strict` — a warning is an error. Edits reach the Pages site on push to `main` via [`.github/workflows/docs.yml`](https://github.com/mauriciobenjamin700/tempest-fastapi-sdk/blob/main/.github/workflows/docs.yml).
96
+
97
+ ## Commit message style
98
+
99
+ Conventional Commits prefixes:
100
+
101
+ - `feat:` — new user-facing capability
102
+ - `fix:` — bug fix
103
+ - `refactor:` — internal restructuring with no behavior change
104
+ - `docs:` — documentation only
105
+ - `style:` — formatting / whitespace
106
+ - `tests:` — test-only changes
107
+ - `chore:` — tooling, deps, release plumbing
108
+
109
+ Add `!` after the prefix for breaking changes (`feat!: drop class-attr config`). Note in the message which version delivers the change.
110
+
111
+ ## Release (maintainer)
112
+
113
+ `make release VERSION=X.Y.Z` bumps the version locations, runs every gate, creates the commit + tag and tells you what to push:
114
+
115
+ ```bash
116
+ make release VERSION=0.20.0
117
+ git push origin main
118
+ git push origin v0.20.0
119
+ ```
120
+
121
+ The PyPI publish workflow fires on the `vX.Y.Z` tag push (trusted publishing — no API token in the repository).
@@ -0,0 +1,121 @@
1
+ # Contribuindo
2
+
3
+ !!! tip "A contribuição mais útil é uma issue — não um PR"
4
+ Este SDK é uma **superfície pública versionada**: cada release publica no PyPI e cada símbolo novo carrega docstring, docs bilíngues e entrada na referência. Por isso o fluxo aqui é **issue primeiro**: você descreve o problema (ou a ideia), a gente combina o escopo e o formato, e só então alguém escreve código. Um PR que chega antes desse alinhamento quase sempre precisa ser refeito.
5
+
6
+ **[Abrir uma issue »](https://github.com/mauriciobenjamin700/tempest-fastapi-sdk/issues/new/choose)**
7
+
8
+ ## Abra uma issue
9
+
10
+ | Necessidade | Onde |
11
+ | --- | --- |
12
+ | Bug (algo não funciona como documentado) | [Issue: bug report](https://github.com/mauriciobenjamin700/tempest-fastapi-sdk/issues/new?template=bug_report.yml) |
13
+ | Feature / ideia de API | [Issue: feature request](https://github.com/mauriciobenjamin700/tempest-fastapi-sdk/issues/new?template=feature_request.yml) |
14
+ | Doc confusa, incompleta, exemplo que não roda, typo | [Issue: docs](https://github.com/mauriciobenjamin700/tempest-fastapi-sdk/issues/new?template=docs.yml) |
15
+ | Dúvida de uso ("como faço X com o SDK?") | [Issue: dúvida](https://github.com/mauriciobenjamin700/tempest-fastapi-sdk/issues/new?template=question.yml) |
16
+ | Divulgação de segurança | mauricio.benjamin@reloverelations.com (privado, **nunca** em issue pública) |
17
+
18
+ O que faz uma issue ser resolvida rápido:
19
+
20
+ - **versão do SDK** (`python -c "import tempest_fastapi_sdk as t; print(t.__version__)"`) e do Python;
21
+ - **snippet mínimo** que reproduz — completo, com imports, sem `...`;
22
+ - **o que você esperava** e **o que aconteceu** (traceback inteiro, não a última linha);
23
+ - para feature: **o caso de uso**, não a solução já desenhada. O problema costuma ter uma resposta melhor com as peças que o SDK já tem.
24
+
25
+ !!! note "Typo na doc também é issue"
26
+ Antes era "manda PR direto". Não mais: cada página existe **duas vezes** (`docs/<página>.md` em PT-BR e `docs/<página>.en.md` em EN-US) e um PR que corrige só um lado deixa o site inconsistente. Abra a issue apontando a página e o trecho — a correção sai nas duas de uma vez.
27
+
28
+ ## Por que issue antes de código
29
+
30
+ Três restrições deste repositório que não aparecem no diff:
31
+
32
+ 1. **Versionamento e compatibilidade.** Todo símbolo público entra em `__all__`, na referência renderizada e no contrato SemVer. Renomear ou mudar assinatura depois é breaking change com guia de migração.
33
+ 2. **Docs no mesmo commit.** Mudança de superfície pública sem README, `CHANGELOG.md`, receita bilíngue e stub de referência atualizados não passa — é regra do projeto, não preferência do revisor.
34
+ 3. **Release por feature.** Cada fatia sai como sua própria versão (bump em `pyproject.toml`, `__version__` e `uv.lock`, gates completos, tag). Quem conduz esse ciclo é o mantenedor.
35
+
36
+ Nada disso impede sua contribuição — só significa que **combinar o escopo na issue é mais rápido** do que descobrir na revisão do PR.
37
+
38
+ ## Quero implementar
39
+
40
+ Ótimo — diga isso **na issue** e espere o "vai". Aí:
41
+
42
+ - trabalhe num branch `feat/<slug>` / `fix/<slug>` a partir de `main`;
43
+ - rode `make check` (lint + formato + mypy + testes) — o CI roda o mesmo alvo em 3.11 / 3.12 / 3.13;
44
+ - atualize a doc PT **e** EN junto com o código, mais `CHANGELOG.md`;
45
+ - **não** faça bump de versão nem crie tag — isso é do release;
46
+ - um PR por assunto, com o corpo explicando o problema antes da solução.
47
+
48
+ PR sem issue aceita costuma ser fechado com um pedido pra abrir a issue — não é rejeição do trabalho, é a ordem que mantém a doc e o release coerentes.
49
+
50
+ ## Ambiente de desenvolvimento
51
+
52
+ ```bash
53
+ # Clone + sincronize todos os extras e os grupos dev/docs
54
+ git clone https://github.com/mauriciobenjamin700/tempest-fastapi-sdk.git
55
+ cd tempest-fastapi-sdk
56
+ uv sync --all-extras --group dev --group docs
57
+ ```
58
+
59
+ !!! tip "Verificação rápida"
60
+ `make check` roda o gate de qualidade completo (lint + checagem de formato + mypy + pytest). O CI roda o mesmo alvo em cada push, então um `make check` verde localmente significa um PR verde.
61
+
62
+ ## Gates de qualidade
63
+
64
+ | Comando | O que faz |
65
+ | --- | --- |
66
+ | `make lint` | `ruff check .` (sem auto-fix) |
67
+ | `make fix` | `ruff check --fix .` + `ruff format .` (escreve) |
68
+ | `make fmt` | `ruff format .` (escreve) |
69
+ | `make fmt-check` | `ruff format --check .` (somente leitura) |
70
+ | `make type` | `mypy tempest_fastapi_sdk` (strict) |
71
+ | `make test` | `pytest` com cobertura |
72
+ | `make check` | `lint + fmt-check + type + test` (para no primeiro erro) |
73
+ | `make ci` | `check + build + smoke` (espelho completo do CI) |
74
+
75
+ Os mesmos gates estão disponíveis pela CLI embutida: `tempest lint` / `tempest fix` / `tempest check` funcionam em qualquer projeto consumidor também.
76
+
77
+ ## Testes
78
+
79
+ ```bash
80
+ make test # suite completa + cobertura
81
+ uv run pytest tests/admin # só o módulo admin
82
+ uv run pytest -k cursor # testes que casam com "cursor"
83
+ uv run pytest -x # para no primeiro erro
84
+ ```
85
+
86
+ A suite usa SQLite em memória via `tempest_fastapi_sdk.testing.test_session`. Os testes de repository compartilham a fixture `session` de `tests/conftest.py`.
87
+
88
+ ## Docs
89
+
90
+ ```bash
91
+ make docs-serve # mkdocs serve — live reload em http://127.0.0.1:8000
92
+ make docs-build # build do site estático em ./site/
93
+ ```
94
+
95
+ Toda página vive em duas línguas (`docs/<página>.md` + `docs/<página>.en.md`) e o build roda com `--strict` — warning é erro. As edições caem no site do Pages no push para `main` via [`.github/workflows/docs.yml`](https://github.com/mauriciobenjamin700/tempest-fastapi-sdk/blob/main/.github/workflows/docs.yml).
96
+
97
+ ## Estilo das mensagens de commit
98
+
99
+ Prefixos de Conventional Commits:
100
+
101
+ - `feat:` — nova capacidade voltada ao usuário
102
+ - `fix:` — correção de bug
103
+ - `refactor:` — reestruturação interna sem mudança de comportamento
104
+ - `docs:` — só documentação
105
+ - `style:` — formatação / espaços
106
+ - `tests:` — só mudanças de teste
107
+ - `chore:` — tooling, deps, encanamento de release
108
+
109
+ Adicione `!` após o prefixo para mudanças que quebram compatibilidade (`feat!: drop class-attr config`). Marque na mensagem a versão que entrega a mudança.
110
+
111
+ ## Release (mantenedor)
112
+
113
+ `make release VERSION=X.Y.Z` faz o bump nas localizações da versão, roda todos os gates, cria o commit + tag e diz o que você deve dar push:
114
+
115
+ ```bash
116
+ make release VERSION=0.20.0
117
+ git push origin main
118
+ git push origin v0.20.0
119
+ ```
120
+
121
+ O workflow de publicação no PyPI dispara no push da tag `vX.Y.Z` (publicação confiável — sem token de API no repositório).