tempest-fastapi-sdk 0.320.0__tar.gz → 0.321.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.
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/CHANGELOG.md +43 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/PKG-INFO +4 -4
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/README.md +1 -1
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/SHIPPED.md +3 -1
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/migration.en.md +16 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/migration.md +17 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/index.en.md +1 -1
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/index.md +1 -1
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/subject-data.en.md +108 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/subject-data.md +108 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/pyproject.toml +4 -4
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/__init__.py +1 -1
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/privacy/storage.py +181 -2
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/testing/fakes/storage.py +173 -6
- tempest_fastapi_sdk-0.321.0/tests/privacy/test_storage.py +410 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/privacy/test_storage_live.py +63 -2
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/testing/test_fakes_behaviour.py +94 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/uv.lock +7 -7
- tempest_fastapi_sdk-0.320.0/tests/privacy/test_storage.py +0 -201
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/.github/ISSUE_TEMPLATE/docs.yml +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/.github/ISSUE_TEMPLATE/question.yml +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/.github/dependabot.yml +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/.github/workflows/audit.yml +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/.github/workflows/docs.yml +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/.github/workflows/release-pypi.yml +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/.gitignore +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/.python-version +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/CLAUDE.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/LESSONS.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/Makefile +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/CLAUDE.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/admin-showcase.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/admin-showcase.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/architecture.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/architecture.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/changelog.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/changelog.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/contributing.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/contributing.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/fullstack-web.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/fullstack-web.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/genai-examples.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/genai-examples.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/getting-started/first-project.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/getting-started/first-project.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/getting-started/python-versions.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/getting-started/python-versions.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/getting-started/references.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/getting-started/references.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/getting-started/uv.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/getting-started/uv.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/index.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/index.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/installation.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/installation.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/integrated.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/integrated.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/learning/index.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/learning/index.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/learning/marketplace/api.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/learning/marketplace/api.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/learning/marketplace/business-rules.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/learning/marketplace/business-rules.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/learning/marketplace/domain.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/learning/marketplace/domain.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/learning/marketplace/flows.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/learning/marketplace/flows.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/learning/marketplace/index.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/learning/marketplace/index.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/marketplace-local.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/marketplace-local.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/admin-sql-console.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/admin-sql-console.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/admin.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/admin.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/agents-advanced.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/agents-advanced.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/agents-architecture.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/agents-architecture.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/agents-concepts.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/agents-concepts.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/agents-db.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/agents-db.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/agents-prompts.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/agents-prompts.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/agents-testing.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/agents-testing.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/agents-tools.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/agents-tools.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/agents.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/agents.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/app-errors.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/app-errors.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/artifact-registry.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/artifact-registry.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/asyncapi-client.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/asyncapi-client.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/audit-trail.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/audit-trail.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/auth-flow.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/auth-flow.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/authz.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/authz.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/br-helpers.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/br-helpers.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/cache.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/cache.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/chat.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/chat.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/cli.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/cli.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/database.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/database.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/deploy-safety.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/deploy-safety.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/downloads.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/downloads.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/email.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/email.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/enum-columns.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/enum-columns.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/faces.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/faces.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/fakes.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/fakes.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/feature-flags.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/feature-flags.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/fields.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/fields.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/file-store.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/file-store.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/firebase-auth.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/firebase-auth.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/genai-hosted.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/genai-hosted.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/genai.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/genai.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/geo.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/geo.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/hostbridge.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/hostbridge.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/http-client.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/http-client.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/http.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/http.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/idempotency.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/idempotency.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/image-generation.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/image-generation.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/introspection-auth.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/introspection-auth.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/jobs.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/jobs.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/kestra.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/kestra.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/logging.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/logging.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/management-commands.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/management-commands.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/mercado-pago-sandbox.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/mercado-pago-sandbox.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/mercado-pago-webhooks.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/mercado-pago-webhooks.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/mercado-pago.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/mercado-pago.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/metrics.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/metrics.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/mfa.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/mfa.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/migrations.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/migrations.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/model-weights.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/model-weights.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/modelops.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/modelops.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/models.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/models.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/multi-tenant.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/multi-tenant.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/n8n.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/n8n.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/oauth.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/oauth.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/observability.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/observability.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/offline-sync.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/offline-sync.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/openapi-client.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/openapi-client.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/openapi-errors.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/openapi-errors.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/openpix-subscriptions.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/openpix-subscriptions.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/openpix.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/openpix.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/outbox.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/outbox.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/pdf.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/pdf.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/permission-guards.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/permission-guards.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/pix-protocol.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/pix-protocol.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/push.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/push.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/query-plans.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/query-plans.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/queue-tasks.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/queue-tasks.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/react-spa.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/react-spa.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/realtime.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/realtime.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/refresh-tokens.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/refresh-tokens.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/revenuecat.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/revenuecat.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/reviews.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/reviews.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/security.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/security.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/sessions.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/sessions.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/spreadsheets.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/spreadsheets.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/sse.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/sse.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/ssr-actions.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/ssr-actions.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/storage.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/storage.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/stored-files.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/stored-files.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/stripe.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/stripe.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/system-checks.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/system-checks.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/tempestweb-frontend.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/tempestweb-frontend.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/testing.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/testing.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/text-search.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/text-search.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/transactions.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/transactions.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/transcription-pipeline.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/transcription-pipeline.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/typing.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/typing.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/ui-css.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/ui-css.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/ui-forms.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/ui-forms.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/ui.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/ui.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/uploads.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/uploads.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/utilities.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/utilities.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/vision.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/vision.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/wallet.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/wallet.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/webauthn.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/webauthn.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/webpush.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/webpush.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/websocket.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/websocket.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/zap-inbound.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/zap-inbound.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/zap.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/recipes/zap.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/reference.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/reference.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/roadmap.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/roadmap.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/ssr.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/ssr.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/tutorial.en.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/docs/tutorial.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/mkdocs.yml +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/mkdocs_hooks/llmstxt.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/planning/genai/README.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/planning/genai/manual-validation.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/planning/genai/phase-0.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/planning/genai/phase-1.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/planning/genai/phase-2.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/planning/genai/phase-3.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/planning/genai/validation-strategy.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/scripts/export_order.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/scripts/extract_recipe.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/scripts/face_separation.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/scripts/mercadopago_diff.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/scripts/mercadopago_overlay.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/scripts/openpix_diff.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/scripts/openpix_overlay.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/scripts/overlay_enums.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/scripts/regen_mercado_pago.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/scripts/regen_openpix.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/scripts/regen_stripe.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/scripts/regen_zap.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/scripts/regen_zap_ws.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/admin/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/admin/actions.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/admin/auth.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/admin/config.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/admin/dashboard.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/admin/discovery.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/admin/forms.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/admin/permissions.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/admin/router.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/admin/session.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/admin/site.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/admin/sql_shell.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/admin/static/admin.css +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/admin/tasks.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/admin/templates/autocomplete.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/admin/templates/base.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/admin/templates/dashboard.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/admin/templates/detail.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/admin/templates/form.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/admin/templates/import.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/admin/templates/list.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/admin/templates/login.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/admin/templates/logs.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/admin/templates/mfa.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/admin/templates/sql_shell.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/admin/templates/task_detail.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/admin/templates/tasks.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/admin/theme.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/agents/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/agents/agent.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/agents/builtin.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/agents/fact_stores.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/agents/loop.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/agents/memory.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/agents/multi.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/agents/protocols.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/agents/router.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/agents/schemas.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/agents/skills.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/agents/storage.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/agents/structured.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/agents/testing.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/agents/tools.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/agents/typed.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/api/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/api/cookies.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/api/dependencies/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/api/dependencies/_session.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/api/dependencies/auth.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/api/dependencies/rate_limit.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/api/dependencies/signed_url.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/api/error_docs.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/api/handlers.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/api/middlewares/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/api/middlewares/_exempt.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/api/middlewares/_streaming.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/api/middlewares/access_log.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/api/middlewares/body_size.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/api/middlewares/cors.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/api/middlewares/csrf.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/api/middlewares/error_envelope.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/api/middlewares/graceful.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/api/middlewares/honeypot.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/api/middlewares/idempotency.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/api/middlewares/quota.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/api/middlewares/rate_limit.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/api/middlewares/request_id.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/api/middlewares/response_cache.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/api/oauth.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/api/oidc_verifier.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/api/redaction.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/api/routers/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/api/routers/health.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/api/routers/logs.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/api/routers/metrics.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/api/routers/tool_spec.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/api/server.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/api/spa.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/api/static.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/api/tracing.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/api/webhooks.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/app_errors/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/app_errors/constants.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/app_errors/models.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/app_errors/router.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/app_errors/schemas.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/app_errors/service.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/artifacts/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/artifacts/actions.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/artifacts/digest.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/artifacts/model.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/artifacts/registry.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/asyncapi/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/asyncapi/emit_stream.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/asyncapi/generate.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/asyncapi/ir.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/asyncapi/loader.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/asyncapi/parse.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/exceptions.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/firebase.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/guards.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/introspection.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/locale.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/page_renderer.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/router.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/schemas.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/service.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/templates/en-US/activation.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/templates/en-US/activation_error.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/templates/en-US/activation_success.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/templates/en-US/email_change.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/templates/en-US/email_change_error.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/templates/en-US/email_change_success.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/templates/en-US/email_changed_notice.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/templates/en-US/email_verification.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/templates/en-US/email_verification_error.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/templates/en-US/email_verification_success.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/templates/en-US/password_reset.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/templates/en-US/password_reset_error.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/templates/en-US/password_reset_form.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/templates/en-US/password_reset_success.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/templates/pt-BR/activation.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/templates/pt-BR/activation_error.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/templates/pt-BR/activation_success.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/templates/pt-BR/email_change.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/templates/pt-BR/email_change_error.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/templates/pt-BR/email_change_success.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/templates/pt-BR/email_changed_notice.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/templates/pt-BR/email_verification.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/templates/pt-BR/email_verification_error.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/templates/pt-BR/email_verification_success.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/templates/pt-BR/password_reset.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/templates/pt-BR/password_reset_error.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/templates/pt-BR/password_reset_form.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/templates/pt-BR/password_reset_success.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/token_delivery.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/auth/webauthn.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/authz/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/authz/dependencies.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/authz/permissions.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/authz/requires.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cache/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cache/decorator.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cache/invalidation.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cache/redis_manager.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/chat/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/chat/constants.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/chat/models.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/chat/router.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/chat/schemas.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/chat/service.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/checks/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/checks/builtins.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/checks/messages.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/checks/registry.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/_templates/CLAUDE.md.tmpl +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/_templates/Dockerfile.tmpl +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/_templates/README.md.tmpl +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/_templates/dockerignore.tmpl +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/_templates/env.example.tmpl +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/_templates/gitignore.tmpl +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/_templates/main.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/_templates/pyproject.toml.tmpl +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/_templates/src/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/_templates/src/api/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/_templates/src/api/app.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/_templates/src/api/dependencies/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/_templates/src/api/dependencies/auth.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/_templates/src/api/dependencies/controllers.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/_templates/src/api/dependencies/resources.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/_templates/src/api/routers/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/_templates/src/controllers/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/_templates/src/controllers/service_info.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/_templates/src/core/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/_templates/src/core/exceptions.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/_templates/src/core/settings.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/_templates/src/db/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/_templates/src/db/configs/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/_templates/src/db/configs/names.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/_templates/src/db/models/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/_templates/src/db/models/user.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/_templates/src/db/repositories/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/_templates/src/schemas/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/_templates/src/schemas/service_info.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/_templates/src/server.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/_templates/src/services/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/_templates/src/utils/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/_templates/tests/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/_templates/tests/test_smoke.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/agents.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/cache.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/commands.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/config.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/db.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/docker_compose.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/doctor.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/email.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/entrypoint.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/flags.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/generate.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/integrations.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/layer_lint.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/lint.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/main.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/model.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/new.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/openapi_errors.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/openapi_export.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/openapi_fix.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/pdf.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/permissions.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/pr_prompt.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/project.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/queue.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/routes.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/secrets.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/serve.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/shell.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/src_layers.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/storage.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/tasks.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/user.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/cli/voice.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/controllers/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/controllers/base.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/core/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/core/context.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/core/enums.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/core/logging.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/core/redaction.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/core/typed.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/db/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/db/_alembic_templates/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/db/_alembic_templates/env.py.template +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/db/_alembic_templates/script.py.mako +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/db/alembic_env.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/db/alembic_hooks.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/db/audit.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/db/backup.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/db/connection.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/db/datetime_type.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/db/device_token_model.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/db/enum_migrations.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/db/enums.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/db/explain.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/db/expressions.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/db/integrity.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/db/migrations.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/db/mixins.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/db/model.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/db/naming.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/db/outbox.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/db/repository.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/db/search.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/db/signals.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/db/slow_query.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/db/tenant.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/db/transaction.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/db/user_model.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/db/user_oauth_account_model.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/db/user_recovery_code_model.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/db/user_refresh_token_model.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/db/user_token_model.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/db/user_webauthn_credential_model.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/db/voice_profile_model.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/db/webhook_inbox.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/db/webpush_subscription_model.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/exceptions/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/exceptions/base.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/exceptions/conflict.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/exceptions/factories.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/exceptions/forbidden.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/exceptions/i18n.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/exceptions/integration.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/exceptions/jwt.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/exceptions/not_found.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/exceptions/oauth.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/exceptions/signed_url.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/exceptions/too_many_requests.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/exceptions/unauthorized.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/exceptions/upload.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/exceptions/validation.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/exceptions/value_errors.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/exceptions/wallet.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/faces/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/faces/detector.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/faces/geometry.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/faces/models.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/faces/recognizer.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/faces/schemas.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/flags/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/flags/backends.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/flags/dependencies.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/flags/service.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/admin.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/anthropic.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/audio/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/audio/conversation.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/audio/diarization.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/audio/language.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/audio/profiles.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/audio/router.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/audio/schemas.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/audio/speaker_count.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/audio/stt.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/audio/tts.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/audio/voiceprint.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/batching.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/catalog.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/embeddings.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/generation_cache.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/hardware.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/hosted.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/hub.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/image.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/inventory.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/metrics.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/moderation.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/ollama.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/onnx_embed.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/openai_compat.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/pipeline.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/rag/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/rag/chroma.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/rag/chunking.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/rag/context.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/rag/extract.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/rag/fusion.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/rag/hybrid.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/rag/pdf.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/rag/rerank.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/rag/retriever.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/rag/schemas.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/rag/search.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/rag/vectorstore.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/registry.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/router.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/schemas.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/structured.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/text.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/tokens.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/tracing.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/usage.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/genai/vision_text.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/geo/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/geo/br.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/geo/cache.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/geo/db.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/geo/distance.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/geo/enums.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/geo/estimate.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/geo/geocoding.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/geo/geometry.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/geo/polyline.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/geo/routing.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/geo/schemas.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/hostbridge/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/hostbridge/bridge.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/hostbridge/config.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/hostbridge/exceptions.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/hostbridge/paths.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/hostbridge/router.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/hostbridge/schemas.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/hostbridge/shell.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/CLAUDE.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/messaging/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/messaging/zap/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/messaging/zap/client.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/messaging/zap/router.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/messaging/zap/schemas.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/messaging/zap/webhooks.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/messaging/zap_ws/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/messaging/zap_ws/schemas.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/messaging/zap_ws/stream.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/payment/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/payment/adapters/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/payment/adapters/mercado_pago.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/payment/adapters/openpix.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/payment/base.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/payment/mercado_pago/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/payment/mercado_pago/client.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/payment/mercado_pago/environment.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/payment/mercado_pago/events.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/payment/mercado_pago/money.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/payment/mercado_pago/schemas.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/payment/mercado_pago/webhooks.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/payment/openpix/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/payment/openpix/client.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/payment/openpix/environment.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/payment/openpix/events.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/payment/openpix/money.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/payment/openpix/schemas.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/payment/openpix/webhooks.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/payment/routing.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/payment/settlement.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/payment/stripe/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/payment/stripe/client.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/payment/stripe/environment.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/payment/stripe/events.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/payment/stripe/money.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/payment/stripe/schemas.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/payment/stripe/webhooks.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/subscriptions/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/subscriptions/revenuecat/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/subscriptions/revenuecat/client.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/subscriptions/revenuecat/events.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/subscriptions/revenuecat/schemas.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/subscriptions/revenuecat/snapshot.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/integrations/subscriptions/revenuecat/webhooks.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/modelops/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/modelops/_fs.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/modelops/bench.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/modelops/compact.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/modelops/compose.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/modelops/edge.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/modelops/energy.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/modelops/export.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/modelops/monitoring.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/modelops/pickled.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/modelops/quantize.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/modelops/ranking.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/modelops/router.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/modelops/schemas.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/modelops/serving.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/modelops/sklearn.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/modelops/static.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/openapi/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/openapi/emit_client.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/openapi/emit_schemas.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/openapi/generate.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/openapi/ir.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/openapi/loader.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/openapi/naming.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/openapi/parse.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/openapi/source.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/pdf/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/pdf/assets.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/pdf/documents.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/pdf/formatting.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/pdf/pages.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/pdf/qr.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/pdf/reader.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/pdf/renderer.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/pdf/router.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/pdf/templates/_base.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/pdf/templates/_party.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/pdf/templates/_styles.css +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/pdf/templates/contract.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/pdf/templates/quote.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/pdf/templates/receipt.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/pdf/templates/report.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/pdf/templates/voucher.html +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/privacy/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/privacy/graph.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/push/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/push/dispatcher.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/push/router.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/push/schemas.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/push/service.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/push/transports/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/push/transports/fcm.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/push/transports/webpush.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/py.typed +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/queue/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/queue/broker.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/queue/consumer.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/queue/dedup.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/queue/manager.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/queue/publisher.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/queue/reliability.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/queue/topology.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/queue/tracing.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/reviews/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/reviews/models.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/reviews/router.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/reviews/schemas.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/reviews/service.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/schemas/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/schemas/base.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/schemas/errors.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/schemas/link_headers.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/schemas/logs.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/schemas/pagination.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/schemas/response.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/services/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/services/base.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/services/file_mixin.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/sessions/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/sessions/authenticator.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/sessions/dependencies.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/sessions/middleware.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/sessions/router.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/sessions/schemas.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/sessions/service.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/sessions/store.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/settings/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/settings/base.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/settings/mixins.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/settings/version.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/spreadsheet/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/spreadsheet/formats.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/spreadsheet/google.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/spreadsheet/reader.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/spreadsheet/styles.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/spreadsheet/writer.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/sse/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/sse/broker.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/sse/event_stream.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ssr/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ssr/_static/confirm.js +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ssr/_static/htmx.min.js +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ssr/assets.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ssr/attributes.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ssr/errors.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ssr/flashes.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ssr/page.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ssr/redirects.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ssr/response.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ssr/webapp.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/storage/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/storage/minio_client.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/tasks/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/tasks/cancellation.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/tasks/cron.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/tasks/dead_letter.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/tasks/heartbeat/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/tasks/heartbeat/__main__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/tasks/heartbeat/files.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/tasks/heartbeat/source.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/tasks/jobs.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/tasks/lock.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/tasks/manager.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/tasks/observability.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/tasks/oop.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/tasks/progress.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/tasks/queue.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/tasks/scheduler.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/tasks/stages.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/testing/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/testing/database.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/testing/factories.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/testing/fakes/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/testing/fakes/_control.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/testing/fakes/email.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/testing/fakes/genai.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/testing/fakes/geo.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/testing/fakes/payment.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/testing/fakes/push.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/testing/fakes/search.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/testing/fakes/subscriptions.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/testing/privacy.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ui/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ui/_core.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ui/components/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ui/components/alert.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ui/components/card.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ui/components/classes.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ui/components/empty.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ui/components/flash.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ui/components/nav.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ui/components/pagination.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ui/components/styles.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ui/components/table.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ui/css/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ui/css/router.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ui/css/rules.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ui/css/tokens.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ui/forms/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ui/forms/introspect.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ui/forms/parse.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ui/forms/render.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ui/forms/spec.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ui/forms/styles.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ui/layout/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ui/layout/grid.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ui/layout/shell.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ui/pages/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ui/pages/error.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ui/pages/page.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/ui/stylesheet.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/utils/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/utils/_http_cache.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/utils/_lifecycle.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/utils/_security_headers.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/utils/_settings_discovery.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/utils/_signature.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/utils/_url.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/utils/client_ip.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/utils/currency.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/utils/data/br_locations.json +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/utils/datetime.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/utils/dict.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/utils/download.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/utils/email.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/utils/fields.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/utils/file_store.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/utils/forms.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/utils/http_client.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/utils/jwt.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/utils/locations.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/utils/log.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/utils/media_types.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/utils/metrics.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/utils/naming.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/utils/opaque_token.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/utils/password.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/utils/regex.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/utils/retry.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/utils/signed_url.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/utils/storage_backends.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/utils/throttle.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/utils/token_types.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/utils/totp.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/utils/upload.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/vision/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/vision/mapping.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/vision/router.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/vision/schemas.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/wallet/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/wallet/models.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/wallet/money.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/wallet/router.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/wallet/schemas.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/wallet/service.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/webpush/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/webpush/dispatcher.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/webpush/router.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/webpush/schemas.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/webpush/service.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/websockets/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/websockets/heartbeat.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/websockets/hub.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/websockets/router.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tempest_fastapi_sdk/websockets/schemas.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/CLAUDE.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/_seed.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/admin/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/admin/test_actions.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/admin/test_audit_viewer.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/admin/test_auth.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/admin/test_auth_role_and_mfa.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/admin/test_autocomplete_fk.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/admin/test_csv_import.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/admin/test_dashboard_cards.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/admin/test_discovery.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/admin/test_display_timezone.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/admin/test_exclude_fields.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/admin/test_form_error_rollback.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/admin/test_forms.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/admin/test_inlines.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/admin/test_lenses.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/admin/test_local_assets.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/admin/test_login_throttle.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/admin/test_logs_nav.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/admin/test_logs_traceback_export.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/admin/test_mfa.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/admin/test_mfa_attempt_limit.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/admin/test_password_field.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/admin/test_principal_revalidation.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/admin/test_rbac.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/admin/test_rich_filters.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/admin/test_router.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/admin/test_site.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/admin/test_sql_shell.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/admin/test_sql_shell_page.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/admin/test_tasks_panel.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/admin/test_theme.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/admin/test_upload_field.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/admin/test_user_model.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/admin/test_widgets_json_time.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/agents/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/agents/test_agent.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/agents/test_agent_limits.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/agents/test_agent_router.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/agents/test_builtin_tools.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/agents/test_fact_stores.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/agents/test_loop.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/agents/test_memory.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/agents/test_multi_agent.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/agents/test_skills.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/agents/test_structured.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/agents/test_testing.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/agents/test_typed_tools.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_access_log.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_body_size.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_business_metrics.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_client_error_envelope.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_cookies.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_cors.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_csrf.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_dependencies_auth.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_error_docs.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_error_envelope.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_error_field.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_graceful.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_handlers.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_health_router.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_honeypot.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_idempotency.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_jwt_dependency.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_lazy_dependencies.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_log_redaction.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_logs_rotated_backups.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_logs_router.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_middleware_exempt_semantics.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_oauth.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_oidc_introspection.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_oidc_verifier.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_outbound_webhooks.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_prometheus.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_prometheus_auth.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_quota.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_quota_redis_live.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_rate_limit.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_rate_limit_dependency.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_rate_limit_envelope.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_rate_limit_extras.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_rate_limit_fail_open.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_rate_limit_redis_proxy.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_request_id_middleware.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_response_cache.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_role_dependency.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_server.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_server_error_notify.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_session_provider.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_signed_path_dependency.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_spa.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_static.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_streaming_passthrough.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_token_type_strict.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_tool_spec.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_tracing.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_validation_envelope.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_webhooks.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/api/test_webhooks_rsa.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/app_errors/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/app_errors/test_app_errors.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/artifacts/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/artifacts/support.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/artifacts/test_actions.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/artifacts/test_digest.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/artifacts/test_registry.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/asyncapi/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/asyncapi/conftest.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/asyncapi/test_generate.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/asyncapi/test_loader.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/asyncapi/test_parse.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/auth/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/auth/test_activation_resend.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/auth/test_backend_links_dependencies.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/auth/test_change_password_mfa.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/auth/test_consume_token_race.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/auth/test_cookie_delivery.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/auth/test_current_user_active.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/auth/test_email_change.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/auth/test_email_integration_disabled.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/auth/test_email_link_amr.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/auth/test_email_link_refusal.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/auth/test_expire_on_commit.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/auth/test_firebase.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/auth/test_guards.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/auth/test_introspection.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/auth/test_locale.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/auth/test_login_throttle.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/auth/test_me.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/auth/test_mfa.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/auth/test_mfa_amr.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/auth/test_mfa_token_paths.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/auth/test_oauth_login.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/auth/test_oauth_mfa.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/auth/test_oauth_token_login.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/auth/test_password_reset_mfa.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/auth/test_password_reset_revoke.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/auth/test_refresh.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/auth/test_refresh_db.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/auth/test_refusal_codes.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/auth/test_router_session_sharing.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/auth/test_service.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/auth/test_signup_extension.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/auth/test_signup_fields.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/auth/test_signup_mounting.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/auth/test_token_supersede.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/auth/test_webauthn.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/auth/webauthn_authenticator.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/authz/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/authz/test_dependencies.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/authz/test_permissions.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/authz/test_requires.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cache/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cache/test_decorator.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cache/test_invalidation.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cache/test_redis_manager.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/chat/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/chat/test_attachment_uploader_migration.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/chat/test_chat.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/chat/test_messenger.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/chat/test_messenger_router.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/chat/test_router_stream.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/checks/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/checks/test_check_config_cli.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/checks/test_checks.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_agents.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_config.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_db.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_db_alembic_errors.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_db_resolution.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_db_seed.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_docker_compose.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_docker_compose_live.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_dockerfile_spa.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_doctor.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_email_storage.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_entrypoint.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_flags_cache.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_generate.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_integrations.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_layer_lint.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_main.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_management_commands.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_model.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_new_required_extras.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_openapi_errors.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_openapi_errors_bare_calls.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_openapi_errors_callgraph.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_openapi_errors_configured.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_openapi_errors_delegation.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_openapi_export.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_openapi_fix.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_permissions.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_project_claude_md.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_quality_gate_integration.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_queue_tasks.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_routes.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_scaffold_dependencies.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_scaffold_placeholders.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_scaffold_project_version.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_scaffold_runtime.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_secrets.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_serve.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_shell.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_src_layers_import.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_user.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/cli/test_user_mfa.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/conftest.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/controllers/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/controllers/test_base.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/controllers/test_controller.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/controllers/test_generic_bounds.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/core/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/core/test_context.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/core/test_enums.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/core/test_logging.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/core/test_logging_time_rotation.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/core/test_redaction.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/core/test_typed.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_alembic_env.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_alembic_env_sqlalchemy_matrix.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_alembic_hooks.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_audit.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_backup.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_bulk_ops.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_bulk_upsert_conflict.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_connection.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_cursor_types.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_eager_load.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_enum_column.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_enum_downgrade.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_enum_migration_lifecycle.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_enum_migrations.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_explain.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_expressions.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_filters_contract.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_integrity.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_integrity_live.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_integrity_sqlalchemy_matrix.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_migrations.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_migrations_async.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_migrations_foreign_keys.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_mixins.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_model.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_naming.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_naming_live.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_none_filter_is_null.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_outbox.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_repository.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_repository_conflict_exceptions.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_repository_order_guard.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_safe_upgrade.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_schema_sync.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_search.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_session_helpers.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_signals.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_slow_query.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_sqlite_failed_commit.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_sqlite_foreign_keys.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_sqlite_wal.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_table_name.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_tenant.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_transaction.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_utc_datetime.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/db/test_webhook_inbox.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/exceptions/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/exceptions/test_exceptions.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/exceptions/test_factories.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/exceptions/test_i18n.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/exceptions/test_inherited_code_warning.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/exceptions/test_integration_disabled.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/exceptions/test_value_error_codes.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/faces/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/faces/test_faces.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/flags/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/flags/test_flags.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/_eval/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/_eval/corpus.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/audio/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/audio/test_audio.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/audio/test_audio_runtime_extra.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/audio/test_concurrency.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/audio/test_diarization.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/audio/test_diarization_models.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/audio/test_language.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/audio/test_profiles.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/audio/test_speaker_count.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/audio/test_stt_loading.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/audio/test_tts_tempfile.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/audio/test_voice_router.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/conftest.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_anthropic.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_batching.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_chat_memory.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_chat_memory_ranking.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_embedding_cache_redis.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_embeddings.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_env_defaults.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_eval_harness.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_genai_metrics.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_genai_observability.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_generation_cache.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_generation_config.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_generator_defaults.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_gpu_validation.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_hardware.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_hardware_cgroup.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_hardware_nvml.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_hosted.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_hosted_interchangeability.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_hub.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_hybrid.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_image.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_inventory.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_lifecycle.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_moderation.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_ollama.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_onnx_embed.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_openai_compat.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_pipeline.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_pipeline_integration.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_precision_kwarg.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_rag.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_rag_extract_pinning.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_rag_identity.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_refinements.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_registry.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_rerank.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_router.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_router_limits.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_structured.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_structured_extraction.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_structured_parity.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_structured_retry.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_text.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_text_cancellation.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_text_concurrency.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_text_lifecycle.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_text_seed.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_textgen_embed_metrics.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_tokens.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_tracing.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_usage.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_usage_cache_hit.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_vectorstore.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_vectorstore_ann.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_vectorstore_pg_live.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_vision_text.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/genai/test_vision_text_config.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/geo/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/geo/fixtures/nominatim_reverse_coivaras.json +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/geo/fixtures/nominatim_reverse_sao_jose_da_tenda.json +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/geo/fixtures/nominatim_reverse_sao_paulo.json +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/geo/fixtures/nominatim_reverse_teresina.json +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/geo/test_br.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/geo/test_db.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/geo/test_db_postgres_live.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/geo/test_distance.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/geo/test_estimate.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/geo/test_geocoding.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/geo/test_geocoding_cache.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/geo/test_geometry.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/geo/test_polyline.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/geo/test_routing.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/geo/test_routing_extra.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/hostbridge/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/hostbridge/conftest.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/hostbridge/test_bridge_files.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/hostbridge/test_bridge_host.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/hostbridge/test_messages.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/hostbridge/test_paths.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/hostbridge/test_router.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/hostbridge/test_shell.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/messaging/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/messaging/zap/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/messaging/zap/test_generated_drift.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/messaging/zap/test_router.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/messaging/zap/test_webhooks.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/messaging/zap_ws/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/messaging/zap_ws/test_generated_drift.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/adapters/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/card_approved.json +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/card_cancel_auth.json +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/card_capture.json +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/card_get_after_refund.json +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/card_manual.json +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/card_manual_cancel.json +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/card_refund_partial.json +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/card_refund_rest.json +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/card_rejected.json +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/pix_cancel.json +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/pix_create.json +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/pix_get.json +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/pix_get_after_cancel.json +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/pix_get_after_partial_refund.json +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/pix_get_after_refund.json +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/pix_get_expired.json +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/pix_get_paid.json +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/pix_refund_partial.json +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/pix_refund_rest.json +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/pix_refund_unpaid.json +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/adapters/test_mercado_pago_adapter.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/adapters/test_mercado_pago_sandbox.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/adapters/test_openpix_adapter.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/adapters/test_openpix_adapter_wire.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/adapters/test_openpix_payout_wire.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/mercado_pago/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/mercado_pago/fixtures/chargebacks_search.json +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/mercado_pago/fixtures/users_me.json +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/mercado_pago/test_deprecations.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/mercado_pago/test_generated_drift.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/mercado_pago/test_mercado_pago.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/mercado_pago/test_overlay.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/mercado_pago/test_provenance.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/mercado_pago/test_sandbox_observations.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/mercado_pago/test_sdk_coverage.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/mercado_pago/test_webhook_dependency.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/openpix/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/openpix/test_generated_drift.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/openpix/test_openpix.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/openpix/test_overlay.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/openpix/test_real_payload_shapes.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/openpix/test_request_body_shape.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/openpix/test_spec_type_conflicts.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/stripe/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/stripe/test_client.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/stripe/test_generated_drift.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/stripe/test_money.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/stripe/test_webhooks.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/test_contract.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/test_routing.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/payment/test_settlement.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/subscriptions/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/subscriptions/revenuecat/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/subscriptions/revenuecat/conftest.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/subscriptions/revenuecat/test_client.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/subscriptions/revenuecat/test_snapshot.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/subscriptions/revenuecat/test_vendored_docs.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/integrations/subscriptions/revenuecat/test_webhooks.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/modelops/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/modelops/conftest.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/modelops/test_bench.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/modelops/test_compact.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/modelops/test_compose.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/modelops/test_edge.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/modelops/test_energy.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/modelops/test_export.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/modelops/test_monitoring.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/modelops/test_pickled.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/modelops/test_quantize.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/modelops/test_ranking.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/modelops/test_router.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/modelops/test_serving.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/modelops/test_sklearn_export.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/modelops/test_static.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/openapi/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/openapi/conftest.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/openapi/test_divergent_success.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/openapi/test_form_bodies.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/openapi/test_generate.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/openapi/test_hostile_spec.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/openapi/test_loader.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/openapi/test_multipart_bodies.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/openapi/test_naming.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/openapi/test_nested_capture.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/openapi/test_parse.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/openapi/test_payload_arrays.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/openapi/test_raw_responses.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/pdf/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/pdf/test_assets.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/pdf/test_formatting.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/pdf/test_pages.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/pdf/test_qr.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/pdf/test_reader.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/pdf/test_renderer.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/pdf/test_router_and_cli.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/privacy/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/privacy/test_graph.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/push/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/push/test_fcm_disabled.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/push/test_router.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/push/test_router_ownership.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/push/test_service.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/push/test_transports.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/queue/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/queue/test_broker.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/queue/test_consumer.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/queue/test_dedup.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/queue/test_manager.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/queue/test_prefetch.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/queue/test_publisher.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/queue/test_reliability.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/queue/test_topology.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/queue/test_tracing.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/reviews/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/reviews/test_reviews.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/schemas/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/schemas/test_base.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/schemas/test_cursor_pagination.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/schemas/test_errors.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/schemas/test_link_headers.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/schemas/test_pagination.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/schemas/test_pagination_order_guard.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/schemas/test_response.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/services/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/services/test_base.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/services/test_file_mixin.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/sessions/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/sessions/test_credentials_html.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/sessions/test_session_dependency_factory.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/sessions/test_sessions.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/settings/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/settings/test_auth_link_guard.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/settings/test_base.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/settings/test_environment.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/settings/test_hosted_genai_settings.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/settings/test_integration_flags.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/settings/test_mixins.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/settings/test_session_cookie_kwargs.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/settings/test_storage_settings.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/settings/test_trusted_ip_header.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/settings/test_version.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/spreadsheet/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/spreadsheet/test_formats.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/spreadsheet/test_google.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/spreadsheet/test_limits.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/spreadsheet/test_reader.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/spreadsheet/test_reader_async.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/spreadsheet/test_writer.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/sse/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/sse/test_broker.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/sse/test_event_stream.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/ssr/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/ssr/test_attributes.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/ssr/test_confirm.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/ssr/test_flashes.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/ssr/test_html_errors.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/ssr/test_integration.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/ssr/test_page.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/ssr/test_page_document.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/ssr/test_redirects.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/ssr/test_response.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/ssr/test_web_app_theme.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/ssr/test_webapp.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/ssr/test_webapp_caching.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/storage/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/storage/test_accel_redirect_live.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/storage/test_disabled_client.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/storage/test_download_live.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/storage/test_minio_client.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/storage/test_signed_url_live.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/tasks/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/tasks/test_cancellation.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/tasks/test_cron.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/tasks/test_dead_letter.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/tasks/test_heartbeat.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/tasks/test_jobs.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/tasks/test_jobs_cancellation.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/tasks/test_jobs_dispatch.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/tasks/test_manager.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/tasks/test_observability.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/tasks/test_oop.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/tasks/test_progress.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/tasks/test_queue.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/tasks/test_queue_from_settings.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/tasks/test_queue_lifecycle_hooks.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/tasks/test_queue_typing.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/tasks/test_scheduler.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/tasks/test_scheduler_lease.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/tasks/test_stages.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_admin_principal_guard.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_agent_docs_guard.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_alembic_env_lint_guard.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_alias_guard.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_cli_extra_guard.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_constraint_shape_guard.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_docs_api_guard.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_docs_examples_compile.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_docs_examples_names.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_docs_method_guard.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_docs_organization.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_docs_signature_guard.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_docs_type_guard.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_docstring_example_guard.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_engine_configuration_guard.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_enum_schema_guard.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_factory_param_exports_guard.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_i18n_coverage_guard.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_kwargs_guard.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_llmstxt.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_lock_version_guard.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_mfa_token_paths_guard.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_protocol_shape_guard.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_pydantic_error_types_guard.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_pydantic_mypy_guard.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_reexport_guard.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_reference_coverage.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_release_flow_guard.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_schedule_projection_guard.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_sdist_payload.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_session_factory_guard.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_settings_passthrough_guard.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_spreadsheet_event_loop_guard.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_supply_chain_guard.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_testclient_httpx2_guard.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_timeout_method_guard.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_vacuous_guard.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_version_agreement.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_wallet_concurrency_guard.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_wallet_update_shape_guard.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/test_wheel_payload.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/testing/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/testing/test_database.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/testing/test_factories.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/testing/test_fakes_contract.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/ui/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/ui/test_components.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/ui/test_core_contract.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/ui/test_css.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/ui/test_css_router.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/ui/test_forms_dependency.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/ui/test_forms_file.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/ui/test_forms_help_text.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/ui/test_forms_hidden.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/ui/test_forms_introspect.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/ui/test_forms_parse.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/ui/test_forms_render.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/ui/test_integration.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/ui/test_layout_and_pages.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/ui/test_stylesheet.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/utils/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/utils/test_client_ip.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/utils/test_currency.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/utils/test_datetime.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/utils/test_dict.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/utils/test_download.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/utils/test_email.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/utils/test_email_disabled.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/utils/test_fields.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/utils/test_file_store.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/utils/test_forms.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/utils/test_http_client.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/utils/test_jwt.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/utils/test_lazy_extras.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/utils/test_locations.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/utils/test_log.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/utils/test_media_types.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/utils/test_metrics.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/utils/test_opaque_token.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/utils/test_password.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/utils/test_regex.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/utils/test_retry.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/utils/test_settings_discovery.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/utils/test_signed_url.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/utils/test_storage_backends.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/utils/test_throttle.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/utils/test_token_types.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/utils/test_upload.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/utils/test_upload_signature_policy.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/utils/test_url.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/vision/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/vision/test_detect_classify.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/vision/test_router.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/vision/test_vision.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/wallet/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/wallet/support.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/wallet/test_money.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/wallet/test_router.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/wallet/test_service.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/wallet/test_wallet_live.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/webpush/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/webpush/test_dispatcher.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/webpush/test_router.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/webpush/test_router_ownership.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/webpush/test_schemas.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/webpush/test_service.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/websockets/__init__.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/websockets/test_heartbeat.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/websockets/test_hub_and_router.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/tests/websockets/test_router_live.py +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/vendor/PROVENANCE.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/vendor/mercadopago-evidence.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/vendor/mercadopago-openapi.yaml +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/vendor/openpix-evidence.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/vendor/openpix-openapi.json +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/vendor/revenuecat-webhook-event-types.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/vendor/revenuecat-webhook-sample-events.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/vendor/revenuecat-webhooks.md +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/vendor/stripe-api-facts.yaml +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/vendor/zap-asyncapi.yaml +0 -0
- {tempest_fastapi_sdk-0.320.0 → tempest_fastapi_sdk-0.321.0}/vendor/zap-openapi.yaml +0 -0
|
@@ -7,6 +7,49 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.321.0] — 2026-10-21
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- Upload direto sob o prefixo do titular no `SubjectObjectStorage`:
|
|
15
|
+
`presign_put(subject_id, name, *, expires=timedelta(minutes=15))` assina o
|
|
16
|
+
`PUT` de `key(subject_id, name)`; `stat(subject_id, name)` devolve o
|
|
17
|
+
`ObjectStat`; `read(subject_id, name, *, max_bytes=None)` lê o objeto e,
|
|
18
|
+
com `max_bytes`, pede ao storage só esse tanto (leitura com `Range` pelo
|
|
19
|
+
`stream_object(..., length=max_bytes)`) e para de ler ali mesmo se o
|
|
20
|
+
storage mandar mais — passe `limite + 1` e compare o tamanho para saber se
|
|
21
|
+
o objeto passou do limite sem trazê-lo inteiro. `max_bytes` menor que `1`
|
|
22
|
+
é `ValueError`. Os três validam nome e titular como o `put` e o `presign`,
|
|
23
|
+
propagam o erro do cliente sem tradução (`S3Error` com `NoSuchKey` para
|
|
24
|
+
objeto que não existe, medido contra MinIO em
|
|
25
|
+
`tests/privacy/test_storage_live.py`) e, com o storage desligado
|
|
26
|
+
(`STORAGE_ENABLED=false`), recusam com `IntegrationDisabledException`. O
|
|
27
|
+
consumidor deixa de chamar `storage.client.presigned_put_url(storage.key(...))`
|
|
28
|
+
à mão, que contornava o escopo por titular.
|
|
29
|
+
- `FakeObjectStorageClient` ganhou `presigned_put_url` (URL determinística
|
|
30
|
+
`https://fake-storage/<bucket>/<key>?method=PUT&expires=<s>`),
|
|
31
|
+
`stat_object` (tamanho, ETag MD5 e o content type/metadata dados ao
|
|
32
|
+
`put_object`, que agora são guardados; `raw` é `None`) e `stream_object`
|
|
33
|
+
(respeita `offset`/`length`, em pedaços de `FAKE_STREAM_CHUNK_SIZE`).
|
|
34
|
+
Chave inexistente nos dois últimos levanta `FileNotFoundError`
|
|
35
|
+
(`"NoSuchKey: <key>"`), no lugar do `S3Error` do cliente real. O
|
|
36
|
+
`fail_next` cobre as três chamadas.
|
|
37
|
+
|
|
38
|
+
### Changed
|
|
39
|
+
|
|
40
|
+
- **O protocolo `SubjectStorageClient` ganhou três membros:**
|
|
41
|
+
`presigned_put_url`, `stat_object` e `stream_object` (assinaturas do
|
|
42
|
+
`AsyncMinIOClient`). `AsyncMinIOClient` e `FakeObjectStorageClient` já
|
|
43
|
+
cumprem. Um cliente próprio que implemente o protocolo e seja passado ao
|
|
44
|
+
`SubjectObjectStorage` deixa de passar no type-checker até ganhar os três —
|
|
45
|
+
em runtime nada muda enquanto os métodos novos do storage não forem
|
|
46
|
+
chamados.
|
|
47
|
+
|
|
48
|
+
### Security
|
|
49
|
+
|
|
50
|
+
- Piso do `pypdf` (extra `pdf-read` e os que o incluem) sobe para `>=6.21.1`:
|
|
51
|
+
CVE-2026-113786, CVE-2026-113792 e CVE-2026-113793 em 6.20.0. Lock em 6.21.2.
|
|
52
|
+
|
|
10
53
|
## [0.320.0] — 2026-10-20
|
|
11
54
|
|
|
12
55
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: tempest-fastapi-sdk
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.321.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
|
|
@@ -63,7 +63,7 @@ Requires-Dist: prometheus-client>=0.26.0; extra == 'all'
|
|
|
63
63
|
Requires-Dist: psutil>=7.2.2; extra == 'all'
|
|
64
64
|
Requires-Dist: pyjwt>=2.13.0; extra == 'all'
|
|
65
65
|
Requires-Dist: pyotp>=2.10.0; extra == 'all'
|
|
66
|
-
Requires-Dist: pypdf>=6.
|
|
66
|
+
Requires-Dist: pypdf>=6.21.1; extra == 'all'
|
|
67
67
|
Requires-Dist: python-multipart>=0.0.32; extra == 'all'
|
|
68
68
|
Requires-Dist: pywebpush>=2.5.0; extra == 'all'
|
|
69
69
|
Requires-Dist: pyyaml>=6.0.3; extra == 'all'
|
|
@@ -180,7 +180,7 @@ Requires-Dist: weasyprint>=69.0; extra == 'pdf'
|
|
|
180
180
|
Provides-Extra: pdf-layout
|
|
181
181
|
Requires-Dist: pdfplumber>=0.11.7; extra == 'pdf-layout'
|
|
182
182
|
Provides-Extra: pdf-read
|
|
183
|
-
Requires-Dist: pypdf>=6.
|
|
183
|
+
Requires-Dist: pypdf>=6.21.1; extra == 'pdf-read'
|
|
184
184
|
Provides-Extra: postgres
|
|
185
185
|
Requires-Dist: asyncpg>=0.31.0; extra == 'postgres'
|
|
186
186
|
Provides-Extra: prometheus
|
|
@@ -433,7 +433,7 @@ Since `0.7.1` every optional dependency is imported lazily at first instantiatio
|
|
|
433
433
|
| `tempest_fastapi_sdk.ssr` *(extra: `[ssr]`)* | `Page` (typed component base), `html_response` (widget tree → `HTMLResponse`, full document or HTMX fragment), `make_htmx_router` (serves bundled HTMX and the `data-confirm` listener locally, no CDN); `htmx()` / `aria()` / `data()` / `confirm()` (typed builders for the `hx-*` / `aria-*` / `data-*` `attrs` map); `FlashMiddleware` + `flash` / `get_flashes` (signed read-once flash cookie), `redirect_back` (Referer validated against host and prefix), `register_html_error_handlers` (error page on GET, flash + 303 on POST, JSON kept for the API); `make_web_app_router` (serve a compiled static/wasm `tempestweb build` as a router, SPA history fallback, `304 Not Modified` on `If-None-Match` / `If-Modified-Since`, `immutable=` globs or an `immutable.json` in the build for year-long `immutable` caching of content-addressed paths), `build_web_app` (host a server-mode build as a WS/SSE sub-app, `theme=` handing a palette to every session's `App`, which the components its `view` builds resolve against), `detect_build_mode` |
|
|
434
434
|
| `tempest_fastapi_sdk.ui` *(extra: `[ssr]`)* | The interface layer, mirroring a service's `src/ui/`: `ui.pages` (`Page` with class-level `stylesheets` / `head` / `title_suffix`, `ErrorPage`), `ui.layout` (`Shell` with `width="full"`, `Grid`), `ui.components` (`Card`, `Alert`, `DataTable`, `TableColumn`, `Pagination`, `EmptyState`, `FlashMessages`, `NavBar`, `component_stylesheet`), `ui.forms` (`form_for`, `form_spec_for`, `render_form`, `parse_form`, `form_dependency`, `FormResult`, `form_stylesheet` — a form generated from a Pydantic schema and read back into it, hidden fields and `UploadFile` uploads included), `ui.css` (`StyleSheet`, `Rule`, `Media`, `ThemeTokens`, `cls`, `make_css_router`, `StyleSheet.url`), `app_stylesheet` |
|
|
435
435
|
| `tempest_fastapi_sdk.storage` *(extra: `[minio]`)* | `AsyncMinIOClient` (+ batch `presigned_get_urls` / `put_objects` / `get_objects_bytes`; download through the app with `download_response(key, request=...)`, which honours `Range` and revalidation, `accel_redirect_response` for nginx `X-Accel-Redirect`, and `serve_object`, which picks between them by the constructor's `accel_redirect` — `STORAGE_ACCEL_REDIRECT` / `STORAGE_ACCEL_PREFIX` through `storage_kwargs()`), `ObjectStat`, `PutObjectItem`, batch delete `remove_objects` → `ObjectDeleteError` — async MinIO/S3 facade |
|
|
436
|
-
| `tempest_fastapi_sdk.privacy` *(`SubjectObjectStorage` needs `[minio]`)* | Data subject export and erasure (LGPD art. 18): `SubjectGraph` derives from `MetaData` the tables a delete of the subject's root row reaches by `ON DELETE CASCADE` — `tables()`, `export(session, id)` (JSON-ready rows, secret columns left out), `count(session, id)`, `condition(table, id)`, and `violations()` listing every foreign key into the closure that neither cascades nor is a justified `SET NULL` in `retained` (`tempest_fastapi_sdk.testing.assert_subject_graph_valid` makes it a CI guard); `SubjectObjectStorage` keeps a subject's objects under `<prefix>/<id
|
|
436
|
+
| `tempest_fastapi_sdk.privacy` *(`SubjectObjectStorage` needs `[minio]`)* | Data subject export and erasure (LGPD art. 18): `SubjectGraph` derives from `MetaData` the tables a delete of the subject's root row reaches by `ON DELETE CASCADE` — `tables()`, `export(session, id)` (JSON-ready rows, secret columns left out), `count(session, id)`, `condition(table, id)`, and `violations()` listing every foreign key into the closure that neither cascades nor is a justified `SET NULL` in `retained` (`tempest_fastapi_sdk.testing.assert_subject_graph_valid` makes it a CI guard); `SubjectObjectStorage` keeps a subject's objects under `<prefix>/<id>/`, signs direct uploads under that prefix (`presign_put`), verifies them with `stat` and a bounded `read(max_bytes=...)` (S3 `Range`), and `delete_all` erases the prefix in S3 batch deletes (`SubjectErasureError` lists refused keys) |
|
|
437
437
|
| `tempest_fastapi_sdk.tasks` *(extra: `[tasks]`)* | `TaskQueue` (typed TaskIQ facade — `.rabbitmq`/`.redis`/`.memory`, `@tq.task` → `Task.enqueue`/`.run`, `@tq.cron`/`@tq.interval`, `start_scheduler`, `enable_heartbeat` for worker/scheduler container healthchecks checked by `python -m tempest_fastapi_sdk.tasks.heartbeat`), `Task`; class-based tasks (`TaskDef` + `@task_method` + `TaskQueue.register`); cron helpers (`Cron` / `CronOffset` / `Weekday` + `daily`/`weekdays`/`every_n_minutes`/… builders); **jobs** — `BaseJobModel` + `JobStore` (one row per unit of long work: `enqueue`/`claim`/`succeed`/`fail`, `watch` for the screen, `reclaim_stale` + `redispatch_queued`, `succeed(values=...)` for project columns); **cancellation** — `JobStore.cancel`/`cancellation_watch` + `run_cancellable` (cooperative: the request writes `CANCELLED`, the worker aborts the in-flight call at a checkpoint) + `JobCancelledError`; **per-record pipelines** — `StageMap`/`StageStatus` (several independent stages on the record the screen already fetches, with an ownership check before writing); `AsyncTaskBrokerManager` / `AsyncTaskScheduler` (legacy wrappers) |
|
|
438
438
|
| `tempest_fastapi_sdk.utils` | `to_utc`, `utcnow`, `modify_dict`, `LogUtils` (root-scoped by default, `error_500` for the SDK's own `500.log`, `exc_info` — `bool` or `"auto"` — on every level method, and a `TypeError` naming any field that shadows a `LogRecord` attribute), `RetryPolicy`, `RetryLogger`, `async_retry`, `AttemptThrottle`/`ThrottleBackend`/`ThrottleStatus`/`InMemoryThrottleBackend`, `generate_opaque_token`/`hash_opaque_token`/`verify_opaque_token`, `sign_path`/`verify_path` (short-lived signed URLs for the app's own routes, stdlib only), `get_client_ip`/`get_client_ip_from_scope` (header value must parse as one IP; `parse_client_ip`), `ACCESS_TOKEN_TYPE`/`REFRESH_TOKEN_TYPE`/`MFA_TOKEN_TYPE`/`token_type_allowed`, `PasswordUtils` *(extra: `[auth]`)*, `JWTUtils` *(extra: `[auth]`)*, `TOTPHelper` *(extra: `[mfa]`)*, `EmailUtils` *(extra: `[email]`)*, `UploadUtils`/`sniff_mime` *(extra: `[upload]`)*, `DownloadUtils`/`build_content_disposition`/`INLINE_SAFE_MEDIA_TYPES` *(no extra)*, `FileStoreUtils` — unified upload+download+presign facade *(extra: `[upload]` local / `[minio]` MinIO)*, `MetricsUtils`/`CPUMetrics`/`MemoryMetrics`/`DiskMetrics`/`GPUMetrics`/`SystemMetrics` *(extra: `[metrics]`)*, validated field types (`PositiveIntField`, `NonNegativeIntField`, `CentsField`, `PortField`, `PositiveFloatField`, `NonNegativeFloatField`, `PercentField`, `RatingField`, `RatioField`, `LatitudeField`, `LongitudeField`, `PriceField`, `NonEmptyStrField`, `SlugField`, `HexColorField`, `LocaleField`), BR regex helpers (`CPFField`, `CNPJField`, `CPFOrCNPJField`, `PhoneBRField`, `MobilePhoneBRField`, `CEPField`, `PixKeyField` — old names without the suffix kept as deprecated aliases — `PixKeyType`/`detect_pix_key_type`/`is_valid_pix_key`, `is_valid_*`, `normalize_*`, `only_digits`, `*_PATTERN`), BR states/cities (`UF`, `Region`, `StateBR`, `CityBR`, `ChoiceBR`, `UFField`, `CityNameField`, `list_states`, `get_state`, `cities_by_uf`, `states_by_region`, `uf_choices`/`region_choices`/`city_choices`, `is_valid_uf`/`normalize_uf`, `is_valid_city`/`normalize_city`) |
|
|
439
439
|
| `tempest_fastapi_sdk.utils.http_client` *(extra: `[http]`)* | `HTTPClient`, `CircuitOpenError`, `REQUEST_ID_HEADER` — typed httpx wrapper. `RetryPolicy` now lives in `tempest_fastapi_sdk.utils.retry` (the backoff curve is not an HTTP idea), still importable from here; `async_retry`, which applies a policy to any coroutine, is new there and imports from `tempest_fastapi_sdk.utils` — its `logger=` is typed `RetryLogger`, a `Protocol` with `warning`/`error`, so a `logging.Logger` and a `LogUtils` are both accepted |
|
|
@@ -214,7 +214,7 @@ Since `0.7.1` every optional dependency is imported lazily at first instantiatio
|
|
|
214
214
|
| `tempest_fastapi_sdk.ssr` *(extra: `[ssr]`)* | `Page` (typed component base), `html_response` (widget tree → `HTMLResponse`, full document or HTMX fragment), `make_htmx_router` (serves bundled HTMX and the `data-confirm` listener locally, no CDN); `htmx()` / `aria()` / `data()` / `confirm()` (typed builders for the `hx-*` / `aria-*` / `data-*` `attrs` map); `FlashMiddleware` + `flash` / `get_flashes` (signed read-once flash cookie), `redirect_back` (Referer validated against host and prefix), `register_html_error_handlers` (error page on GET, flash + 303 on POST, JSON kept for the API); `make_web_app_router` (serve a compiled static/wasm `tempestweb build` as a router, SPA history fallback, `304 Not Modified` on `If-None-Match` / `If-Modified-Since`, `immutable=` globs or an `immutable.json` in the build for year-long `immutable` caching of content-addressed paths), `build_web_app` (host a server-mode build as a WS/SSE sub-app, `theme=` handing a palette to every session's `App`, which the components its `view` builds resolve against), `detect_build_mode` |
|
|
215
215
|
| `tempest_fastapi_sdk.ui` *(extra: `[ssr]`)* | The interface layer, mirroring a service's `src/ui/`: `ui.pages` (`Page` with class-level `stylesheets` / `head` / `title_suffix`, `ErrorPage`), `ui.layout` (`Shell` with `width="full"`, `Grid`), `ui.components` (`Card`, `Alert`, `DataTable`, `TableColumn`, `Pagination`, `EmptyState`, `FlashMessages`, `NavBar`, `component_stylesheet`), `ui.forms` (`form_for`, `form_spec_for`, `render_form`, `parse_form`, `form_dependency`, `FormResult`, `form_stylesheet` — a form generated from a Pydantic schema and read back into it, hidden fields and `UploadFile` uploads included), `ui.css` (`StyleSheet`, `Rule`, `Media`, `ThemeTokens`, `cls`, `make_css_router`, `StyleSheet.url`), `app_stylesheet` |
|
|
216
216
|
| `tempest_fastapi_sdk.storage` *(extra: `[minio]`)* | `AsyncMinIOClient` (+ batch `presigned_get_urls` / `put_objects` / `get_objects_bytes`; download through the app with `download_response(key, request=...)`, which honours `Range` and revalidation, `accel_redirect_response` for nginx `X-Accel-Redirect`, and `serve_object`, which picks between them by the constructor's `accel_redirect` — `STORAGE_ACCEL_REDIRECT` / `STORAGE_ACCEL_PREFIX` through `storage_kwargs()`), `ObjectStat`, `PutObjectItem`, batch delete `remove_objects` → `ObjectDeleteError` — async MinIO/S3 facade |
|
|
217
|
-
| `tempest_fastapi_sdk.privacy` *(`SubjectObjectStorage` needs `[minio]`)* | Data subject export and erasure (LGPD art. 18): `SubjectGraph` derives from `MetaData` the tables a delete of the subject's root row reaches by `ON DELETE CASCADE` — `tables()`, `export(session, id)` (JSON-ready rows, secret columns left out), `count(session, id)`, `condition(table, id)`, and `violations()` listing every foreign key into the closure that neither cascades nor is a justified `SET NULL` in `retained` (`tempest_fastapi_sdk.testing.assert_subject_graph_valid` makes it a CI guard); `SubjectObjectStorage` keeps a subject's objects under `<prefix>/<id
|
|
217
|
+
| `tempest_fastapi_sdk.privacy` *(`SubjectObjectStorage` needs `[minio]`)* | Data subject export and erasure (LGPD art. 18): `SubjectGraph` derives from `MetaData` the tables a delete of the subject's root row reaches by `ON DELETE CASCADE` — `tables()`, `export(session, id)` (JSON-ready rows, secret columns left out), `count(session, id)`, `condition(table, id)`, and `violations()` listing every foreign key into the closure that neither cascades nor is a justified `SET NULL` in `retained` (`tempest_fastapi_sdk.testing.assert_subject_graph_valid` makes it a CI guard); `SubjectObjectStorage` keeps a subject's objects under `<prefix>/<id>/`, signs direct uploads under that prefix (`presign_put`), verifies them with `stat` and a bounded `read(max_bytes=...)` (S3 `Range`), and `delete_all` erases the prefix in S3 batch deletes (`SubjectErasureError` lists refused keys) |
|
|
218
218
|
| `tempest_fastapi_sdk.tasks` *(extra: `[tasks]`)* | `TaskQueue` (typed TaskIQ facade — `.rabbitmq`/`.redis`/`.memory`, `@tq.task` → `Task.enqueue`/`.run`, `@tq.cron`/`@tq.interval`, `start_scheduler`, `enable_heartbeat` for worker/scheduler container healthchecks checked by `python -m tempest_fastapi_sdk.tasks.heartbeat`), `Task`; class-based tasks (`TaskDef` + `@task_method` + `TaskQueue.register`); cron helpers (`Cron` / `CronOffset` / `Weekday` + `daily`/`weekdays`/`every_n_minutes`/… builders); **jobs** — `BaseJobModel` + `JobStore` (one row per unit of long work: `enqueue`/`claim`/`succeed`/`fail`, `watch` for the screen, `reclaim_stale` + `redispatch_queued`, `succeed(values=...)` for project columns); **cancellation** — `JobStore.cancel`/`cancellation_watch` + `run_cancellable` (cooperative: the request writes `CANCELLED`, the worker aborts the in-flight call at a checkpoint) + `JobCancelledError`; **per-record pipelines** — `StageMap`/`StageStatus` (several independent stages on the record the screen already fetches, with an ownership check before writing); `AsyncTaskBrokerManager` / `AsyncTaskScheduler` (legacy wrappers) |
|
|
219
219
|
| `tempest_fastapi_sdk.utils` | `to_utc`, `utcnow`, `modify_dict`, `LogUtils` (root-scoped by default, `error_500` for the SDK's own `500.log`, `exc_info` — `bool` or `"auto"` — on every level method, and a `TypeError` naming any field that shadows a `LogRecord` attribute), `RetryPolicy`, `RetryLogger`, `async_retry`, `AttemptThrottle`/`ThrottleBackend`/`ThrottleStatus`/`InMemoryThrottleBackend`, `generate_opaque_token`/`hash_opaque_token`/`verify_opaque_token`, `sign_path`/`verify_path` (short-lived signed URLs for the app's own routes, stdlib only), `get_client_ip`/`get_client_ip_from_scope` (header value must parse as one IP; `parse_client_ip`), `ACCESS_TOKEN_TYPE`/`REFRESH_TOKEN_TYPE`/`MFA_TOKEN_TYPE`/`token_type_allowed`, `PasswordUtils` *(extra: `[auth]`)*, `JWTUtils` *(extra: `[auth]`)*, `TOTPHelper` *(extra: `[mfa]`)*, `EmailUtils` *(extra: `[email]`)*, `UploadUtils`/`sniff_mime` *(extra: `[upload]`)*, `DownloadUtils`/`build_content_disposition`/`INLINE_SAFE_MEDIA_TYPES` *(no extra)*, `FileStoreUtils` — unified upload+download+presign facade *(extra: `[upload]` local / `[minio]` MinIO)*, `MetricsUtils`/`CPUMetrics`/`MemoryMetrics`/`DiskMetrics`/`GPUMetrics`/`SystemMetrics` *(extra: `[metrics]`)*, validated field types (`PositiveIntField`, `NonNegativeIntField`, `CentsField`, `PortField`, `PositiveFloatField`, `NonNegativeFloatField`, `PercentField`, `RatingField`, `RatioField`, `LatitudeField`, `LongitudeField`, `PriceField`, `NonEmptyStrField`, `SlugField`, `HexColorField`, `LocaleField`), BR regex helpers (`CPFField`, `CNPJField`, `CPFOrCNPJField`, `PhoneBRField`, `MobilePhoneBRField`, `CEPField`, `PixKeyField` — old names without the suffix kept as deprecated aliases — `PixKeyType`/`detect_pix_key_type`/`is_valid_pix_key`, `is_valid_*`, `normalize_*`, `only_digits`, `*_PATTERN`), BR states/cities (`UF`, `Region`, `StateBR`, `CityBR`, `ChoiceBR`, `UFField`, `CityNameField`, `list_states`, `get_state`, `cities_by_uf`, `states_by_region`, `uf_choices`/`region_choices`/`city_choices`, `is_valid_uf`/`normalize_uf`, `is_valid_city`/`normalize_city`) |
|
|
220
220
|
| `tempest_fastapi_sdk.utils.http_client` *(extra: `[http]`)* | `HTTPClient`, `CircuitOpenError`, `REQUEST_ID_HEADER` — typed httpx wrapper. `RetryPolicy` now lives in `tempest_fastapi_sdk.utils.retry` (the backoff curve is not an HTTP idea), still importable from here; `async_retry`, which applies a policy to any coroutine, is new there and imports from `tempest_fastapi_sdk.utils` — its `logger=` is typed `RetryLogger`, a `Protocol` with `warning`/`error`, so a `logging.Logger` and a `LogUtils` are both accepted |
|
|
@@ -3304,7 +3304,9 @@ secret_columns=..., secret_markers=...)` com `tables()`, `export(session, id)`,
|
|
|
3304
3304
|
`count(session, id)`, `condition(table, id)`, `exported_columns(table)` e
|
|
3305
3305
|
`violations()`; `assert_subject_graph_valid` em `tempest_fastapi_sdk.testing`.
|
|
3306
3306
|
`SubjectObjectStorage(client, prefix=..., bucket=...)` com `put`, `presign`,
|
|
3307
|
-
`names`, `delete`, `delete_all` (lote) e `SubjectErasureError
|
|
3307
|
+
`names`, `delete`, `delete_all` (lote) e `SubjectErasureError`; upload direto
|
|
3308
|
+
com `presign_put`, `stat` e `read(max_bytes=...)` (leitura com `Range`)
|
|
3309
|
+
na release seguinte à 0.320.0. No storage,
|
|
3308
3310
|
`AsyncMinIOClient.remove_objects` + `ObjectDeleteError`. Fora: vínculo sem FK
|
|
3309
3311
|
(audit trail, id em JSON), raiz com PK composta, busca/cache/backup. Receita
|
|
3310
3312
|
`recipes/subject-data.md`. Testes: `tests/privacy/`,
|
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
Breaking-change walkthroughs grouped by minor release. Stick to the version that matches what you're upgrading **from**. The release sections are listed newest-first, so on a multi-version jump read and apply them bottom-up.
|
|
4
4
|
|
|
5
|
+
## 0.321.0 — `SubjectStorageClient` gains three methods
|
|
6
|
+
|
|
7
|
+
The `SubjectStorageClient` protocol (the type of `SubjectObjectStorage.client`)
|
|
8
|
+
now declares `presigned_put_url`, `stat_object` and `stream_object`, which
|
|
9
|
+
`SubjectObjectStorage` uses for direct upload (`presign_put`, `stat`, `read`).
|
|
10
|
+
`AsyncMinIOClient` and `FakeObjectStorageClient` already implement all three.
|
|
11
|
+
|
|
12
|
+
### What to do
|
|
13
|
+
|
|
14
|
+
- A custom client implementing the protocol: add the three methods, with
|
|
15
|
+
`AsyncMinIOClient`'s signatures (without `stream_object`'s `chunk_size`).
|
|
16
|
+
Without them, the type checker rejects the client.
|
|
17
|
+
- Code calling `storage.client.presigned_put_url(storage.key(...))`,
|
|
18
|
+
`stat_object` or `stream_object` directly can switch to `presign_put`,
|
|
19
|
+
`stat` and `read(max_bytes=...)`, which pin the subject prefix.
|
|
20
|
+
|
|
5
21
|
## 0.320.0 — production guard for e-mail and links
|
|
6
22
|
|
|
7
23
|
With `ENV=production` and e-mail on (a missing `EMAIL_ENABLED` counts as on),
|
|
@@ -2,6 +2,23 @@
|
|
|
2
2
|
|
|
3
3
|
Passo a passo das mudanças que quebram compatibilidade, agrupadas por release minor. Siga a versão que casa com aquela **de onde** você está atualizando. As seções estão listadas da mais nova para a mais antiga, então num salto de várias versões leia e aplique-as de baixo para cima.
|
|
4
4
|
|
|
5
|
+
## 0.321.0 — `SubjectStorageClient` ganha três métodos
|
|
6
|
+
|
|
7
|
+
O protocolo `SubjectStorageClient` (o tipo do `client` do
|
|
8
|
+
`SubjectObjectStorage`) passa a declarar `presigned_put_url`, `stat_object`
|
|
9
|
+
e `stream_object`, que o `SubjectObjectStorage` usa no upload direto
|
|
10
|
+
(`presign_put`, `stat`, `read`). `AsyncMinIOClient` e
|
|
11
|
+
`FakeObjectStorageClient` já implementam os três.
|
|
12
|
+
|
|
13
|
+
### O que fazer
|
|
14
|
+
|
|
15
|
+
- Cliente próprio que implementa o protocolo: implemente os três métodos,
|
|
16
|
+
com as assinaturas do `AsyncMinIOClient` (sem o `chunk_size` do
|
|
17
|
+
`stream_object`). Sem eles, o type-checker recusa o cliente.
|
|
18
|
+
- Código que chamava `storage.client.presigned_put_url(storage.key(...))`,
|
|
19
|
+
`stat_object` ou `stream_object` direto pode trocar por `presign_put`,
|
|
20
|
+
`stat` e `read(max_bytes=...)`, que fixam o prefixo do titular.
|
|
21
|
+
|
|
5
22
|
## 0.320.0 — guard de produção do e-mail e dos links
|
|
6
23
|
|
|
7
24
|
Com `ENV=production` e o e-mail ligado (`EMAIL_ENABLED` ausente conta como
|
|
@@ -493,7 +493,7 @@ come back here to plug in each capability as you need it.
|
|
|
493
493
|
| **[CLI »](cli.md)** | `tempest new` / `db` (+ `seed`) / `user` / `secrets rotate` / `lint` / `fix` / `format` / `type` / `test` / `check` |
|
|
494
494
|
| **[Comments + ratings »](reviews.md)** | `ReviewService`, `make_reviews_router`, 0–5 star scores with aggregation, threaded comments |
|
|
495
495
|
| **[Computer vision (ONNX) »](vision.md)** | `Detector` / `Classifier` / `Segmenter` + prediction schemas |
|
|
496
|
-
| **[Data subject export and erasure (LGPD) »](subject-data.md)** | `SubjectGraph` (the tables a subject's `DELETE` reaches by cascade, derived from `MetaData`), `export` without secret columns, `violations` + `assert_subject_graph_valid` as a CI guard, `SubjectObjectStorage` (per-subject prefix, batch `delete_all`) |
|
|
496
|
+
| **[Data subject export and erasure (LGPD) »](subject-data.md)** | `SubjectGraph` (the tables a subject's `DELETE` reaches by cascade, derived from `MetaData`), `export` without secret columns, `violations` + `assert_subject_graph_valid` as a CI guard, `SubjectObjectStorage` (per-subject prefix, direct upload with `presign_put` + bounded `read`, batch `delete_all`) |
|
|
497
497
|
| **[Database »](database.md)** | `BaseModel`, `AsyncDatabaseManager`, `BaseRepository` (CRUD + filters + bulk), offset/cursor pagination, mixins, `AlembicHelper`, `SlowQueryLogger` |
|
|
498
498
|
| **[Downloads »](downloads.md)** | `DownloadUtils` — `file_response`, `stream`, `build_content_disposition`, path-traversal safe |
|
|
499
499
|
| **[Enum columns (safe on both databases) »](enum-columns.md)** | `Mapped[MyEnum]` storing the `value`, native `ENUM` on PostgreSQL and a `CHECK` on SQLite, `enum_column()`, `op.replace_enum` + `sync_enum_types` for the migration autogenerate cannot see |
|
|
@@ -509,7 +509,7 @@ aqui pra plugar cada capacidade conforme precisar.
|
|
|
509
509
|
| **[Erros do app (relatados pelo cliente) »](app-errors.md)** | `make_app_error_model` (FK de usuário nullable, `SET NULL`, `created_at` indexado), `AppErrorService` (trunca em vez de recusar), listagem admin opt-in, intervalo de datas semiaberto |
|
|
510
510
|
| **[Erros no OpenAPI (Swagger) »](openapi-errors.md)** | `error_responses`, `@raises`, `TempestAPIRouter`, `ErrorResponseSchema`, `tempest openapi-errors --fix` |
|
|
511
511
|
| **[Escolhendo o modelo »](models.md)** | `TextModel` / `EmbeddingModel` / `RerankerModel` / `VisionModel` / `ImageModel` / `SpeechToTextModel` / `TextToSpeechModel` — ids do Hub com nome, e a tabela de caso de uso por trás de cada escolha |
|
|
512
|
-
| **[Exportação e exclusão de titular (LGPD) »](subject-data.md)** | `SubjectGraph` (tabelas que o `DELETE` do titular alcança por cascata, derivadas da `MetaData`), `export` sem colunas secretas, `violations` + `assert_subject_graph_valid` como guard de CI, `SubjectObjectStorage` (prefixo por titular, `delete_all` em lote) |
|
|
512
|
+
| **[Exportação e exclusão de titular (LGPD) »](subject-data.md)** | `SubjectGraph` (tabelas que o `DELETE` do titular alcança por cascata, derivadas da `MetaData`), `export` sem colunas secretas, `violations` + `assert_subject_graph_valid` como guard de CI, `SubjectObjectStorage` (prefixo por titular, upload direto com `presign_put` + `read` limitado, `delete_all` em lote) |
|
|
513
513
|
| **[Fakes (sem provedor real) »](fakes.md)** | `FakePixProvider`, `FakeCardProvider`, `FakePayoutProvider`, `FakeTextBackend`, `FakeModerationBackend`, `FakePushDispatcher`, `FakeEmailUtils`, `FakeGeocodingBackend`, `FakeRoutingBackend`, `FakeWebSearchBackend`, `FakeObjectStorageClient` — onze costuras sem credencial e sem rede, dirigíveis (`advance`, `flag`, `fail_next`) e inspecionáveis |
|
|
514
514
|
| **[Feature flags »](feature-flags.md)** | `FeatureFlags`, backends env/Redis/composto, `make_flag_dependency` |
|
|
515
515
|
| **[Fila e Tarefas »](queue-tasks.md)** | FastStream (`AsyncBrokerManager`), TaskIQ (`AsyncTaskBrokerManager`), `AsyncTaskScheduler`, outbox transacional |
|
|
@@ -488,6 +488,111 @@ asyncio.run(main())
|
|
|
488
488
|
`client.objects` shows what is left in the default bucket and
|
|
489
489
|
`client.deleted` what went, in order.
|
|
490
490
|
|
|
491
|
+
### Direct upload under the subject prefix
|
|
492
|
+
|
|
493
|
+
Evidence photo, document, avatar: the app uploads the file **straight to
|
|
494
|
+
S3**, without the bytes crossing the API. The server signs the URL, the app
|
|
495
|
+
does the `PUT`, and the server then checks what arrived before accepting it.
|
|
496
|
+
All three pieces live on `SubjectObjectStorage`, under the same subject
|
|
497
|
+
prefix — so the uploaded file also shows up in `names` and in `delete_all`:
|
|
498
|
+
|
|
499
|
+
- **`presign_put(subject_id, name, expires=...)`** returns the `PUT` URL of
|
|
500
|
+
`key(subject_id, name)`. Defaults to 15 minutes, the same as
|
|
501
|
+
`AsyncMinIOClient.presigned_put_url`.
|
|
502
|
+
- **`stat(subject_id, name)`** returns the `ObjectStat` (size, content type,
|
|
503
|
+
ETag, metadata) without downloading the object.
|
|
504
|
+
- **`read(subject_id, name, max_bytes=...)`** reads the object. With
|
|
505
|
+
`max_bytes`, it asks the store for only that much (a `Range` read) and
|
|
506
|
+
stops reading there even if the store sends more.
|
|
507
|
+
|
|
508
|
+
```python
|
|
509
|
+
import asyncio
|
|
510
|
+
from uuid import uuid4
|
|
511
|
+
|
|
512
|
+
from tempest_fastapi_sdk.privacy import SubjectObjectStorage
|
|
513
|
+
from tempest_fastapi_sdk.testing.fakes import FakeObjectStorageClient
|
|
514
|
+
|
|
515
|
+
MAX_PHOTO_BYTES: int = 5 * 1024 * 1024
|
|
516
|
+
JPEG_MAGIC: bytes = b"\xff\xd8\xff"
|
|
517
|
+
|
|
518
|
+
client = FakeObjectStorageClient()
|
|
519
|
+
storage = SubjectObjectStorage(client, prefix="users")
|
|
520
|
+
|
|
521
|
+
|
|
522
|
+
async def start_upload(user_id: int) -> tuple[str, str]:
|
|
523
|
+
"""Sign the PUT of a name the server chose."""
|
|
524
|
+
name = f"uploads/{uuid4().hex}.jpg"
|
|
525
|
+
return name, await storage.presign_put(user_id, name)
|
|
526
|
+
|
|
527
|
+
|
|
528
|
+
async def accept_upload(user_id: int, name: str) -> str | None:
|
|
529
|
+
"""Check what the app uploaded and keep it under a final name."""
|
|
530
|
+
stat = await storage.stat(user_id, name)
|
|
531
|
+
if stat.size > MAX_PHOTO_BYTES:
|
|
532
|
+
return None
|
|
533
|
+
data = await storage.read(user_id, name, max_bytes=MAX_PHOTO_BYTES + 1)
|
|
534
|
+
if len(data) > MAX_PHOTO_BYTES or not data.startswith(JPEG_MAGIC):
|
|
535
|
+
return None
|
|
536
|
+
key = await storage.put(
|
|
537
|
+
user_id, "photos/latest.jpg", data, content_type="image/jpeg"
|
|
538
|
+
)
|
|
539
|
+
await storage.delete(user_id, name)
|
|
540
|
+
return key
|
|
541
|
+
|
|
542
|
+
|
|
543
|
+
async def main() -> None:
|
|
544
|
+
"""Direct upload, verification and acceptance, with no MinIO."""
|
|
545
|
+
name, url = await start_upload(42)
|
|
546
|
+
print(storage.key(42, name) in url, "method=PUT" in url)
|
|
547
|
+
await client.put_object(
|
|
548
|
+
storage.key(42, name), JPEG_MAGIC + b"photo", content_type="image/jpeg"
|
|
549
|
+
)
|
|
550
|
+
print(await accept_upload(42, name))
|
|
551
|
+
print(await storage.names(42))
|
|
552
|
+
|
|
553
|
+
name, _ = await start_upload(42)
|
|
554
|
+
await client.put_object(storage.key(42, name), b"x" * (MAX_PHOTO_BYTES + 1))
|
|
555
|
+
print(await accept_upload(42, name))
|
|
556
|
+
|
|
557
|
+
|
|
558
|
+
asyncio.run(main())
|
|
559
|
+
```
|
|
560
|
+
|
|
561
|
+
```text
|
|
562
|
+
True True
|
|
563
|
+
users/42/photos/latest.jpg
|
|
564
|
+
['photos/latest.jpg']
|
|
565
|
+
None
|
|
566
|
+
```
|
|
567
|
+
|
|
568
|
+
- **The server picks the name** (`uploads/<uuid>.jpg`). The app never sends
|
|
569
|
+
a key or a prefix: the URL only reaches the subject prefix the server
|
|
570
|
+
signed.
|
|
571
|
+
- **Here `client.put_object` plays the app.** In production it is an HTTP
|
|
572
|
+
`PUT` to the URL, with the file as the body.
|
|
573
|
+
- **`stat` first, bounded `read` after.** `stat` turns down the large file
|
|
574
|
+
without downloading anything. But between `stat` and `read` the object can
|
|
575
|
+
be swapped for another one (the URL is still valid), so `read` asks for
|
|
576
|
+
`MAX_PHOTO_BYTES + 1`: `len(data) > MAX_PHOTO_BYTES` means "too large",
|
|
577
|
+
without ever pulling the rest into memory.
|
|
578
|
+
- **The URL signs neither size nor content type.** The app sends whatever it
|
|
579
|
+
wants; the check decides (here, size and the start of a JPEG). That is why
|
|
580
|
+
the checked bytes go to a final name with `put`, and the provisional
|
|
581
|
+
upload goes away with `delete`.
|
|
582
|
+
- **A missing object** (the app asked for the URL and never uploaded) makes
|
|
583
|
+
`stat` and `read` raise the client's error, untranslated: `S3Error` (code
|
|
584
|
+
`NoSuchKey`) from `AsyncMinIOClient`, `FileNotFoundError` from
|
|
585
|
+
`FakeObjectStorageClient`.
|
|
586
|
+
- **Storage disabled** (`STORAGE_ENABLED=false`): all three raise
|
|
587
|
+
`IntegrationDisabledException` (`503`), like `put` and `delete_all`.
|
|
588
|
+
|
|
589
|
+
!!! warning "`SubjectStorageClient` change"
|
|
590
|
+
The protocol gained `presigned_put_url`, `stat_object` and
|
|
591
|
+
`stream_object`. `AsyncMinIOClient` and `FakeObjectStorageClient` already
|
|
592
|
+
satisfy it; your own client implementing the protocol must add all three
|
|
593
|
+
to keep passing the type-checker.
|
|
594
|
+
|
|
595
|
+
|
|
491
596
|
## Putting both together in a service
|
|
492
597
|
|
|
493
598
|
Delete the files **before** the root row. If the store fails, the subject's
|
|
@@ -596,3 +701,6 @@ nested `IN (SELECT ...)` along the cascade path. It works in `select`,
|
|
|
596
701
|
nothing is left.
|
|
597
702
|
- `SubjectObjectStorage` keeps files under `<prefix>/<id>/` and `delete_all`
|
|
598
703
|
deletes the prefix in batch, without touching another subject.
|
|
704
|
+
- Direct upload: `presign_put` signs the `PUT` under the subject prefix,
|
|
705
|
+
`stat` and `read(max_bytes=limit + 1)` check what arrived without pulling a
|
|
706
|
+
large file whole into memory.
|
|
@@ -488,6 +488,111 @@ asyncio.run(main())
|
|
|
488
488
|
`client.objects` mostra o que sobrou no bucket padrão e `client.deleted` o que
|
|
489
489
|
saiu, em ordem.
|
|
490
490
|
|
|
491
|
+
### Upload direto sob o prefixo do titular
|
|
492
|
+
|
|
493
|
+
Foto de evidência, documento, avatar: o app sobe o arquivo **direto para o
|
|
494
|
+
S3**, sem os bytes passarem pela API. O servidor assina a URL, o app faz o
|
|
495
|
+
`PUT`, e depois o servidor confere o que chegou antes de aceitar. As três
|
|
496
|
+
peças moram no `SubjectObjectStorage`, sob o mesmo prefixo do titular — então
|
|
497
|
+
o arquivo enviado também sai no `names` e no `delete_all`:
|
|
498
|
+
|
|
499
|
+
- **`presign_put(subject_id, name, expires=...)`** devolve a URL de `PUT` de
|
|
500
|
+
`key(subject_id, name)`. Default de 15 minutos, o mesmo do
|
|
501
|
+
`AsyncMinIOClient.presigned_put_url`.
|
|
502
|
+
- **`stat(subject_id, name)`** devolve o `ObjectStat` (tamanho, content type,
|
|
503
|
+
ETag, metadata) sem baixar o objeto.
|
|
504
|
+
- **`read(subject_id, name, max_bytes=...)`** lê o objeto. Com `max_bytes`,
|
|
505
|
+
pede ao storage só esse tanto (leitura com `Range`) e para de ler ali
|
|
506
|
+
mesmo se o storage mandar mais.
|
|
507
|
+
|
|
508
|
+
```python
|
|
509
|
+
import asyncio
|
|
510
|
+
from uuid import uuid4
|
|
511
|
+
|
|
512
|
+
from tempest_fastapi_sdk.privacy import SubjectObjectStorage
|
|
513
|
+
from tempest_fastapi_sdk.testing.fakes import FakeObjectStorageClient
|
|
514
|
+
|
|
515
|
+
MAX_PHOTO_BYTES: int = 5 * 1024 * 1024
|
|
516
|
+
JPEG_MAGIC: bytes = b"\xff\xd8\xff"
|
|
517
|
+
|
|
518
|
+
client = FakeObjectStorageClient()
|
|
519
|
+
storage = SubjectObjectStorage(client, prefix="users")
|
|
520
|
+
|
|
521
|
+
|
|
522
|
+
async def start_upload(user_id: int) -> tuple[str, str]:
|
|
523
|
+
"""Assina o PUT de um nome que o servidor escolheu."""
|
|
524
|
+
name = f"uploads/{uuid4().hex}.jpg"
|
|
525
|
+
return name, await storage.presign_put(user_id, name)
|
|
526
|
+
|
|
527
|
+
|
|
528
|
+
async def accept_upload(user_id: int, name: str) -> str | None:
|
|
529
|
+
"""Confere o que o app subiu e guarda sob um nome definitivo."""
|
|
530
|
+
stat = await storage.stat(user_id, name)
|
|
531
|
+
if stat.size > MAX_PHOTO_BYTES:
|
|
532
|
+
return None
|
|
533
|
+
data = await storage.read(user_id, name, max_bytes=MAX_PHOTO_BYTES + 1)
|
|
534
|
+
if len(data) > MAX_PHOTO_BYTES or not data.startswith(JPEG_MAGIC):
|
|
535
|
+
return None
|
|
536
|
+
key = await storage.put(
|
|
537
|
+
user_id, "photos/latest.jpg", data, content_type="image/jpeg"
|
|
538
|
+
)
|
|
539
|
+
await storage.delete(user_id, name)
|
|
540
|
+
return key
|
|
541
|
+
|
|
542
|
+
|
|
543
|
+
async def main() -> None:
|
|
544
|
+
"""Upload direto, conferência e aceite, sem MinIO."""
|
|
545
|
+
name, url = await start_upload(42)
|
|
546
|
+
print(storage.key(42, name) in url, "method=PUT" in url)
|
|
547
|
+
await client.put_object(
|
|
548
|
+
storage.key(42, name), JPEG_MAGIC + b"photo", content_type="image/jpeg"
|
|
549
|
+
)
|
|
550
|
+
print(await accept_upload(42, name))
|
|
551
|
+
print(await storage.names(42))
|
|
552
|
+
|
|
553
|
+
name, _ = await start_upload(42)
|
|
554
|
+
await client.put_object(storage.key(42, name), b"x" * (MAX_PHOTO_BYTES + 1))
|
|
555
|
+
print(await accept_upload(42, name))
|
|
556
|
+
|
|
557
|
+
|
|
558
|
+
asyncio.run(main())
|
|
559
|
+
```
|
|
560
|
+
|
|
561
|
+
```text
|
|
562
|
+
True True
|
|
563
|
+
users/42/photos/latest.jpg
|
|
564
|
+
['photos/latest.jpg']
|
|
565
|
+
None
|
|
566
|
+
```
|
|
567
|
+
|
|
568
|
+
- **O servidor escolhe o nome** (`uploads/<uuid>.jpg`). O app nunca manda
|
|
569
|
+
chave nem prefixo: a URL só alcança o prefixo do titular que o servidor
|
|
570
|
+
assinou.
|
|
571
|
+
- **Aqui o `client.put_object` faz o papel do app.** Em produção é um `PUT`
|
|
572
|
+
HTTP na URL, com o corpo do arquivo.
|
|
573
|
+
- **`stat` primeiro, `read` limitado depois.** O `stat` recusa o grande sem
|
|
574
|
+
baixar nada. Mas entre o `stat` e o `read` o objeto pode ser trocado por
|
|
575
|
+
outro (a URL ainda vale), então o `read` pede `MAX_PHOTO_BYTES + 1`:
|
|
576
|
+
`len(data) > MAX_PHOTO_BYTES` quer dizer "grande demais", sem nunca trazer
|
|
577
|
+
o resto para a memória.
|
|
578
|
+
- **A URL não assina tamanho nem content type.** O app manda o que quiser;
|
|
579
|
+
quem decide se aceita é a conferência (aqui, o tamanho e o começo de um
|
|
580
|
+
JPEG). Por isso os bytes conferidos vão para um nome definitivo com `put`,
|
|
581
|
+
e o upload provisório sai com `delete`.
|
|
582
|
+
- **Objeto que não existe** (o app pediu a URL e não subiu) faz o `stat` e o
|
|
583
|
+
`read` levantarem o erro do cliente, sem tradução: `S3Error` (código
|
|
584
|
+
`NoSuchKey`) no `AsyncMinIOClient`, `FileNotFoundError` no
|
|
585
|
+
`FakeObjectStorageClient`.
|
|
586
|
+
- **Storage desligado** (`STORAGE_ENABLED=false`): as três respondem
|
|
587
|
+
`IntegrationDisabledException` (`503`), como `put` e `delete_all`.
|
|
588
|
+
|
|
589
|
+
!!! warning "Mudança no `SubjectStorageClient`"
|
|
590
|
+
O protocolo ganhou `presigned_put_url`, `stat_object` e `stream_object`.
|
|
591
|
+
`AsyncMinIOClient` e `FakeObjectStorageClient` já cumprem; um cliente seu
|
|
592
|
+
que implemente o protocolo precisa ganhar os três para continuar passando
|
|
593
|
+
no type-checker.
|
|
594
|
+
|
|
595
|
+
|
|
491
596
|
## Juntando os dois num service
|
|
492
597
|
|
|
493
598
|
Apague os arquivos **antes** da linha raiz. Se o storage falhar, a linha do
|
|
@@ -597,3 +702,6 @@ linhas do titular naquela tabela — na raiz, a chave primária; nas outras, um
|
|
|
597
702
|
sobrou.
|
|
598
703
|
- `SubjectObjectStorage` guarda os arquivos sob `<prefix>/<id>/` e
|
|
599
704
|
`delete_all` apaga o prefixo em lote, sem tocar outro titular.
|
|
705
|
+
- Upload direto: `presign_put` assina o `PUT` sob o prefixo do titular,
|
|
706
|
+
`stat` e `read(max_bytes=limite + 1)` conferem o que chegou sem trazer
|
|
707
|
+
arquivo grande inteiro para a memória.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "tempest-fastapi-sdk"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.321.0"
|
|
4
4
|
description = "Shared FastAPI building blocks: base schemas, ORM model, async repository, exceptions, pagination and settings — the conventions used across Tempest projects."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.12"
|
|
@@ -134,7 +134,7 @@ pdf = [
|
|
|
134
134
|
"segno>=1.6.6",
|
|
135
135
|
]
|
|
136
136
|
pdf-read = [
|
|
137
|
-
"pypdf>=6.
|
|
137
|
+
"pypdf>=6.21.1",
|
|
138
138
|
]
|
|
139
139
|
pdf-layout = [
|
|
140
140
|
# Layout-aware extraction: columns recovered, tables recovered as grids.
|
|
@@ -328,7 +328,7 @@ all = [
|
|
|
328
328
|
"fido2>=2.2.1",
|
|
329
329
|
"weasyprint>=69.0",
|
|
330
330
|
"segno>=1.6.6",
|
|
331
|
-
"pypdf>=6.
|
|
331
|
+
"pypdf>=6.21.1",
|
|
332
332
|
"pdfplumber>=0.11.7",
|
|
333
333
|
"openpyxl>=3.1.5",
|
|
334
334
|
"email-validator>=2.3.0",
|
|
@@ -433,7 +433,7 @@ dev = [
|
|
|
433
433
|
"ruff>=0.16.5",
|
|
434
434
|
"trafilatura>=2.2.0",
|
|
435
435
|
"pymupdf>=1.28.2",
|
|
436
|
-
"pypdf>=6.
|
|
436
|
+
"pypdf>=6.21.1",
|
|
437
437
|
"openpyxl>=3.1.5",
|
|
438
438
|
"types-openpyxl>=3.1.5.20260827",
|
|
439
439
|
"rank-bm25>=0.2.2",
|
|
@@ -2103,7 +2103,7 @@ from tempest_fastapi_sdk.websockets import (
|
|
|
2103
2103
|
make_websocket_router as make_websocket_router,
|
|
2104
2104
|
)
|
|
2105
2105
|
|
|
2106
|
-
__version__: str = "0.
|
|
2106
|
+
__version__: str = "0.321.0"
|
|
2107
2107
|
|
|
2108
2108
|
from tempest_fastapi_sdk.api import (
|
|
2109
2109
|
OAuthAudienceVerifier as OAuthAudienceVerifier,
|