tempest-fastapi-sdk 0.231.0__tar.gz → 0.232.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1107) hide show
  1. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/CHANGELOG.md +80 -0
  2. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/Makefile +7 -1
  3. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/PKG-INFO +1 -1
  4. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/SHIPPED.md +19 -0
  5. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/index.en.md +1 -0
  6. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/index.md +1 -0
  7. tempest_fastapi_sdk-0.232.0/docs/recipes/stripe.en.md +429 -0
  8. tempest_fastapi_sdk-0.232.0/docs/recipes/stripe.md +423 -0
  9. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/reference.md +35 -0
  10. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/roadmap.en.md +1 -1
  11. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/roadmap.md +1 -1
  12. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/mkdocs.yml +3 -0
  13. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/pyproject.toml +1 -1
  14. tempest_fastapi_sdk-0.232.0/scripts/regen_stripe.py +237 -0
  15. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/__init__.py +5 -1
  16. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/integrations/__init__.py +1 -0
  17. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/integrations/payment/__init__.py +10 -2
  18. tempest_fastapi_sdk-0.232.0/tempest_fastapi_sdk/integrations/payment/stripe/__init__.py +243 -0
  19. tempest_fastapi_sdk-0.232.0/tempest_fastapi_sdk/integrations/payment/stripe/client.py +441 -0
  20. tempest_fastapi_sdk-0.232.0/tempest_fastapi_sdk/integrations/payment/stripe/environment.py +108 -0
  21. tempest_fastapi_sdk-0.232.0/tempest_fastapi_sdk/integrations/payment/stripe/events.py +360 -0
  22. tempest_fastapi_sdk-0.232.0/tempest_fastapi_sdk/integrations/payment/stripe/money.py +150 -0
  23. tempest_fastapi_sdk-0.232.0/tempest_fastapi_sdk/integrations/payment/stripe/schemas.py +342 -0
  24. tempest_fastapi_sdk-0.232.0/tempest_fastapi_sdk/integrations/payment/stripe/webhooks.py +275 -0
  25. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/openapi/emit_client.py +21 -2
  26. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/openapi/ir.py +7 -0
  27. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/openapi/parse.py +65 -8
  28. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/utils/__init__.py +2 -0
  29. tempest_fastapi_sdk-0.232.0/tempest_fastapi_sdk/utils/forms.py +111 -0
  30. tempest_fastapi_sdk-0.232.0/tests/integrations/payment/stripe/__init__.py +1 -0
  31. tempest_fastapi_sdk-0.232.0/tests/integrations/payment/stripe/test_client.py +385 -0
  32. tempest_fastapi_sdk-0.232.0/tests/integrations/payment/stripe/test_generated_drift.py +129 -0
  33. tempest_fastapi_sdk-0.232.0/tests/integrations/payment/stripe/test_money.py +122 -0
  34. tempest_fastapi_sdk-0.232.0/tests/integrations/payment/stripe/test_webhooks.py +254 -0
  35. tempest_fastapi_sdk-0.232.0/tests/openapi/test_form_bodies.py +172 -0
  36. tempest_fastapi_sdk-0.232.0/tests/openapi/test_nested_capture.py +129 -0
  37. tempest_fastapi_sdk-0.232.0/tests/utils/test_forms.py +97 -0
  38. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/uv.lock +1 -1
  39. tempest_fastapi_sdk-0.232.0/vendor/stripe-api-facts.yaml +268 -0
  40. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  41. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  42. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/.github/ISSUE_TEMPLATE/docs.yml +0 -0
  43. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  44. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/.github/ISSUE_TEMPLATE/question.yml +0 -0
  45. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  46. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/.github/workflows/ci.yml +0 -0
  47. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/.github/workflows/docs.yml +0 -0
  48. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/.github/workflows/nightly-model.yml +0 -0
  49. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/.github/workflows/release-pypi.yml +0 -0
  50. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/.gitignore +0 -0
  51. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/.playwright-mcp/console-2026-08-01T19-55-53-764Z.log +0 -0
  52. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/.playwright-mcp/console-2026-08-01T19-57-10-893Z.log +0 -0
  53. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/.playwright-mcp/console-2026-08-01T20-08-18-023Z.log +0 -0
  54. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/.playwright-mcp/console-2026-08-01T20-09-56-040Z.log +0 -0
  55. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/.playwright-mcp/console-2026-08-01T20-23-00-137Z.log +0 -0
  56. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/.playwright-mcp/console-2026-08-01T23-45-30-424Z.log +0 -0
  57. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/.playwright-mcp/page-2026-08-01T19-55-53-849Z.yml +0 -0
  58. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/.playwright-mcp/page-2026-08-01T19-56-31-935Z.yml +0 -0
  59. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/.playwright-mcp/page-2026-08-01T19-57-10-926Z.yml +0 -0
  60. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/.playwright-mcp/page-2026-08-01T19-58-00-882Z.yml +0 -0
  61. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/.playwright-mcp/page-2026-08-01T20-08-18-067Z.yml +0 -0
  62. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/.playwright-mcp/page-2026-08-01T20-09-56-156Z.yml +0 -0
  63. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/.playwright-mcp/page-2026-08-01T20-23-00-166Z.yml +0 -0
  64. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/.playwright-mcp/page-2026-08-01T23-45-30-453Z.yml +0 -0
  65. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/.python-version +0 -0
  66. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/CLAUDE.md +0 -0
  67. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/README.md +0 -0
  68. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/admin-showcase.en.md +0 -0
  69. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/admin-showcase.md +0 -0
  70. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/architecture.en.md +0 -0
  71. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/architecture.md +0 -0
  72. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/changelog.en.md +0 -0
  73. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/changelog.md +0 -0
  74. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/contributing.en.md +0 -0
  75. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/contributing.md +0 -0
  76. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/fullstack-web.en.md +0 -0
  77. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/fullstack-web.md +0 -0
  78. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/genai-examples.en.md +0 -0
  79. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/genai-examples.md +0 -0
  80. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/getting-started/first-project.en.md +0 -0
  81. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/getting-started/first-project.md +0 -0
  82. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/getting-started/python-versions.en.md +0 -0
  83. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/getting-started/python-versions.md +0 -0
  84. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/getting-started/references.en.md +0 -0
  85. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/getting-started/references.md +0 -0
  86. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/getting-started/uv.en.md +0 -0
  87. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/getting-started/uv.md +0 -0
  88. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/index.en.md +0 -0
  89. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/index.md +0 -0
  90. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/installation.en.md +0 -0
  91. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/installation.md +0 -0
  92. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/integrated.en.md +0 -0
  93. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/integrated.md +0 -0
  94. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/learning/index.en.md +0 -0
  95. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/learning/index.md +0 -0
  96. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/learning/marketplace/api.en.md +0 -0
  97. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/learning/marketplace/api.md +0 -0
  98. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/learning/marketplace/business-rules.en.md +0 -0
  99. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/learning/marketplace/business-rules.md +0 -0
  100. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/learning/marketplace/domain.en.md +0 -0
  101. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/learning/marketplace/domain.md +0 -0
  102. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/learning/marketplace/flows.en.md +0 -0
  103. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/learning/marketplace/flows.md +0 -0
  104. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/learning/marketplace/index.en.md +0 -0
  105. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/learning/marketplace/index.md +0 -0
  106. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/marketplace-local.en.md +0 -0
  107. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/marketplace-local.md +0 -0
  108. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/migration.en.md +0 -0
  109. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/migration.md +0 -0
  110. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/admin-sql-console.en.md +0 -0
  111. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/admin-sql-console.md +0 -0
  112. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/admin.en.md +0 -0
  113. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/admin.md +0 -0
  114. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/agents-advanced.en.md +0 -0
  115. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/agents-advanced.md +0 -0
  116. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/agents-testing.en.md +0 -0
  117. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/agents-testing.md +0 -0
  118. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/agents.en.md +0 -0
  119. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/agents.md +0 -0
  120. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/artifact-registry.en.md +0 -0
  121. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/artifact-registry.md +0 -0
  122. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/audit-trail.en.md +0 -0
  123. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/audit-trail.md +0 -0
  124. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/auth-flow.en.md +0 -0
  125. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/auth-flow.md +0 -0
  126. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/authz.en.md +0 -0
  127. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/authz.md +0 -0
  128. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/br-helpers.en.md +0 -0
  129. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/br-helpers.md +0 -0
  130. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/cache.en.md +0 -0
  131. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/cache.md +0 -0
  132. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/chat.en.md +0 -0
  133. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/chat.md +0 -0
  134. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/cli.en.md +0 -0
  135. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/cli.md +0 -0
  136. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/database.en.md +0 -0
  137. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/database.md +0 -0
  138. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/deploy-safety.en.md +0 -0
  139. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/deploy-safety.md +0 -0
  140. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/downloads.en.md +0 -0
  141. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/downloads.md +0 -0
  142. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/email.en.md +0 -0
  143. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/email.md +0 -0
  144. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/enum-columns.en.md +0 -0
  145. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/enum-columns.md +0 -0
  146. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/faces.en.md +0 -0
  147. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/faces.md +0 -0
  148. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/feature-flags.en.md +0 -0
  149. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/feature-flags.md +0 -0
  150. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/fields.en.md +0 -0
  151. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/fields.md +0 -0
  152. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/file-store.en.md +0 -0
  153. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/file-store.md +0 -0
  154. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/firebase-auth.en.md +0 -0
  155. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/firebase-auth.md +0 -0
  156. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/genai.en.md +0 -0
  157. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/genai.md +0 -0
  158. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/geo.en.md +0 -0
  159. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/geo.md +0 -0
  160. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/http-client.en.md +0 -0
  161. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/http-client.md +0 -0
  162. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/http.en.md +0 -0
  163. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/http.md +0 -0
  164. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/idempotency.en.md +0 -0
  165. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/idempotency.md +0 -0
  166. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/image-generation.en.md +0 -0
  167. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/image-generation.md +0 -0
  168. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/introspection-auth.en.md +0 -0
  169. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/introspection-auth.md +0 -0
  170. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/jobs.en.md +0 -0
  171. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/jobs.md +0 -0
  172. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/logging.en.md +0 -0
  173. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/logging.md +0 -0
  174. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/management-commands.en.md +0 -0
  175. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/management-commands.md +0 -0
  176. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/metrics.en.md +0 -0
  177. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/metrics.md +0 -0
  178. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/mfa.en.md +0 -0
  179. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/mfa.md +0 -0
  180. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/model-weights.en.md +0 -0
  181. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/model-weights.md +0 -0
  182. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/modelops.en.md +0 -0
  183. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/modelops.md +0 -0
  184. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/models.en.md +0 -0
  185. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/models.md +0 -0
  186. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/multi-tenant.en.md +0 -0
  187. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/multi-tenant.md +0 -0
  188. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/oauth.en.md +0 -0
  189. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/oauth.md +0 -0
  190. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/observability.en.md +0 -0
  191. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/observability.md +0 -0
  192. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/offline-sync.en.md +0 -0
  193. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/offline-sync.md +0 -0
  194. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/openapi-client.en.md +0 -0
  195. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/openapi-client.md +0 -0
  196. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/openapi-errors.en.md +0 -0
  197. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/openapi-errors.md +0 -0
  198. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/openpix.en.md +0 -0
  199. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/openpix.md +0 -0
  200. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/outbox.en.md +0 -0
  201. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/outbox.md +0 -0
  202. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/pdf.en.md +0 -0
  203. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/pdf.md +0 -0
  204. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/permission-guards.en.md +0 -0
  205. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/permission-guards.md +0 -0
  206. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/push.en.md +0 -0
  207. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/push.md +0 -0
  208. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/query-plans.en.md +0 -0
  209. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/query-plans.md +0 -0
  210. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/queue-tasks.en.md +0 -0
  211. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/queue-tasks.md +0 -0
  212. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/react-spa.en.md +0 -0
  213. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/react-spa.md +0 -0
  214. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/realtime.en.md +0 -0
  215. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/realtime.md +0 -0
  216. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/refresh-tokens.en.md +0 -0
  217. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/refresh-tokens.md +0 -0
  218. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/reviews.en.md +0 -0
  219. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/reviews.md +0 -0
  220. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/security.en.md +0 -0
  221. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/security.md +0 -0
  222. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/sessions.en.md +0 -0
  223. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/sessions.md +0 -0
  224. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/spreadsheets.en.md +0 -0
  225. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/spreadsheets.md +0 -0
  226. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/sse.en.md +0 -0
  227. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/sse.md +0 -0
  228. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/storage.en.md +0 -0
  229. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/storage.md +0 -0
  230. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/stored-files.en.md +0 -0
  231. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/stored-files.md +0 -0
  232. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/system-checks.en.md +0 -0
  233. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/system-checks.md +0 -0
  234. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/tempestweb-frontend.en.md +0 -0
  235. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/tempestweb-frontend.md +0 -0
  236. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/testing.en.md +0 -0
  237. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/testing.md +0 -0
  238. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/text-search.en.md +0 -0
  239. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/text-search.md +0 -0
  240. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/transactions.en.md +0 -0
  241. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/transactions.md +0 -0
  242. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/typing.en.md +0 -0
  243. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/typing.md +0 -0
  244. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/ui-css.en.md +0 -0
  245. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/ui-css.md +0 -0
  246. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/ui-forms.en.md +0 -0
  247. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/ui-forms.md +0 -0
  248. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/ui.en.md +0 -0
  249. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/ui.md +0 -0
  250. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/uploads.en.md +0 -0
  251. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/uploads.md +0 -0
  252. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/utilities.en.md +0 -0
  253. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/utilities.md +0 -0
  254. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/vision.en.md +0 -0
  255. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/vision.md +0 -0
  256. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/webauthn.en.md +0 -0
  257. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/webauthn.md +0 -0
  258. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/webpush.en.md +0 -0
  259. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/webpush.md +0 -0
  260. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/websocket.en.md +0 -0
  261. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/recipes/websocket.md +0 -0
  262. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/reference.en.md +0 -0
  263. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/ssr.en.md +0 -0
  264. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/ssr.md +0 -0
  265. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/tutorial.en.md +0 -0
  266. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/docs/tutorial.md +0 -0
  267. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/mkdocs_hooks/llmstxt.py +0 -0
  268. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/planning/genai/README.md +0 -0
  269. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/planning/genai/manual-validation.md +0 -0
  270. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/planning/genai/phase-0.md +0 -0
  271. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/planning/genai/phase-1.md +0 -0
  272. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/planning/genai/phase-2.md +0 -0
  273. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/planning/genai/phase-3.md +0 -0
  274. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/planning/genai/validation-strategy.md +0 -0
  275. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/scripts/extract_recipe.py +0 -0
  276. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/scripts/regen_openpix.py +0 -0
  277. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/admin/__init__.py +0 -0
  278. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/admin/actions.py +0 -0
  279. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/admin/auth.py +0 -0
  280. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/admin/config.py +0 -0
  281. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/admin/dashboard.py +0 -0
  282. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/admin/discovery.py +0 -0
  283. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/admin/forms.py +0 -0
  284. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/admin/permissions.py +0 -0
  285. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/admin/router.py +0 -0
  286. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/admin/session.py +0 -0
  287. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/admin/site.py +0 -0
  288. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/admin/sql_shell.py +0 -0
  289. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/admin/static/admin.css +0 -0
  290. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/admin/templates/autocomplete.html +0 -0
  291. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/admin/templates/base.html +0 -0
  292. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/admin/templates/dashboard.html +0 -0
  293. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/admin/templates/detail.html +0 -0
  294. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/admin/templates/form.html +0 -0
  295. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/admin/templates/import.html +0 -0
  296. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/admin/templates/list.html +0 -0
  297. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/admin/templates/login.html +0 -0
  298. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/admin/templates/logs.html +0 -0
  299. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/admin/templates/mfa.html +0 -0
  300. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/admin/templates/sql_shell.html +0 -0
  301. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/admin/theme.py +0 -0
  302. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/agents/__init__.py +0 -0
  303. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/agents/agent.py +0 -0
  304. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/agents/builtin.py +0 -0
  305. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/agents/fact_stores.py +0 -0
  306. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/agents/loop.py +0 -0
  307. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/agents/memory.py +0 -0
  308. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/agents/multi.py +0 -0
  309. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/agents/protocols.py +0 -0
  310. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/agents/router.py +0 -0
  311. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/agents/schemas.py +0 -0
  312. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/agents/skills.py +0 -0
  313. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/agents/storage.py +0 -0
  314. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/agents/structured.py +0 -0
  315. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/agents/testing.py +0 -0
  316. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/agents/tools.py +0 -0
  317. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/agents/typed.py +0 -0
  318. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/api/__init__.py +0 -0
  319. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/api/cookies.py +0 -0
  320. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/api/dependencies/__init__.py +0 -0
  321. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/api/dependencies/auth.py +0 -0
  322. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/api/error_docs.py +0 -0
  323. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/api/handlers.py +0 -0
  324. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/api/middlewares/__init__.py +0 -0
  325. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/api/middlewares/body_size.py +0 -0
  326. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/api/middlewares/cors.py +0 -0
  327. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/api/middlewares/csrf.py +0 -0
  328. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/api/middlewares/graceful.py +0 -0
  329. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/api/middlewares/idempotency.py +0 -0
  330. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/api/middlewares/quota.py +0 -0
  331. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/api/middlewares/rate_limit.py +0 -0
  332. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/api/middlewares/request_id.py +0 -0
  333. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/api/middlewares/response_cache.py +0 -0
  334. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/api/oauth.py +0 -0
  335. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/api/routers/__init__.py +0 -0
  336. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/api/routers/health.py +0 -0
  337. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/api/routers/logs.py +0 -0
  338. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/api/routers/metrics.py +0 -0
  339. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/api/routers/tool_spec.py +0 -0
  340. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/api/server.py +0 -0
  341. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/api/spa.py +0 -0
  342. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/api/static.py +0 -0
  343. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/api/tracing.py +0 -0
  344. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/api/webhooks.py +0 -0
  345. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/artifacts/__init__.py +0 -0
  346. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/artifacts/actions.py +0 -0
  347. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/artifacts/digest.py +0 -0
  348. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/artifacts/model.py +0 -0
  349. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/artifacts/registry.py +0 -0
  350. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/__init__.py +0 -0
  351. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/firebase.py +0 -0
  352. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/guards.py +0 -0
  353. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/introspection.py +0 -0
  354. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/locale.py +0 -0
  355. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/page_renderer.py +0 -0
  356. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/router.py +0 -0
  357. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/schemas.py +0 -0
  358. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/service.py +0 -0
  359. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/templates/en-US/activation.html +0 -0
  360. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/templates/en-US/activation_error.html +0 -0
  361. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/templates/en-US/activation_success.html +0 -0
  362. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/templates/en-US/email_change.html +0 -0
  363. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/templates/en-US/email_change_error.html +0 -0
  364. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/templates/en-US/email_change_success.html +0 -0
  365. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/templates/en-US/email_changed_notice.html +0 -0
  366. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/templates/en-US/email_verification.html +0 -0
  367. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/templates/en-US/email_verification_error.html +0 -0
  368. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/templates/en-US/email_verification_success.html +0 -0
  369. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/templates/en-US/password_reset.html +0 -0
  370. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/templates/en-US/password_reset_error.html +0 -0
  371. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/templates/en-US/password_reset_form.html +0 -0
  372. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/templates/en-US/password_reset_success.html +0 -0
  373. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/templates/pt-BR/activation.html +0 -0
  374. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/templates/pt-BR/activation_error.html +0 -0
  375. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/templates/pt-BR/activation_success.html +0 -0
  376. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/templates/pt-BR/email_change.html +0 -0
  377. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/templates/pt-BR/email_change_error.html +0 -0
  378. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/templates/pt-BR/email_change_success.html +0 -0
  379. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/templates/pt-BR/email_changed_notice.html +0 -0
  380. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/templates/pt-BR/email_verification.html +0 -0
  381. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/templates/pt-BR/email_verification_error.html +0 -0
  382. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/templates/pt-BR/email_verification_success.html +0 -0
  383. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/templates/pt-BR/password_reset.html +0 -0
  384. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/templates/pt-BR/password_reset_error.html +0 -0
  385. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/templates/pt-BR/password_reset_form.html +0 -0
  386. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/templates/pt-BR/password_reset_success.html +0 -0
  387. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/token_delivery.py +0 -0
  388. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/auth/webauthn.py +0 -0
  389. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/authz/__init__.py +0 -0
  390. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/authz/dependencies.py +0 -0
  391. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/authz/permissions.py +0 -0
  392. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/authz/requires.py +0 -0
  393. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cache/__init__.py +0 -0
  394. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cache/decorator.py +0 -0
  395. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cache/invalidation.py +0 -0
  396. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cache/redis_manager.py +0 -0
  397. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/chat/__init__.py +0 -0
  398. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/chat/models.py +0 -0
  399. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/chat/router.py +0 -0
  400. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/chat/schemas.py +0 -0
  401. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/chat/service.py +0 -0
  402. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/checks/__init__.py +0 -0
  403. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/checks/builtins.py +0 -0
  404. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/checks/messages.py +0 -0
  405. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/checks/registry.py +0 -0
  406. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/__init__.py +0 -0
  407. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/_templates/CLAUDE.md.tmpl +0 -0
  408. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/_templates/Dockerfile.tmpl +0 -0
  409. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/_templates/README.md.tmpl +0 -0
  410. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/_templates/dockerignore.tmpl +0 -0
  411. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/_templates/env.example.tmpl +0 -0
  412. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/_templates/gitignore.tmpl +0 -0
  413. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/_templates/main.py.tmpl +0 -0
  414. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/_templates/pyproject.toml.tmpl +0 -0
  415. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/_templates/src/__init__.py.tmpl +0 -0
  416. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/_templates/src/api/__init__.py.tmpl +0 -0
  417. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/_templates/src/api/app.py.tmpl +0 -0
  418. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/_templates/src/api/dependencies/__init__.py.tmpl +0 -0
  419. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/_templates/src/api/dependencies/auth.py.tmpl +0 -0
  420. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/_templates/src/api/dependencies/resources.py.tmpl +0 -0
  421. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/_templates/src/api/routers/__init__.py.tmpl +0 -0
  422. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/_templates/src/controllers/__init__.py.tmpl +0 -0
  423. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/_templates/src/core/__init__.py.tmpl +0 -0
  424. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/_templates/src/core/exceptions.py.tmpl +0 -0
  425. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/_templates/src/core/settings.py.tmpl +0 -0
  426. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/_templates/src/db/__init__.py.tmpl +0 -0
  427. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/_templates/src/db/models/__init__.py.tmpl +0 -0
  428. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/_templates/src/db/models/user.py.tmpl +0 -0
  429. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/_templates/src/db/repositories/__init__.py.tmpl +0 -0
  430. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/_templates/src/schemas/__init__.py.tmpl +0 -0
  431. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/_templates/src/server.py.tmpl +0 -0
  432. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/_templates/src/services/__init__.py.tmpl +0 -0
  433. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/_templates/src/utils/__init__.py.tmpl +0 -0
  434. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/_templates/tests/__init__.py.tmpl +0 -0
  435. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/_templates/tests/test_smoke.py.tmpl +0 -0
  436. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/commands.py +0 -0
  437. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/config.py +0 -0
  438. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/db.py +0 -0
  439. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/docker_compose.py +0 -0
  440. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/generate.py +0 -0
  441. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/lint.py +0 -0
  442. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/main.py +0 -0
  443. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/model.py +0 -0
  444. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/new.py +0 -0
  445. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/openapi_errors.py +0 -0
  446. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/openapi_fix.py +0 -0
  447. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/pdf.py +0 -0
  448. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/permissions.py +0 -0
  449. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/pr_prompt.py +0 -0
  450. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/secrets.py +0 -0
  451. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/src_layers.py +0 -0
  452. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/user.py +0 -0
  453. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/cli/voice.py +0 -0
  454. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/controllers/__init__.py +0 -0
  455. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/controllers/base.py +0 -0
  456. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/core/__init__.py +0 -0
  457. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/core/context.py +0 -0
  458. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/core/enums.py +0 -0
  459. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/core/logging.py +0 -0
  460. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/core/typed.py +0 -0
  461. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/db/__init__.py +0 -0
  462. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/db/_alembic_templates/__init__.py +0 -0
  463. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/db/_alembic_templates/env.py.template +0 -0
  464. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/db/alembic_hooks.py +0 -0
  465. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/db/audit.py +0 -0
  466. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/db/backup.py +0 -0
  467. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/db/connection.py +0 -0
  468. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/db/device_token_model.py +0 -0
  469. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/db/enum_migrations.py +0 -0
  470. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/db/enums.py +0 -0
  471. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/db/explain.py +0 -0
  472. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/db/expressions.py +0 -0
  473. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/db/migrations.py +0 -0
  474. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/db/mixins.py +0 -0
  475. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/db/model.py +0 -0
  476. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/db/outbox.py +0 -0
  477. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/db/repository.py +0 -0
  478. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/db/search.py +0 -0
  479. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/db/signals.py +0 -0
  480. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/db/slow_query.py +0 -0
  481. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/db/tenant.py +0 -0
  482. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/db/transaction.py +0 -0
  483. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/db/user_model.py +0 -0
  484. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/db/user_recovery_code_model.py +0 -0
  485. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/db/user_refresh_token_model.py +0 -0
  486. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/db/user_token_model.py +0 -0
  487. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/db/user_webauthn_credential_model.py +0 -0
  488. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/db/voice_profile_model.py +0 -0
  489. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/db/webpush_subscription_model.py +0 -0
  490. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/exceptions/__init__.py +0 -0
  491. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/exceptions/base.py +0 -0
  492. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/exceptions/conflict.py +0 -0
  493. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/exceptions/factories.py +0 -0
  494. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/exceptions/forbidden.py +0 -0
  495. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/exceptions/i18n.py +0 -0
  496. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/exceptions/jwt.py +0 -0
  497. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/exceptions/not_found.py +0 -0
  498. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/exceptions/too_many_requests.py +0 -0
  499. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/exceptions/unauthorized.py +0 -0
  500. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/exceptions/upload.py +0 -0
  501. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/exceptions/validation.py +0 -0
  502. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/faces/__init__.py +0 -0
  503. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/faces/detector.py +0 -0
  504. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/faces/geometry.py +0 -0
  505. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/faces/models.py +0 -0
  506. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/faces/recognizer.py +0 -0
  507. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/faces/schemas.py +0 -0
  508. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/flags/__init__.py +0 -0
  509. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/flags/backends.py +0 -0
  510. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/flags/dependencies.py +0 -0
  511. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/flags/service.py +0 -0
  512. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/__init__.py +0 -0
  513. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/admin.py +0 -0
  514. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/audio/__init__.py +0 -0
  515. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/audio/conversation.py +0 -0
  516. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/audio/diarization.py +0 -0
  517. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/audio/language.py +0 -0
  518. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/audio/profiles.py +0 -0
  519. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/audio/router.py +0 -0
  520. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/audio/schemas.py +0 -0
  521. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/audio/speaker_count.py +0 -0
  522. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/audio/stt.py +0 -0
  523. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/audio/tts.py +0 -0
  524. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/audio/voiceprint.py +0 -0
  525. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/batching.py +0 -0
  526. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/catalog.py +0 -0
  527. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/embeddings.py +0 -0
  528. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/generation_cache.py +0 -0
  529. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/hardware.py +0 -0
  530. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/hub.py +0 -0
  531. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/image.py +0 -0
  532. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/inventory.py +0 -0
  533. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/metrics.py +0 -0
  534. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/moderation.py +0 -0
  535. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/ollama.py +0 -0
  536. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/onnx_embed.py +0 -0
  537. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/pipeline.py +0 -0
  538. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/rag/__init__.py +0 -0
  539. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/rag/chroma.py +0 -0
  540. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/rag/chunking.py +0 -0
  541. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/rag/context.py +0 -0
  542. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/rag/extract.py +0 -0
  543. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/rag/fusion.py +0 -0
  544. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/rag/hybrid.py +0 -0
  545. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/rag/pdf.py +0 -0
  546. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/rag/rerank.py +0 -0
  547. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/rag/retriever.py +0 -0
  548. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/rag/schemas.py +0 -0
  549. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/rag/search.py +0 -0
  550. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/rag/vectorstore.py +0 -0
  551. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/registry.py +0 -0
  552. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/router.py +0 -0
  553. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/schemas.py +0 -0
  554. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/structured.py +0 -0
  555. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/text.py +0 -0
  556. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/tokens.py +0 -0
  557. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/tracing.py +0 -0
  558. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/genai/vision_text.py +0 -0
  559. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/geo/__init__.py +0 -0
  560. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/geo/br.py +0 -0
  561. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/geo/db.py +0 -0
  562. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/geo/distance.py +0 -0
  563. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/geo/enums.py +0 -0
  564. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/geo/estimate.py +0 -0
  565. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/geo/geocoding.py +0 -0
  566. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/geo/geometry.py +0 -0
  567. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/geo/polyline.py +0 -0
  568. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/geo/routing.py +0 -0
  569. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/geo/schemas.py +0 -0
  570. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/integrations/payment/openpix/__init__.py +0 -0
  571. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/integrations/payment/openpix/client.py +0 -0
  572. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/integrations/payment/openpix/environment.py +0 -0
  573. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/integrations/payment/openpix/events.py +0 -0
  574. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/integrations/payment/openpix/money.py +0 -0
  575. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/integrations/payment/openpix/schemas.py +0 -0
  576. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/integrations/payment/openpix/webhooks.py +0 -0
  577. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/modelops/__init__.py +0 -0
  578. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/modelops/_fs.py +0 -0
  579. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/modelops/bench.py +0 -0
  580. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/modelops/compact.py +0 -0
  581. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/modelops/edge.py +0 -0
  582. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/modelops/energy.py +0 -0
  583. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/modelops/export.py +0 -0
  584. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/modelops/monitoring.py +0 -0
  585. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/modelops/pickled.py +0 -0
  586. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/modelops/quantize.py +0 -0
  587. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/modelops/ranking.py +0 -0
  588. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/modelops/router.py +0 -0
  589. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/modelops/schemas.py +0 -0
  590. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/modelops/serving.py +0 -0
  591. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/modelops/sklearn.py +0 -0
  592. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/modelops/static.py +0 -0
  593. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/openapi/__init__.py +0 -0
  594. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/openapi/emit_schemas.py +0 -0
  595. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/openapi/generate.py +0 -0
  596. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/openapi/loader.py +0 -0
  597. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/openapi/naming.py +0 -0
  598. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/openapi/source.py +0 -0
  599. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/pdf/__init__.py +0 -0
  600. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/pdf/assets.py +0 -0
  601. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/pdf/documents.py +0 -0
  602. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/pdf/formatting.py +0 -0
  603. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/pdf/reader.py +0 -0
  604. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/pdf/renderer.py +0 -0
  605. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/pdf/router.py +0 -0
  606. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/pdf/templates/_base.html +0 -0
  607. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/pdf/templates/_party.html +0 -0
  608. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/pdf/templates/_styles.css +0 -0
  609. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/pdf/templates/contract.html +0 -0
  610. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/pdf/templates/quote.html +0 -0
  611. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/pdf/templates/receipt.html +0 -0
  612. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/pdf/templates/report.html +0 -0
  613. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/pdf/templates/voucher.html +0 -0
  614. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/push/__init__.py +0 -0
  615. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/push/dispatcher.py +0 -0
  616. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/push/router.py +0 -0
  617. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/push/schemas.py +0 -0
  618. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/push/service.py +0 -0
  619. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/push/transports/__init__.py +0 -0
  620. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/push/transports/fcm.py +0 -0
  621. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/push/transports/webpush.py +0 -0
  622. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/py.typed +0 -0
  623. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/queue/__init__.py +0 -0
  624. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/queue/broker.py +0 -0
  625. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/queue/consumer.py +0 -0
  626. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/queue/dedup.py +0 -0
  627. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/queue/manager.py +0 -0
  628. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/queue/publisher.py +0 -0
  629. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/queue/reliability.py +0 -0
  630. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/queue/topology.py +0 -0
  631. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/queue/tracing.py +0 -0
  632. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/reviews/__init__.py +0 -0
  633. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/reviews/models.py +0 -0
  634. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/reviews/router.py +0 -0
  635. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/reviews/schemas.py +0 -0
  636. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/reviews/service.py +0 -0
  637. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/schemas/__init__.py +0 -0
  638. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/schemas/base.py +0 -0
  639. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/schemas/errors.py +0 -0
  640. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/schemas/link_headers.py +0 -0
  641. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/schemas/logs.py +0 -0
  642. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/schemas/pagination.py +0 -0
  643. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/schemas/response.py +0 -0
  644. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/services/__init__.py +0 -0
  645. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/services/base.py +0 -0
  646. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/services/file_mixin.py +0 -0
  647. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/sessions/__init__.py +0 -0
  648. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/sessions/dependencies.py +0 -0
  649. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/sessions/middleware.py +0 -0
  650. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/sessions/router.py +0 -0
  651. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/sessions/schemas.py +0 -0
  652. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/sessions/service.py +0 -0
  653. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/sessions/store.py +0 -0
  654. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/settings/__init__.py +0 -0
  655. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/settings/base.py +0 -0
  656. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/settings/mixins.py +0 -0
  657. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/spreadsheet/__init__.py +0 -0
  658. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/spreadsheet/formats.py +0 -0
  659. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/spreadsheet/styles.py +0 -0
  660. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/spreadsheet/writer.py +0 -0
  661. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/sse/__init__.py +0 -0
  662. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/sse/broker.py +0 -0
  663. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/sse/event_stream.py +0 -0
  664. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/ssr/__init__.py +0 -0
  665. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/ssr/_static/htmx.min.js +0 -0
  666. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/ssr/assets.py +0 -0
  667. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/ssr/attributes.py +0 -0
  668. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/ssr/page.py +0 -0
  669. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/ssr/response.py +0 -0
  670. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/ssr/webapp.py +0 -0
  671. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/storage/__init__.py +0 -0
  672. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/storage/minio_client.py +0 -0
  673. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/tasks/__init__.py +0 -0
  674. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/tasks/cron.py +0 -0
  675. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/tasks/dead_letter.py +0 -0
  676. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/tasks/jobs.py +0 -0
  677. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/tasks/manager.py +0 -0
  678. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/tasks/observability.py +0 -0
  679. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/tasks/oop.py +0 -0
  680. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/tasks/queue.py +0 -0
  681. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/tasks/scheduler.py +0 -0
  682. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/testing/__init__.py +0 -0
  683. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/testing/database.py +0 -0
  684. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/testing/factories.py +0 -0
  685. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/ui/__init__.py +0 -0
  686. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/ui/_core.py +0 -0
  687. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/ui/components/__init__.py +0 -0
  688. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/ui/components/alert.py +0 -0
  689. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/ui/components/card.py +0 -0
  690. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/ui/components/classes.py +0 -0
  691. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/ui/components/empty.py +0 -0
  692. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/ui/components/nav.py +0 -0
  693. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/ui/components/pagination.py +0 -0
  694. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/ui/components/styles.py +0 -0
  695. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/ui/components/table.py +0 -0
  696. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/ui/css/__init__.py +0 -0
  697. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/ui/css/router.py +0 -0
  698. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/ui/css/rules.py +0 -0
  699. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/ui/css/tokens.py +0 -0
  700. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/ui/forms/__init__.py +0 -0
  701. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/ui/forms/introspect.py +0 -0
  702. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/ui/forms/parse.py +0 -0
  703. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/ui/forms/render.py +0 -0
  704. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/ui/forms/spec.py +0 -0
  705. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/ui/forms/styles.py +0 -0
  706. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/ui/layout/__init__.py +0 -0
  707. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/ui/layout/grid.py +0 -0
  708. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/ui/layout/shell.py +0 -0
  709. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/ui/pages/__init__.py +0 -0
  710. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/ui/pages/page.py +0 -0
  711. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/ui/stylesheet.py +0 -0
  712. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/utils/client_ip.py +0 -0
  713. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/utils/currency.py +0 -0
  714. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/utils/data/br_locations.json +0 -0
  715. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/utils/datetime.py +0 -0
  716. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/utils/dict.py +0 -0
  717. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/utils/download.py +0 -0
  718. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/utils/email.py +0 -0
  719. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/utils/fields.py +0 -0
  720. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/utils/file_store.py +0 -0
  721. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/utils/http_client.py +0 -0
  722. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/utils/jwt.py +0 -0
  723. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/utils/locations.py +0 -0
  724. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/utils/log.py +0 -0
  725. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/utils/metrics.py +0 -0
  726. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/utils/naming.py +0 -0
  727. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/utils/opaque_token.py +0 -0
  728. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/utils/password.py +0 -0
  729. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/utils/regex.py +0 -0
  730. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/utils/storage_backends.py +0 -0
  731. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/utils/throttle.py +0 -0
  732. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/utils/token_types.py +0 -0
  733. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/utils/totp.py +0 -0
  734. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/utils/upload.py +0 -0
  735. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/vision/__init__.py +0 -0
  736. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/vision/mapping.py +0 -0
  737. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/vision/router.py +0 -0
  738. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/vision/schemas.py +0 -0
  739. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/webpush/__init__.py +0 -0
  740. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/webpush/dispatcher.py +0 -0
  741. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/webpush/router.py +0 -0
  742. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/webpush/schemas.py +0 -0
  743. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/webpush/service.py +0 -0
  744. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/websockets/__init__.py +0 -0
  745. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/websockets/hub.py +0 -0
  746. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/websockets/router.py +0 -0
  747. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tempest_fastapi_sdk/websockets/schemas.py +0 -0
  748. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/__init__.py +0 -0
  749. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/admin/__init__.py +0 -0
  750. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/admin/test_actions.py +0 -0
  751. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/admin/test_audit_viewer.py +0 -0
  752. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/admin/test_auth.py +0 -0
  753. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/admin/test_autocomplete_fk.py +0 -0
  754. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/admin/test_csv_import.py +0 -0
  755. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/admin/test_dashboard_cards.py +0 -0
  756. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/admin/test_discovery.py +0 -0
  757. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/admin/test_forms.py +0 -0
  758. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/admin/test_inlines.py +0 -0
  759. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/admin/test_lenses.py +0 -0
  760. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/admin/test_logs_nav.py +0 -0
  761. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/admin/test_logs_traceback_export.py +0 -0
  762. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/admin/test_mfa.py +0 -0
  763. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/admin/test_rbac.py +0 -0
  764. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/admin/test_rich_filters.py +0 -0
  765. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/admin/test_router.py +0 -0
  766. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/admin/test_site.py +0 -0
  767. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/admin/test_sql_shell.py +0 -0
  768. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/admin/test_sql_shell_page.py +0 -0
  769. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/admin/test_theme.py +0 -0
  770. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/admin/test_upload_field.py +0 -0
  771. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/admin/test_user_model.py +0 -0
  772. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/admin/test_widgets_json_time.py +0 -0
  773. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/agents/__init__.py +0 -0
  774. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/agents/test_agent.py +0 -0
  775. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/agents/test_agent_router.py +0 -0
  776. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/agents/test_builtin_tools.py +0 -0
  777. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/agents/test_fact_stores.py +0 -0
  778. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/agents/test_memory.py +0 -0
  779. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/agents/test_multi_agent.py +0 -0
  780. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/agents/test_skills.py +0 -0
  781. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/agents/test_typed_tools.py +0 -0
  782. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/api/__init__.py +0 -0
  783. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/api/test_body_size.py +0 -0
  784. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/api/test_business_metrics.py +0 -0
  785. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/api/test_cookies.py +0 -0
  786. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/api/test_cors.py +0 -0
  787. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/api/test_csrf.py +0 -0
  788. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/api/test_dependencies_auth.py +0 -0
  789. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/api/test_error_docs.py +0 -0
  790. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/api/test_graceful.py +0 -0
  791. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/api/test_handlers.py +0 -0
  792. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/api/test_health_router.py +0 -0
  793. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/api/test_idempotency.py +0 -0
  794. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/api/test_jwt_dependency.py +0 -0
  795. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/api/test_logs_router.py +0 -0
  796. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/api/test_oauth.py +0 -0
  797. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/api/test_outbound_webhooks.py +0 -0
  798. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/api/test_prometheus.py +0 -0
  799. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/api/test_quota.py +0 -0
  800. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/api/test_rate_limit.py +0 -0
  801. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/api/test_rate_limit_extras.py +0 -0
  802. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/api/test_request_id_middleware.py +0 -0
  803. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/api/test_response_cache.py +0 -0
  804. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/api/test_role_dependency.py +0 -0
  805. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/api/test_server.py +0 -0
  806. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/api/test_spa.py +0 -0
  807. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/api/test_static.py +0 -0
  808. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/api/test_tool_spec.py +0 -0
  809. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/api/test_tracing.py +0 -0
  810. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/api/test_webhooks.py +0 -0
  811. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/api/test_webhooks_rsa.py +0 -0
  812. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/artifacts/__init__.py +0 -0
  813. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/artifacts/support.py +0 -0
  814. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/artifacts/test_actions.py +0 -0
  815. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/artifacts/test_digest.py +0 -0
  816. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/artifacts/test_registry.py +0 -0
  817. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/auth/__init__.py +0 -0
  818. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/auth/test_cookie_delivery.py +0 -0
  819. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/auth/test_email_change.py +0 -0
  820. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/auth/test_firebase.py +0 -0
  821. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/auth/test_guards.py +0 -0
  822. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/auth/test_introspection.py +0 -0
  823. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/auth/test_locale.py +0 -0
  824. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/auth/test_me.py +0 -0
  825. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/auth/test_mfa.py +0 -0
  826. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/auth/test_refresh.py +0 -0
  827. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/auth/test_refresh_db.py +0 -0
  828. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/auth/test_router_session_sharing.py +0 -0
  829. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/auth/test_service.py +0 -0
  830. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/auth/test_webauthn.py +0 -0
  831. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/auth/webauthn_authenticator.py +0 -0
  832. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/authz/__init__.py +0 -0
  833. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/authz/test_dependencies.py +0 -0
  834. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/authz/test_permissions.py +0 -0
  835. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/authz/test_requires.py +0 -0
  836. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/cache/__init__.py +0 -0
  837. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/cache/test_decorator.py +0 -0
  838. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/cache/test_invalidation.py +0 -0
  839. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/cache/test_redis_manager.py +0 -0
  840. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/chat/__init__.py +0 -0
  841. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/chat/test_chat.py +0 -0
  842. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/checks/__init__.py +0 -0
  843. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/checks/test_check_config_cli.py +0 -0
  844. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/checks/test_checks.py +0 -0
  845. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/cli/__init__.py +0 -0
  846. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/cli/test_config.py +0 -0
  847. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/cli/test_db.py +0 -0
  848. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/cli/test_db_seed.py +0 -0
  849. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/cli/test_docker_compose.py +0 -0
  850. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/cli/test_dockerfile_spa.py +0 -0
  851. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/cli/test_generate.py +0 -0
  852. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/cli/test_main.py +0 -0
  853. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/cli/test_management_commands.py +0 -0
  854. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/cli/test_model.py +0 -0
  855. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/cli/test_openapi_errors.py +0 -0
  856. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/cli/test_openapi_errors_bare_calls.py +0 -0
  857. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/cli/test_openapi_errors_callgraph.py +0 -0
  858. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/cli/test_openapi_errors_configured.py +0 -0
  859. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/cli/test_openapi_errors_delegation.py +0 -0
  860. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/cli/test_openapi_fix.py +0 -0
  861. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/cli/test_permissions.py +0 -0
  862. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/cli/test_project_claude_md.py +0 -0
  863. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/cli/test_quality_gate_integration.py +0 -0
  864. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/cli/test_scaffold_runtime.py +0 -0
  865. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/cli/test_secrets.py +0 -0
  866. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/cli/test_user.py +0 -0
  867. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/conftest.py +0 -0
  868. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/controllers/__init__.py +0 -0
  869. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/controllers/test_base.py +0 -0
  870. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/controllers/test_generic_bounds.py +0 -0
  871. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/core/__init__.py +0 -0
  872. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/core/test_context.py +0 -0
  873. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/core/test_enums.py +0 -0
  874. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/core/test_logging.py +0 -0
  875. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/core/test_typed.py +0 -0
  876. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/db/__init__.py +0 -0
  877. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/db/test_alembic_hooks.py +0 -0
  878. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/db/test_audit.py +0 -0
  879. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/db/test_backup.py +0 -0
  880. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/db/test_bulk_ops.py +0 -0
  881. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/db/test_connection.py +0 -0
  882. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/db/test_eager_load.py +0 -0
  883. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/db/test_enum_column.py +0 -0
  884. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/db/test_enum_migrations.py +0 -0
  885. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/db/test_explain.py +0 -0
  886. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/db/test_expressions.py +0 -0
  887. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/db/test_migrations.py +0 -0
  888. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/db/test_mixins.py +0 -0
  889. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/db/test_model.py +0 -0
  890. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/db/test_outbox.py +0 -0
  891. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/db/test_repository.py +0 -0
  892. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/db/test_repository_conflict_exceptions.py +0 -0
  893. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/db/test_safe_upgrade.py +0 -0
  894. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/db/test_search.py +0 -0
  895. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/db/test_signals.py +0 -0
  896. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/db/test_slow_query.py +0 -0
  897. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/db/test_sqlite_wal.py +0 -0
  898. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/db/test_tenant.py +0 -0
  899. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/db/test_transaction.py +0 -0
  900. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/exceptions/__init__.py +0 -0
  901. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/exceptions/test_exceptions.py +0 -0
  902. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/exceptions/test_factories.py +0 -0
  903. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/exceptions/test_i18n.py +0 -0
  904. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/exceptions/test_inherited_code_warning.py +0 -0
  905. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/faces/__init__.py +0 -0
  906. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/faces/test_faces.py +0 -0
  907. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/flags/__init__.py +0 -0
  908. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/flags/test_flags.py +0 -0
  909. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/__init__.py +0 -0
  910. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/_eval/__init__.py +0 -0
  911. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/_eval/corpus.py +0 -0
  912. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/audio/__init__.py +0 -0
  913. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/audio/test_audio.py +0 -0
  914. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/audio/test_concurrency.py +0 -0
  915. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/audio/test_diarization.py +0 -0
  916. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/audio/test_language.py +0 -0
  917. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/audio/test_profiles.py +0 -0
  918. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/audio/test_speaker_count.py +0 -0
  919. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/audio/test_voice_router.py +0 -0
  920. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/conftest.py +0 -0
  921. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/test_batching.py +0 -0
  922. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/test_chat_memory.py +0 -0
  923. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/test_embedding_cache_redis.py +0 -0
  924. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/test_embeddings.py +0 -0
  925. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/test_env_defaults.py +0 -0
  926. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/test_eval_harness.py +0 -0
  927. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/test_genai_metrics.py +0 -0
  928. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/test_genai_observability.py +0 -0
  929. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/test_generation_cache.py +0 -0
  930. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/test_generation_config.py +0 -0
  931. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/test_gpu_validation.py +0 -0
  932. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/test_hardware.py +0 -0
  933. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/test_hub.py +0 -0
  934. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/test_hybrid.py +0 -0
  935. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/test_image.py +0 -0
  936. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/test_inventory.py +0 -0
  937. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/test_moderation.py +0 -0
  938. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/test_ollama.py +0 -0
  939. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/test_onnx_embed.py +0 -0
  940. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/test_pipeline.py +0 -0
  941. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/test_pipeline_integration.py +0 -0
  942. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/test_precision_kwarg.py +0 -0
  943. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/test_rag.py +0 -0
  944. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/test_refinements.py +0 -0
  945. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/test_rerank.py +0 -0
  946. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/test_router.py +0 -0
  947. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/test_structured.py +0 -0
  948. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/test_text.py +0 -0
  949. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/test_textgen_embed_metrics.py +0 -0
  950. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/test_tokens.py +0 -0
  951. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/test_tracing.py +0 -0
  952. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/test_vectorstore.py +0 -0
  953. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/genai/test_vision_text.py +0 -0
  954. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/geo/__init__.py +0 -0
  955. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/geo/test_br.py +0 -0
  956. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/geo/test_db.py +0 -0
  957. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/geo/test_distance.py +0 -0
  958. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/geo/test_estimate.py +0 -0
  959. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/geo/test_geocoding.py +0 -0
  960. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/geo/test_geometry.py +0 -0
  961. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/geo/test_polyline.py +0 -0
  962. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/geo/test_routing.py +0 -0
  963. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/geo/test_routing_extra.py +0 -0
  964. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/integrations/__init__.py +0 -0
  965. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/integrations/payment/__init__.py +0 -0
  966. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/integrations/payment/openpix/__init__.py +0 -0
  967. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/integrations/payment/openpix/test_generated_drift.py +0 -0
  968. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/integrations/payment/openpix/test_openpix.py +0 -0
  969. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/modelops/__init__.py +0 -0
  970. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/modelops/conftest.py +0 -0
  971. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/modelops/test_bench.py +0 -0
  972. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/modelops/test_compact.py +0 -0
  973. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/modelops/test_edge.py +0 -0
  974. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/modelops/test_energy.py +0 -0
  975. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/modelops/test_export.py +0 -0
  976. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/modelops/test_monitoring.py +0 -0
  977. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/modelops/test_pickled.py +0 -0
  978. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/modelops/test_quantize.py +0 -0
  979. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/modelops/test_ranking.py +0 -0
  980. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/modelops/test_serving.py +0 -0
  981. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/modelops/test_sklearn_export.py +0 -0
  982. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/modelops/test_static.py +0 -0
  983. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/openapi/__init__.py +0 -0
  984. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/openapi/conftest.py +0 -0
  985. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/openapi/test_generate.py +0 -0
  986. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/openapi/test_hostile_spec.py +0 -0
  987. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/openapi/test_loader.py +0 -0
  988. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/openapi/test_naming.py +0 -0
  989. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/openapi/test_parse.py +0 -0
  990. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/pdf/__init__.py +0 -0
  991. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/pdf/test_assets.py +0 -0
  992. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/pdf/test_formatting.py +0 -0
  993. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/pdf/test_reader.py +0 -0
  994. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/pdf/test_renderer.py +0 -0
  995. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/pdf/test_router_and_cli.py +0 -0
  996. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/push/__init__.py +0 -0
  997. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/push/test_router.py +0 -0
  998. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/push/test_service.py +0 -0
  999. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/push/test_transports.py +0 -0
  1000. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/queue/__init__.py +0 -0
  1001. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/queue/test_broker.py +0 -0
  1002. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/queue/test_consumer.py +0 -0
  1003. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/queue/test_dedup.py +0 -0
  1004. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/queue/test_manager.py +0 -0
  1005. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/queue/test_prefetch.py +0 -0
  1006. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/queue/test_publisher.py +0 -0
  1007. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/queue/test_reliability.py +0 -0
  1008. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/queue/test_topology.py +0 -0
  1009. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/queue/test_tracing.py +0 -0
  1010. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/reviews/__init__.py +0 -0
  1011. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/reviews/test_reviews.py +0 -0
  1012. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/schemas/__init__.py +0 -0
  1013. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/schemas/test_base.py +0 -0
  1014. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/schemas/test_cursor_pagination.py +0 -0
  1015. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/schemas/test_errors.py +0 -0
  1016. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/schemas/test_link_headers.py +0 -0
  1017. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/schemas/test_pagination.py +0 -0
  1018. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/schemas/test_response.py +0 -0
  1019. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/services/__init__.py +0 -0
  1020. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/services/test_base.py +0 -0
  1021. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/services/test_file_mixin.py +0 -0
  1022. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/sessions/__init__.py +0 -0
  1023. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/sessions/test_sessions.py +0 -0
  1024. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/settings/__init__.py +0 -0
  1025. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/settings/test_base.py +0 -0
  1026. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/settings/test_mixins.py +0 -0
  1027. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/spreadsheet/__init__.py +0 -0
  1028. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/spreadsheet/test_formats.py +0 -0
  1029. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/spreadsheet/test_writer.py +0 -0
  1030. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/sse/__init__.py +0 -0
  1031. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/sse/test_broker.py +0 -0
  1032. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/sse/test_event_stream.py +0 -0
  1033. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/ssr/__init__.py +0 -0
  1034. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/ssr/test_attributes.py +0 -0
  1035. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/ssr/test_integration.py +0 -0
  1036. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/ssr/test_page.py +0 -0
  1037. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/ssr/test_response.py +0 -0
  1038. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/ssr/test_webapp.py +0 -0
  1039. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/storage/__init__.py +0 -0
  1040. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/storage/test_minio_client.py +0 -0
  1041. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/tasks/__init__.py +0 -0
  1042. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/tasks/test_cron.py +0 -0
  1043. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/tasks/test_dead_letter.py +0 -0
  1044. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/tasks/test_jobs.py +0 -0
  1045. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/tasks/test_manager.py +0 -0
  1046. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/tasks/test_observability.py +0 -0
  1047. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/tasks/test_oop.py +0 -0
  1048. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/tasks/test_queue.py +0 -0
  1049. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/tasks/test_queue_lifecycle_hooks.py +0 -0
  1050. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/tasks/test_scheduler.py +0 -0
  1051. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/test_docs_api_guard.py +0 -0
  1052. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/test_docs_examples_compile.py +0 -0
  1053. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/test_docs_examples_names.py +0 -0
  1054. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/test_docs_organization.py +0 -0
  1055. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/test_docs_signature_guard.py +0 -0
  1056. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/test_kwargs_guard.py +0 -0
  1057. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/test_llmstxt.py +0 -0
  1058. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/test_reexport_guard.py +0 -0
  1059. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/test_reference_coverage.py +0 -0
  1060. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/test_vacuous_guard.py +0 -0
  1061. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/testing/__init__.py +0 -0
  1062. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/testing/test_database.py +0 -0
  1063. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/testing/test_factories.py +0 -0
  1064. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/ui/__init__.py +0 -0
  1065. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/ui/test_components.py +0 -0
  1066. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/ui/test_core_contract.py +0 -0
  1067. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/ui/test_css.py +0 -0
  1068. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/ui/test_css_router.py +0 -0
  1069. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/ui/test_forms_introspect.py +0 -0
  1070. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/ui/test_forms_parse.py +0 -0
  1071. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/ui/test_forms_render.py +0 -0
  1072. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/ui/test_integration.py +0 -0
  1073. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/ui/test_layout_and_pages.py +0 -0
  1074. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/ui/test_stylesheet.py +0 -0
  1075. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/utils/__init__.py +0 -0
  1076. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/utils/test_client_ip.py +0 -0
  1077. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/utils/test_currency.py +0 -0
  1078. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/utils/test_datetime.py +0 -0
  1079. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/utils/test_dict.py +0 -0
  1080. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/utils/test_download.py +0 -0
  1081. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/utils/test_email.py +0 -0
  1082. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/utils/test_fields.py +0 -0
  1083. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/utils/test_file_store.py +0 -0
  1084. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/utils/test_http_client.py +0 -0
  1085. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/utils/test_jwt.py +0 -0
  1086. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/utils/test_lazy_extras.py +0 -0
  1087. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/utils/test_locations.py +0 -0
  1088. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/utils/test_log.py +0 -0
  1089. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/utils/test_metrics.py +0 -0
  1090. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/utils/test_opaque_token.py +0 -0
  1091. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/utils/test_password.py +0 -0
  1092. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/utils/test_regex.py +0 -0
  1093. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/utils/test_storage_backends.py +0 -0
  1094. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/utils/test_throttle.py +0 -0
  1095. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/utils/test_token_types.py +0 -0
  1096. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/utils/test_upload.py +0 -0
  1097. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/vision/__init__.py +0 -0
  1098. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/vision/test_router.py +0 -0
  1099. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/vision/test_vision.py +0 -0
  1100. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/webpush/__init__.py +0 -0
  1101. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/webpush/test_dispatcher.py +0 -0
  1102. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/webpush/test_router.py +0 -0
  1103. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/webpush/test_schemas.py +0 -0
  1104. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/webpush/test_service.py +0 -0
  1105. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/websockets/__init__.py +0 -0
  1106. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/tests/websockets/test_hub_and_router.py +0 -0
  1107. {tempest_fastapi_sdk-0.231.0 → tempest_fastapi_sdk-0.232.0}/vendor/openpix-openapi.yaml +0 -0
@@ -5,6 +5,86 @@ 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.232.0] — 2026-08-16
9
+
10
+ ### Added
11
+
12
+ - **Stripe integration** (`tempest_fastapi_sdk.integrations.payment.stripe`),
13
+ no extra required.
14
+
15
+ ```python
16
+ from tempest_fastapi_sdk.integrations.payment.stripe import (
17
+ StripeClient,
18
+ stripe_http_client,
19
+ to_minor_units,
20
+ )
21
+
22
+ client = StripeClient(stripe_http_client("sk_test_..."))
23
+ intent = await client.payment_intents.create(
24
+ {
25
+ "amount": to_minor_units("199.90", "brl"),
26
+ "currency": "brl",
27
+ "metadata": {"order_id": "1042"},
28
+ }
29
+ )
30
+ ```
31
+
32
+ - `StripeClient` over the SDK's `HTTPClient`, with a generic
33
+ `StripeResource` covering create / retrieve / update / delete / list
34
+ plus `auto_paginate` for nine resources (customers, payment intents,
35
+ refunds, products, prices, subscriptions, invoices, Checkout sessions,
36
+ events). Every write carries an `Idempotency-Key` — a retried charge
37
+ without one bills the customer twice.
38
+ - `stripe_http_client` pins `Stripe-Version`, so an account upgraded in
39
+ the dashboard cannot silently change response shapes under a service
40
+ that never changed.
41
+ - Money that respects **zero-decimal** and **three-decimal** currencies:
42
+ `to_minor_units` / `from_minor_units` / `currency_exponent`. ¥1050 is
43
+ `1050`, not `105000`.
44
+ - Webhook verification over the payload Stripe actually signs
45
+ (`f"{t}.{body}"`, not the body), with a replay window, secret
46
+ rotation, and `sign_payload` so tests do not re-derive it wrongly. An
47
+ unknown event type never fails the route.
48
+ - `StripeEvent` — 265 event types, generated from the specification
49
+ (`make stripe-fetch` / `make stripe-regen`) with a drift test.
50
+ - `StripeError` surfacing `type` / `code` / `decline_code` / `param` /
51
+ `request_id`, instead of a bare status.
52
+
53
+ - **`form_encode`** (`tempest_fastapi_sdk.form_encode`) — flattens a
54
+ nested payload into the bracket notation form-encoded APIs read
55
+ (`metadata[user_id]=42`, `items[0][price]=price_123`). Booleans go out
56
+ lower-case, `None` is dropped rather than sent empty (an empty string
57
+ *clears* a field on these APIs), `Decimal` keeps its exact text.
58
+
59
+ - **The OpenAPI generator now reads the request body's media type.** An
60
+ operation declaring `application/x-www-form-urlencoded` emits
61
+ `data=form_encode(payload)`; JSON operations are unchanged. Before this,
62
+ a client generated against Stripe had **100% of its writes rejected** —
63
+ all 588 of them declare form encoding and none declares JSON.
64
+
65
+ ### Fixed
66
+
67
+ - **The OpenAPI parser aborted on re-entrant specifications.** Note sinks
68
+ were removed from the stack **by equality**, and two sinks that have
69
+ collected nothing are both `[]` — so a nested parse (a field's type
70
+ resolving a `$ref`, whose component's fields open their own sinks)
71
+ removed the wrong one and the outer block died with
72
+ `ValueError: list.remove(x): x not in list`. Removal is now by identity.
73
+ Parsing Stripe's specification is what surfaced it; the regression test
74
+ fails on the previous code.
75
+
76
+ ### Notes
77
+
78
+ The Stripe client is **hand-written**, unlike OpenPix, and the reason is
79
+ measured on the `2026-07-29.dahlia` specification: generating the full
80
+ surface produces a `schemas.py` of 3.3 MB / 81k lines whose import costs
81
+ **5.8 s and 492 MB of RSS**, and slicing by resource does not help because
82
+ `/v1/prices` alone reaches 864 of the 1440 component schemas. What still
83
+ comes from the specification — API version, base URL, the event list —
84
+ comes through `scripts/regen_stripe.py`, which also records the numbers.
85
+
86
+ Closes #156.
87
+
8
88
  ## [0.231.0] — 2026-08-16
9
89
 
10
90
  ### Added
@@ -7,7 +7,7 @@ PACKAGE := tempest_fastapi_sdk
7
7
  PYTHON_VERSION := 3.11
8
8
 
9
9
  .DEFAULT_GOAL := help
10
- .PHONY: help install sync clean test test-model test-gpu cov lint fix fmt fmt-check type check ci build smoke release tag version docs docs-serve docs-build
10
+ .PHONY: help install sync clean stripe-regen stripe-fetch test test-model test-gpu cov lint fix fmt fmt-check type check ci build smoke release tag version docs docs-serve docs-build
11
11
 
12
12
  help: ## List available targets
13
13
  @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) \
@@ -63,6 +63,12 @@ build: ## Build sdist + wheel into dist/
63
63
  openpix-regen: ## Regenerate the vendored OpenPix schemas + client from vendor/openpix-openapi.yaml
64
64
  uv run python scripts/regen_openpix.py
65
65
 
66
+ stripe-regen: ## Regenerate Stripe's event enum from vendor/stripe-api-facts.yaml (offline)
67
+ uv run python scripts/regen_stripe.py
68
+
69
+ stripe-fetch: ## Refresh vendor/stripe-api-facts.yaml from Stripe's published spec (network)
70
+ uv run python scripts/regen_stripe.py --fetch
71
+
66
72
  smoke: build ## Install the freshly built wheel in a clean venv and import the top-level surface
67
73
  @rm -rf /tmp/$(PACKAGE)-smoke
68
74
  uv venv --python $(PYTHON_VERSION) /tmp/$(PACKAGE)-smoke
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: tempest-fastapi-sdk
3
- Version: 0.231.0
3
+ Version: 0.232.0
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
@@ -105,6 +105,25 @@ The SDK currently covers (Sep 2025+, post-v0.31.x):
105
105
  and FCM's `InvalidArgumentError` deliberately does **not** prune, because
106
106
  it covers malformed payloads too and pruning on it would wipe a fleet.
107
107
  Recipe: `docs/recipes/push.md`.
108
+ - **Stripe (v0.232.0, no extra)** —
109
+ `tempest_fastapi_sdk.integrations.payment.stripe`. `StripeClient` over
110
+ `HTTPClient` with a generic `StripeResource` (create/retrieve/update/delete/
111
+ list + `auto_paginate`) across nine resources; `Idempotency-Key` on every
112
+ write; `stripe_http_client` pinning `Stripe-Version`; zero- and
113
+ three-decimal-aware money helpers; webhook verification over `t.body` with
114
+ a replay window, rotation support and a `sign_payload` for tests;
115
+ `StripeEvent` (265 types generated from the spec, drift-tested);
116
+ `StripeError` carrying type/code/decline_code/param/request_id; thin
117
+ response models with `extra="allow"`. Ships alongside two pieces of general
118
+ value: **`form_encode`** (bracket-notation flattening, public) and the
119
+ **generator reading the request body's media type** so form-only APIs emit
120
+ `data=form_encode(payload)`. Also fixes a parser bug where note sinks were
121
+ removed by equality, aborting any re-entrant spec.
122
+ **The client is hand-written on purpose**: generating Stripe's spec yields
123
+ 3.3 MB of schemas costing 5.8 s / 492 MB RSS to import, and `/v1/prices`
124
+ alone reaches 864 of 1440 schemas, so no small subset exists. Measurements
125
+ and the fetch/regen steps live in `scripts/regen_stripe.py`. Recipe:
126
+ `docs/recipes/stripe.md`.
108
127
  - **Permission guards (v0.167.0)** — `@requires(*guards, user_param=None)`
109
128
  (`tempest_fastapi_sdk.authz`, re-exported at the root) runs plain
110
129
  `(user) -> user | None` guards before a function body, at any layer, sync or
@@ -408,6 +408,7 @@ come back here to plug in each capability as you need it.
408
408
  | **[SSR (typed pages) »](../ssr.md)** | `Page`, `html_response`, `make_htmx_router`, hosting a `tempestweb` build |
409
409
  | **[Storage (MinIO/S3) »](storage.md)** | `AsyncMinIOClient`, `MinIOUploadStorage`, `presigned_get_url` / `presigned_put_url`, `list_objects` |
410
410
  | **[Stored file (service mixin) »](stored-files.md)** | `StoredFileServiceMixin` — `set_file` / `replace` / `clear_file` over `UploadUtils` |
411
+ | **[Stripe (cards + subscriptions) »](stripe.md)** | `StripeClient`, `stripe_http_client`, `to_minor_units` / `from_minor_units`, `make_stripe_webhook_dependency`, `StripeEvent` — form-encoded writes, idempotency by default, zero-decimal currencies |
411
412
  | **[System checks (check-config) »](system-checks.md)** | `run_system_checks`, `@check`, `CheckMessage`, `tempest check-config` — validate settings before serving |
412
413
  | **[tempestweb frontend + SDK »](tempestweb-frontend.md)** | tempestweb frontend calling the SDK backend: `tempestweb.native.http`, `Idempotency-Key` + `IdempotencyMiddleware`, retry, same origin vs CORS |
413
414
  | **[Testing »](testing.md)** | `test_session`, `test_database`, in-memory SQLite, pytest fixtures |
@@ -415,6 +415,7 @@ aqui pra plugar cada capacidade conforme precisar.
415
415
  | **[SPA React no FastAPI »](react-spa.md)** | `make_spa_router` — servir o build do Vite pelo mesmo processo, com history fallback |
416
416
  | **[SSR (páginas tipadas) »](../ssr.md)** | `Page`, `html_response`, `make_htmx_router`, hospedar um build do `tempestweb` |
417
417
  | **[Storage (MinIO/S3) »](storage.md)** | `AsyncMinIOClient`, `MinIOUploadStorage`, `presigned_get_url` / `presigned_put_url`, `list_objects` |
418
+ | **[Stripe (cartão + assinatura) »](stripe.md)** | `StripeClient`, `stripe_http_client`, `to_minor_units` / `from_minor_units`, `make_stripe_webhook_dependency`, `StripeEvent` — escrita form-encoded, idempotência por padrão, moeda de zero decimais |
418
419
  | **[Sync offline-first (delta) »](offline-sync.md)** | `BaseRepository.changes_since`, `SyncFilterSchema`, `SyncPaginationSchema`, deltas por cursor + soft-delete |
419
420
  | **[System checks (check-config) »](system-checks.md)** | `run_system_checks`, `@check`, `CheckMessage`, `tempest check-config` — validar settings antes de servir |
420
421
  | **[Tempo real »](realtime.md)** | Visão geral — quando escolher SSE, WebSocket ou Web Push |
@@ -0,0 +1,429 @@
1
+ # Stripe (cards, subscriptions, Checkout)
2
+
3
+ Every service of ours that charges a card used to rewrite the same Stripe
4
+ layer: a synchronous HTTP client called from inside an async route,
5
+ hand-retyped schemas, and a webhook verification each one derived its own
6
+ way. `tempest_fastapi_sdk.integrations.payment.stripe` ships that layer.
7
+
8
+ !!! info "Installation"
9
+ No extra. The integration uses the `HTTPClient` the SDK already has —
10
+ `uv add "tempest-fastapi-sdk[http]"` if you have not pulled `httpx`
11
+ in yet.
12
+
13
+ !!! info "When to use this"
14
+ International card payments, subscriptions or hosted Checkout. For
15
+ **Pix**, use [OpenPix](openpix.en.md), which is generated from the
16
+ provider's specification.
17
+
18
+ ## The minimal path
19
+
20
+ ```python
21
+ import asyncio
22
+ from decimal import Decimal
23
+
24
+ from tempest_fastapi_sdk.integrations.payment.stripe import (
25
+ StripeClient,
26
+ stripe_http_client,
27
+ to_minor_units,
28
+ )
29
+
30
+
31
+ async def main() -> None:
32
+ """Run this example."""
33
+ client = StripeClient(stripe_http_client("sk_test_..."))
34
+ intent = await client.payment_intents.create(
35
+ {
36
+ "amount": to_minor_units(Decimal("199.90"), "brl"),
37
+ "currency": "brl",
38
+ "automatic_payment_methods": {"enabled": True},
39
+ "metadata": {"order_id": "1042"},
40
+ }
41
+ )
42
+ print(intent.id, intent.status, intent.client_secret)
43
+
44
+
45
+ asyncio.run(main())
46
+ ```
47
+
48
+ Three things happened without being asked for: the body went out
49
+ **form-encoded** in bracket notation (`metadata[order_id]=1042`), the
50
+ request carried an `Idempotency-Key`, and the `Stripe-Version` header
51
+ pinned the API version.
52
+
53
+ !!! danger "`client_secret` is a credential"
54
+ It authorizes confirming **that** payment. It belongs in the response
55
+ to the order's own owner and nowhere else — never in a log, never in
56
+ telemetry.
57
+
58
+ ## How it works, piece by piece
59
+
60
+ ### The body is form-encoded, not JSON
61
+
62
+ Stripe **accepts no JSON** on writes: all 588 write operations in the
63
+ specification declare `application/x-www-form-urlencoded`. Nesting is
64
+ brackets:
65
+
66
+ ```python
67
+ from tempest_fastapi_sdk import form_encode
68
+
69
+ print(
70
+ form_encode(
71
+ {
72
+ "mode": "payment",
73
+ "line_items": [{"price": "price_123", "quantity": 2}],
74
+ "metadata": {"order_id": "1042"},
75
+ }
76
+ )
77
+ )
78
+ ```
79
+
80
+ ```text
81
+ {'mode': 'payment',
82
+ 'line_items[0][price]': 'price_123',
83
+ 'line_items[0][quantity]': '2',
84
+ 'metadata[order_id]': '1042'}
85
+ ```
86
+
87
+ `form_encode` is public and serves any form-encoded API — and **the SDK's
88
+ integration generator now uses the same function**: an operation whose
89
+ `requestBody` declares form comes out with `data=form_encode(payload)`
90
+ instead of `json=payload`. Before that, a client generated against Stripe
91
+ had 100% of its writes rejected.
92
+
93
+ What `form_encode` decides for you:
94
+
95
+ | Value | Goes as | Why |
96
+ | --- | --- | --- |
97
+ | `True` / `False` | `true` / `false` | `str(True)` would send `"True"` |
98
+ | `None` | **not sent** | an empty string is a real value — it *clears* the field |
99
+ | `Decimal("10.50")` | `10.50` | going through `float` loses a cent |
100
+ | `Enum` | its `.value` | `str()` would send `"Class.MEMBER"` |
101
+ | `datetime` | ISO-8601 | |
102
+
103
+ ### Money: zero-decimal currencies exist
104
+
105
+ Stripe charges in the **smallest unit**. For most currencies that is a
106
+ cent, but for JPY, KRW, VND and 13 others the smallest unit **is** the
107
+ unit — and dividing everything by 100 is a silent billing bug no BRL-only
108
+ test will catch.
109
+
110
+ ```python
111
+ from decimal import Decimal
112
+
113
+ from tempest_fastapi_sdk.integrations.payment.stripe import (
114
+ from_minor_units,
115
+ to_minor_units,
116
+ )
117
+
118
+ print(to_minor_units(Decimal("10.50"), "brl")) # 1050
119
+ print(to_minor_units(Decimal("1050"), "jpy")) # 1050 <- not 105000
120
+ print(from_minor_units(1050, "jpy")) # Decimal('1050')
121
+ print(to_minor_units(Decimal("10.505"), "bhd")) # 10505 (three decimals)
122
+ ```
123
+
124
+ Both tables (`ZERO_DECIMAL_CURRENCIES`, `THREE_DECIMAL_CURRENCIES`) come
125
+ from Stripe's documentation and are pinned by a test, so an upstream
126
+ change shows up as a failure here — not as a hundredfold charge.
127
+
128
+ ### Webhooks: what Stripe signs is not the body
129
+
130
+ The header is `t=<timestamp>,v1=<hmac>`, and the HMAC covers
131
+ `f"{t}.{body}"`. Signing the body alone is the most common mistake in a
132
+ hand-rolled verification — and it fails *silently*, as a 401 on every
133
+ delivery.
134
+
135
+ ```python
136
+ from typing import Any
137
+
138
+ from fastapi import APIRouter, Depends
139
+
140
+ from tempest_fastapi_sdk.integrations.payment.stripe import (
141
+ StripeEvent,
142
+ StripeWebhookEvent,
143
+ make_stripe_webhook_dependency,
144
+ )
145
+
146
+ from src.core.settings import settings
147
+
148
+ router = APIRouter(prefix="/webhooks", tags=["webhooks"])
149
+ verified = make_stripe_webhook_dependency(settings.STRIPE_WEBHOOK_SECRET)
150
+
151
+
152
+ @router.post("/stripe", include_in_schema=False)
153
+ async def stripe_webhook(
154
+ event: StripeWebhookEvent = Depends(verified),
155
+ ) -> dict[str, Any]:
156
+ """Receive an already verified, typed delivery."""
157
+ if event.event is StripeEvent.PAYMENT_INTENT_SUCCEEDED:
158
+ return {"handled": True, "intent": event.data_object["id"]}
159
+ return {"handled": False, "type": event.event_type}
160
+ ```
161
+
162
+ - An invalid, missing or out-of-window (5 minutes) signature is a **401**
163
+ before your handler runs.
164
+ - Secret rotation works: Stripe sends one `v1` per active secret and any
165
+ match is accepted.
166
+ - An unknown event type does **not** take the route down — `event` is
167
+ `None` and `event_type` keeps the string. A Stripe release does not
168
+ become your incident.
169
+ - `event_id` is there to **deduplicate**: deliveries repeat by design.
170
+
171
+ !!! warning "A verified signature is not authorization"
172
+ It proves the delivery came from Stripe. It does not prove the state
173
+ you are about to change is current — deliveries repeat and arrive out
174
+ of order. Before releasing goods on `payment_intent.succeeded`,
175
+ re-read the intent through the API.
176
+
177
+ So a test never re-derives the signature wrongly, the module exports the
178
+ signer:
179
+
180
+ ```python
181
+ import json
182
+
183
+ from tempest_fastapi_sdk.integrations.payment.stripe import sign_payload
184
+
185
+ body = json.dumps({"id": "evt_1", "type": "payment_intent.succeeded"}).encode()
186
+ header = sign_payload(body, "whsec_test", timestamp=1_770_000_000)
187
+ ```
188
+
189
+ ### The 265 event types, as an enum
190
+
191
+ `StripeEvent` is **generated** from the specification — from the
192
+ `enabled_events` parameter of `POST /v1/webhook_endpoints`, which is
193
+ where Stripe enumerates the types (the `event` object does not). A drift
194
+ test fails if the file is edited by hand.
195
+
196
+ ```python
197
+ from tempest_fastapi_sdk.integrations.payment.stripe import StripeEvent
198
+
199
+ print(StripeEvent.INVOICE_PAID.value) # invoice.paid
200
+ print(StripeEvent.has_value("customer.created")) # True
201
+ ```
202
+
203
+ ### Idempotency: why every write carries a key
204
+
205
+ A timeout on `POST /v1/payment_intents` leaves you not knowing whether
206
+ money moved. A retry without a key creates a second payment; with one,
207
+ Stripe replays the original response for 24 hours. The client puts a
208
+ UUID4 on every write — swap in your own when you want the window to cover
209
+ your flow:
210
+
211
+ ```python
212
+ import asyncio
213
+
214
+ from tempest_fastapi_sdk.integrations.payment.stripe import (
215
+ StripeClient,
216
+ stripe_http_client,
217
+ )
218
+
219
+
220
+ async def main() -> None:
221
+ """Run this example."""
222
+ client = StripeClient(stripe_http_client("sk_test_..."))
223
+ order_id = "1042"
224
+ await client.payment_intents.create(
225
+ {"amount": 19990, "currency": "brl"},
226
+ idempotency_key=f"order-{order_id}",
227
+ )
228
+
229
+
230
+ asyncio.run(main())
231
+ ```
232
+
233
+ ### Cursor pagination
234
+
235
+ ```python
236
+ import asyncio
237
+
238
+ from tempest_fastapi_sdk.integrations.payment.stripe import (
239
+ StripeClient,
240
+ stripe_http_client,
241
+ )
242
+
243
+
244
+ async def main() -> None:
245
+ """Run this example."""
246
+ client = StripeClient(stripe_http_client("sk_test_..."))
247
+ filters = {"created": {"gte": 1_770_000_000}}
248
+ async for customer in client.customers.auto_paginate(filters):
249
+ print(customer.id, customer.email)
250
+
251
+
252
+ asyncio.run(main())
253
+ ```
254
+
255
+ The cursor is the **last item's id**, not an offset, so the walk stays
256
+ correct while objects are created underneath it.
257
+
258
+ ### Errors that say what happened
259
+
260
+ ```python
261
+ import asyncio
262
+
263
+ from tempest_fastapi_sdk.integrations.payment.stripe import (
264
+ StripeClient,
265
+ StripeError,
266
+ stripe_http_client,
267
+ )
268
+
269
+
270
+ async def main() -> None:
271
+ """Run this example."""
272
+ client = StripeClient(stripe_http_client("sk_test_..."))
273
+ try:
274
+ await client.payment_intents.create({"amount": 19990, "currency": "brl"})
275
+ except StripeError as error:
276
+ print(error.status_code) # 402
277
+ print(error.error_type) # card_error
278
+ print(error.code) # card_declined
279
+ print(error.decline_code) # insufficient_funds
280
+ print(error.request_id) # req_... (what Stripe support asks for)
281
+
282
+
283
+ asyncio.run(main())
284
+ ```
285
+
286
+ ### Thin models, nothing lost
287
+
288
+ The models name the fields that carry decisions — `status`, `amount`,
289
+ `currency`, the ids linking objects — and set `extra="allow"`. The rest
290
+ of the object stays reachable:
291
+
292
+ ```python
293
+ import asyncio
294
+
295
+ from tempest_fastapi_sdk.integrations.payment.stripe import (
296
+ StripeClient,
297
+ stripe_http_client,
298
+ )
299
+
300
+
301
+ async def main() -> None:
302
+ """Run this example."""
303
+ client = StripeClient(stripe_http_client("sk_test_..."))
304
+ intent = await client.payment_intents.retrieve("pi_123")
305
+ print(intent.status) # typed
306
+ print((intent.model_extra or {}).get("next_action")) # preserved
307
+
308
+
309
+ asyncio.run(main())
310
+ ```
311
+
312
+ An expandable field (`customer`, `payment_intent`, …) is a `str`: without
313
+ `expand`, Stripe sends the id. Ask for the object and read it from
314
+ `model_extra`:
315
+
316
+ ```python
317
+ import asyncio
318
+
319
+ from tempest_fastapi_sdk.integrations.payment.stripe import (
320
+ StripeClient,
321
+ stripe_http_client,
322
+ )
323
+
324
+
325
+ async def main() -> None:
326
+ """Run this example."""
327
+ client = StripeClient(stripe_http_client("sk_test_..."))
328
+ intent = await client.payment_intents.retrieve(
329
+ "pi_123", params={"expand": ["customer"]}
330
+ )
331
+ print(intent.customer)
332
+
333
+
334
+ asyncio.run(main())
335
+ ```
336
+
337
+ !!! note "Why this client is hand-written rather than generated"
338
+ The SDK generates integrations from OpenAPI — OpenPix is generated.
339
+ Stripe's specification does not survive the trip, and that was
340
+ **measured** on `2026-07-29.dahlia`:
341
+
342
+ - generating the full surface yields a `schemas.py` of **3.3 MB / 81k
343
+ lines**, and importing it costs **5.8 s and 492 MB of RSS**;
344
+ - slicing by resource does not help: `/v1/prices` **alone** reaches
345
+ 864 of the 1440 schemas, and the ten core resources together reach
346
+ 1020. There is no small subset.
347
+
348
+ So what comes from the specification still comes from it — API
349
+ version, base URL and the 265 events, via `make stripe-fetch` — and
350
+ the rest is code that fits in your head. The numbers, and how to
351
+ reproduce them, are in `scripts/regen_stripe.py`.
352
+
353
+ ## Configuration
354
+
355
+ ```python
356
+ from tempest_fastapi_sdk import BaseAppSettings
357
+ from tempest_fastapi_sdk.integrations.payment.stripe import (
358
+ StripeClient,
359
+ stripe_http_client,
360
+ )
361
+
362
+
363
+ class Settings(BaseAppSettings):
364
+ """Service settings."""
365
+
366
+ STRIPE_API_KEY: str = ""
367
+ STRIPE_WEBHOOK_SECRET: str = ""
368
+
369
+
370
+ settings = Settings()
371
+ client = StripeClient(stripe_http_client(settings.STRIPE_API_KEY))
372
+ ```
373
+
374
+ The webhook secret is **per endpoint**, not per account: a service with a
375
+ test and a live endpoint has two.
376
+
377
+ ## Testing
378
+
379
+ Inject an `httpx.MockTransport` and inspect the request that would go
380
+ out:
381
+
382
+ ```python
383
+ from urllib.parse import parse_qs
384
+
385
+ import httpx
386
+
387
+ from tempest_fastapi_sdk.integrations.payment.stripe import (
388
+ StripeClient,
389
+ stripe_http_client,
390
+ )
391
+
392
+ requests: list[httpx.Request] = []
393
+
394
+
395
+ def handler(request: httpx.Request) -> httpx.Response:
396
+ """Record the request and answer with a fake customer."""
397
+ requests.append(request)
398
+ return httpx.Response(200, json={"id": "cus_1", "object": "customer"})
399
+
400
+
401
+ async def test_create_customer() -> None:
402
+ """The write goes out form-encoded, in bracket notation."""
403
+ client = StripeClient(
404
+ stripe_http_client("sk_test_x", transport=httpx.MockTransport(handler))
405
+ )
406
+
407
+ await client.customers.create({"email": "ana@example.com", "metadata": {"o": "1"}})
408
+
409
+ assert parse_qs(requests[-1].content.decode()) == {
410
+ "email": ["ana@example.com"],
411
+ "metadata[o]": ["1"],
412
+ }
413
+ ```
414
+
415
+ ## Recap
416
+
417
+ - `StripeClient` over the SDK's `HTTPClient`: retry, circuit breaker and
418
+ the pinned `Stripe-Version` come from one place.
419
+ - Writes are form-encoded in bracket notation (`form_encode`, public and
420
+ now used by the generator too) and carry an `Idempotency-Key` by
421
+ default.
422
+ - Money respects zero-decimal and three-decimal currencies.
423
+ - Webhooks verify over `t.body`, with a replay window, secret rotation,
424
+ and an unknown event type that does not take the route down.
425
+ - 265 events as an enum, generated from the specification with a drift
426
+ test.
427
+ - Thin models with `extra="allow"` — the client is hand-written because
428
+ generating the whole specification costs 3.3 MB and 492 MB of RSS,
429
+ measured.