tempest-fastapi-sdk 0.330.0__tar.gz → 0.331.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.330.0 → tempest_fastapi_sdk-0.331.0}/CHANGELOG.md +102 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/PKG-INFO +3 -3
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/README.md +2 -2
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/SHIPPED.md +55 -4
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/migration.en.md +32 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/migration.md +33 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/admin.en.md +29 -11
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/admin.md +30 -11
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/auth-flow.en.md +2 -2
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/auth-flow.md +2 -2
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/local-storage.en.md +74 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/local-storage.md +75 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/security.en.md +66 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/security.md +65 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/sse.en.md +192 -72
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/sse.md +191 -70
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/storage.en.md +105 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/storage.md +104 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/subject-data.en.md +63 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/subject-data.md +63 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/uploads.en.md +24 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/uploads.md +24 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/reference.md +11 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/pyproject.toml +1 -1
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/__init__.py +51 -1
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/admin/config.py +30 -4
- tempest_fastapi_sdk-0.331.0/tempest_fastapi_sdk/admin/display.py +205 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/admin/forms.py +6 -17
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/admin/router.py +92 -6
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/admin/static/admin.css +1159 -650
- tempest_fastapi_sdk-0.331.0/tempest_fastapi_sdk/admin/templates/_macros.html +11 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/admin/templates/base.html +12 -8
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/admin/templates/dashboard.html +12 -10
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/admin/templates/detail.html +19 -16
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/admin/templates/form.html +9 -7
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/admin/templates/list.html +22 -18
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/admin/templates/login.html +10 -2
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/admin/templates/mfa.html +1 -1
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/admin/theme.py +98 -20
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/api/__init__.py +12 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/api/middlewares/__init__.py +4 -0
- tempest_fastapi_sdk-0.331.0/tempest_fastapi_sdk/api/middlewares/public_scheme.py +86 -0
- tempest_fastapi_sdk-0.331.0/tempest_fastapi_sdk/api/openapi_pruning.py +114 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/service.py +160 -6
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/env.example.tmpl +4 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/src/api/app.py.tmpl +12 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/exceptions/__init__.py +4 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/exceptions/i18n.py +2 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/exceptions/upload.py +9 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/privacy/storage.py +101 -2
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/settings/mixins.py +21 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/sse/__init__.py +20 -0
- tempest_fastapi_sdk-0.331.0/tempest_fastapi_sdk/sse/router.py +240 -0
- tempest_fastapi_sdk-0.331.0/tempest_fastapi_sdk/sse/schemas.py +42 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/storage/__init__.py +12 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/storage/local_client.py +215 -4
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/storage/local_router.py +117 -6
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/storage/minio_client.py +128 -0
- tempest_fastapi_sdk-0.331.0/tempest_fastapi_sdk/storage/presign.py +129 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/testing/fakes/storage.py +71 -4
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/utils/__init__.py +5 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/utils/token_types.py +7 -0
- tempest_fastapi_sdk-0.331.0/tests/admin/test_display.py +329 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/admin/test_display_timezone.py +5 -1
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/admin/test_exclude_fields.py +1 -1
- tempest_fastapi_sdk-0.331.0/tests/admin/test_login_scheme_warning.py +157 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/admin/test_principal_revalidation.py +1 -1
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/admin/test_router.py +1 -1
- tempest_fastapi_sdk-0.331.0/tests/admin/test_search.py +149 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/admin/test_theme.py +1 -1
- tempest_fastapi_sdk-0.331.0/tests/api/test_openapi_pruning.py +130 -0
- tempest_fastapi_sdk-0.331.0/tests/api/test_public_scheme_middleware.py +212 -0
- tempest_fastapi_sdk-0.331.0/tests/settings/test_public_scheme.py +28 -0
- tempest_fastapi_sdk-0.331.0/tests/sse/test_router.py +842 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/storage/test_disabled_client.py +1 -0
- tempest_fastapi_sdk-0.331.0/tests/storage/test_local_presign.py +301 -0
- tempest_fastapi_sdk-0.331.0/tests/storage/test_presign.py +192 -0
- tempest_fastapi_sdk-0.331.0/tests/storage/test_presign_live.py +198 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/uv.lock +1 -1
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/.github/ISSUE_TEMPLATE/docs.yml +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/.github/ISSUE_TEMPLATE/question.yml +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/.github/dependabot.yml +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/.github/workflows/audit.yml +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/.github/workflows/docs.yml +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/.github/workflows/release-pypi.yml +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/.gitignore +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/.python-version +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/CLAUDE.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/LESSONS.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/Makefile +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/CLAUDE.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/admin-showcase.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/admin-showcase.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/architecture.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/architecture.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/changelog.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/changelog.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/contributing.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/contributing.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/fullstack-web.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/fullstack-web.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/genai-examples.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/genai-examples.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/getting-started/first-project.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/getting-started/first-project.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/getting-started/python-versions.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/getting-started/python-versions.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/getting-started/references.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/getting-started/references.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/getting-started/uv.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/getting-started/uv.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/index.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/index.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/installation.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/installation.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/integrated.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/integrated.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/learning/index.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/learning/index.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/learning/marketplace/api.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/learning/marketplace/api.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/learning/marketplace/business-rules.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/learning/marketplace/business-rules.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/learning/marketplace/domain.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/learning/marketplace/domain.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/learning/marketplace/flows.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/learning/marketplace/flows.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/learning/marketplace/index.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/learning/marketplace/index.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/marketplace-local.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/marketplace-local.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/admin-sql-console.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/admin-sql-console.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/agents-advanced.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/agents-advanced.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/agents-architecture.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/agents-architecture.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/agents-concepts.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/agents-concepts.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/agents-db.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/agents-db.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/agents-prompts.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/agents-prompts.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/agents-testing.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/agents-testing.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/agents-tools.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/agents-tools.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/agents.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/agents.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/app-errors.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/app-errors.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/artifact-registry.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/artifact-registry.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/asyncapi-client.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/asyncapi-client.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/audit-trail.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/audit-trail.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/auth-pages.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/auth-pages.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/authz.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/authz.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/br-helpers.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/br-helpers.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/cache.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/cache.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/chat.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/chat.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/cli.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/cli.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/database.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/database.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/deploy-safety.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/deploy-safety.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/downloads.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/downloads.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/email.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/email.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/enum-columns.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/enum-columns.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/faces.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/faces.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/fakes.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/fakes.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/feature-flags.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/feature-flags.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/fields.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/fields.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/file-store.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/file-store.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/firebase-auth.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/firebase-auth.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/genai-hosted.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/genai-hosted.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/genai.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/genai.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/geo.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/geo.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/hostbridge.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/hostbridge.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/http-client.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/http-client.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/http.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/http.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/idempotency.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/idempotency.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/image-generation.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/image-generation.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/index.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/index.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/introspection-auth.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/introspection-auth.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/jobs.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/jobs.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/kestra.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/kestra.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/logging.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/logging.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/management-commands.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/management-commands.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/mercado-pago-sandbox.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/mercado-pago-sandbox.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/mercado-pago-webhooks.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/mercado-pago-webhooks.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/mercado-pago.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/mercado-pago.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/metrics.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/metrics.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/mfa.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/mfa.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/migrations.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/migrations.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/model-weights.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/model-weights.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/modelops.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/modelops.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/models.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/models.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/multi-tenant.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/multi-tenant.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/n8n.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/n8n.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/oauth.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/oauth.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/observability.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/observability.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/offline-sync.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/offline-sync.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/openapi-client.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/openapi-client.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/openapi-errors.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/openapi-errors.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/openpix-subscriptions.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/openpix-subscriptions.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/openpix.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/openpix.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/outbox.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/outbox.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/pdf.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/pdf.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/permission-guards.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/permission-guards.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/pix-protocol.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/pix-protocol.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/push.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/push.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/query-plans.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/query-plans.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/queue-tasks.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/queue-tasks.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/react-spa.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/react-spa.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/realtime.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/realtime.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/refresh-tokens.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/refresh-tokens.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/revenuecat.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/revenuecat.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/reviews.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/reviews.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/sessions.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/sessions.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/spreadsheets.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/spreadsheets.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/ssr-actions.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/ssr-actions.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/stored-files.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/stored-files.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/stripe.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/stripe.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/system-checks.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/system-checks.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/tempestweb-frontend.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/tempestweb-frontend.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/testing.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/testing.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/text-search.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/text-search.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/transactions.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/transactions.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/transcription-pipeline.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/transcription-pipeline.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/typing.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/typing.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/ui-css.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/ui-css.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/ui-forms.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/ui-forms.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/ui.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/ui.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/utilities.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/utilities.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/vision.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/vision.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/wallet.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/wallet.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/webauthn.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/webauthn.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/webpush.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/webpush.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/websocket.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/websocket.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/zap-inbound.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/zap-inbound.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/zap.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recipes/zap.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recommended-architecture.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/recommended-architecture.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/reference.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/roadmap.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/roadmap.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/ssr.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/ssr.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/tutorial.en.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/docs/tutorial.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/mkdocs.yml +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/mkdocs_hooks/llmstxt.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/planning/genai/README.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/planning/genai/manual-validation.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/planning/genai/phase-0.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/planning/genai/phase-1.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/planning/genai/phase-2.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/planning/genai/phase-3.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/planning/genai/validation-strategy.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/scripts/export_order.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/scripts/extract_recipe.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/scripts/face_separation.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/scripts/mercadopago_diff.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/scripts/mercadopago_overlay.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/scripts/openpix_diff.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/scripts/openpix_overlay.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/scripts/overlay_enums.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/scripts/regen_mercado_pago.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/scripts/regen_openpix.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/scripts/regen_stripe.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/scripts/regen_zap.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/scripts/regen_zap_ws.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/admin/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/admin/actions.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/admin/auth.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/admin/dashboard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/admin/discovery.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/admin/permissions.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/admin/session.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/admin/site.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/admin/sql_shell.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/admin/tasks.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/admin/templates/autocomplete.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/admin/templates/import.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/admin/templates/logs.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/admin/templates/sql_shell.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/admin/templates/task_detail.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/admin/templates/tasks.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/agents/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/agents/agent.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/agents/builtin.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/agents/fact_stores.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/agents/loop.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/agents/memory.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/agents/multi.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/agents/protocols.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/agents/router.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/agents/schemas.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/agents/skills.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/agents/storage.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/agents/structured.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/agents/testing.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/agents/tools.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/agents/typed.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/api/cookies.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/api/dependencies/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/api/dependencies/_session.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/api/dependencies/auth.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/api/dependencies/rate_limit.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/api/dependencies/signed_url.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/api/error_docs.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/api/handlers.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/api/middlewares/_exempt.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/api/middlewares/_streaming.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/api/middlewares/access_log.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/api/middlewares/body_size.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/api/middlewares/cors.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/api/middlewares/csrf.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/api/middlewares/error_envelope.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/api/middlewares/graceful.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/api/middlewares/honeypot.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/api/middlewares/idempotency.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/api/middlewares/quota.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/api/middlewares/rate_limit.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/api/middlewares/request_id.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/api/middlewares/response_cache.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/api/oauth.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/api/oidc_verifier.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/api/redaction.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/api/routers/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/api/routers/health.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/api/routers/logs.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/api/routers/metrics.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/api/routers/tool_spec.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/api/server.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/api/spa.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/api/static.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/api/tracing.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/api/webhooks.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/app_errors/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/app_errors/constants.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/app_errors/models.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/app_errors/router.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/app_errors/schemas.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/app_errors/service.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/artifacts/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/artifacts/actions.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/artifacts/digest.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/artifacts/model.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/artifacts/registry.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/asyncapi/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/asyncapi/emit_stream.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/asyncapi/generate.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/asyncapi/ir.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/asyncapi/loader.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/asyncapi/parse.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/_login_flow.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/exceptions.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/firebase.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/form_csrf.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/guards.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/introspection.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/locale.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/page_renderer.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/pages.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/router.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/schemas.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/_auth_layout.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/en-US/activation.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/en-US/activation_error.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/en-US/activation_request.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/en-US/activation_request_done.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/en-US/activation_success.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/en-US/email_change.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/en-US/email_change_error.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/en-US/email_change_success.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/en-US/email_changed_notice.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/en-US/email_verification.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/en-US/email_verification_error.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/en-US/email_verification_success.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/en-US/login.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/en-US/login_mfa.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/en-US/password_reset.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/en-US/password_reset_error.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/en-US/password_reset_form.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/en-US/password_reset_success.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/en-US/signup.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/en-US/signup_done.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/pt-BR/activation.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/pt-BR/activation_error.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/pt-BR/activation_request.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/pt-BR/activation_request_done.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/pt-BR/activation_success.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/pt-BR/email_change.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/pt-BR/email_change_error.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/pt-BR/email_change_success.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/pt-BR/email_changed_notice.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/pt-BR/email_verification.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/pt-BR/email_verification_error.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/pt-BR/email_verification_success.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/pt-BR/login.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/pt-BR/login_mfa.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/pt-BR/password_reset.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/pt-BR/password_reset_error.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/pt-BR/password_reset_form.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/pt-BR/password_reset_success.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/pt-BR/signup.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/templates/pt-BR/signup_done.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/token_delivery.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/auth/webauthn.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/authz/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/authz/dependencies.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/authz/permissions.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/authz/requires.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cache/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cache/decorator.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cache/invalidation.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cache/redis_manager.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/chat/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/chat/constants.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/chat/models.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/chat/router.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/chat/schemas.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/chat/service.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/checks/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/checks/builtins.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/checks/messages.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/checks/registry.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/CLAUDE.md.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/Dockerfile.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/README.md.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/dockerignore.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/gitignore.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/main.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/pyproject.toml.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/src/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/src/api/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/src/api/dependencies/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/src/api/dependencies/auth.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/src/api/dependencies/controllers.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/src/api/dependencies/resources.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/src/api/routers/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/src/api/routers/api.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/src/api/routers/service_info.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/src/controllers/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/src/controllers/system/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/src/controllers/system/service_info.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/src/core/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/src/core/enums.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/src/core/exceptions.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/src/core/settings.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/src/core/types.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/src/db/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/src/db/configs/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/src/db/configs/names.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/src/db/models/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/src/db/models/users/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/src/db/models/users/user.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/src/db/repositories/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/src/schemas/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/src/schemas/service_info.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/src/scripts/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/src/scripts/composition.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/src/server.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/src/services/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/src/utils/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/tests/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/tests/conftest.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/tests/test_schemas.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/_templates/tests/test_smoke.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/agents.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/cache.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/commands.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/config.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/db.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/docker_compose.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/doctor.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/email.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/entrypoint.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/flags.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/generate.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/integrations.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/layer_lint.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/lint.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/main.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/model.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/new.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/openapi_errors.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/openapi_export.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/openapi_fix.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/pdf.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/permissions.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/pr_prompt.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/project.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/queue.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/routes.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/schema_lint.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/secrets.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/serve.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/shell.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/src_layers.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/storage.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/tasks.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/user.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/cli/voice.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/controllers/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/controllers/base.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/core/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/core/context.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/core/enums.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/core/logging.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/core/redaction.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/core/typed.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/db/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/db/_alembic_templates/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/db/_alembic_templates/env.py.template +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/db/_alembic_templates/script.py.mako +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/db/alembic_env.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/db/alembic_hooks.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/db/audit.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/db/backup.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/db/connection.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/db/datetime_type.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/db/device_token_model.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/db/enum_migrations.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/db/enums.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/db/explain.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/db/expressions.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/db/integrity.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/db/migrations.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/db/mixins.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/db/model.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/db/naming.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/db/outbox.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/db/repository.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/db/search.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/db/signals.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/db/slow_query.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/db/tenant.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/db/transaction.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/db/user_model.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/db/user_oauth_account_model.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/db/user_recovery_code_model.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/db/user_refresh_token_model.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/db/user_token_model.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/db/user_webauthn_credential_model.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/db/voice_profile_model.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/db/webhook_inbox.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/db/webpush_subscription_model.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/exceptions/base.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/exceptions/conflict.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/exceptions/factories.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/exceptions/forbidden.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/exceptions/integration.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/exceptions/jwt.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/exceptions/not_found.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/exceptions/oauth.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/exceptions/signed_url.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/exceptions/too_many_requests.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/exceptions/unauthorized.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/exceptions/validation.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/exceptions/value_errors.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/exceptions/wallet.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/faces/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/faces/detector.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/faces/geometry.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/faces/models.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/faces/recognizer.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/faces/schemas.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/flags/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/flags/backends.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/flags/dependencies.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/flags/service.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/admin.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/anthropic.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/audio/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/audio/conversation.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/audio/diarization.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/audio/language.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/audio/profiles.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/audio/router.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/audio/schemas.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/audio/speaker_count.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/audio/stt.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/audio/tts.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/audio/voiceprint.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/batching.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/catalog.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/embeddings.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/generation_cache.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/hardware.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/hosted.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/hub.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/image.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/inventory.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/metrics.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/moderation.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/ollama.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/onnx_embed.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/openai_compat.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/pipeline.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/rag/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/rag/chroma.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/rag/chunking.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/rag/context.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/rag/extract.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/rag/fusion.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/rag/hybrid.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/rag/pdf.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/rag/rerank.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/rag/retriever.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/rag/schemas.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/rag/search.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/rag/vectorstore.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/registry.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/router.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/schemas.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/structured.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/text.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/tokens.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/tracing.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/usage.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/genai/vision_text.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/geo/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/geo/br.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/geo/cache.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/geo/db.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/geo/distance.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/geo/enums.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/geo/estimate.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/geo/geocoding.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/geo/geometry.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/geo/polyline.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/geo/routing.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/geo/schemas.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/hostbridge/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/hostbridge/bridge.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/hostbridge/config.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/hostbridge/exceptions.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/hostbridge/paths.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/hostbridge/router.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/hostbridge/schemas.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/hostbridge/shell.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/CLAUDE.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/messaging/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/messaging/zap/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/messaging/zap/client.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/messaging/zap/router.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/messaging/zap/schemas.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/messaging/zap/webhooks.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/messaging/zap_ws/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/messaging/zap_ws/schemas.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/messaging/zap_ws/stream.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/payment/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/payment/adapters/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/payment/adapters/mercado_pago.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/payment/adapters/openpix.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/payment/base.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/payment/mercado_pago/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/payment/mercado_pago/client.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/payment/mercado_pago/environment.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/payment/mercado_pago/events.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/payment/mercado_pago/money.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/payment/mercado_pago/schemas.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/payment/mercado_pago/webhooks.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/payment/openpix/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/payment/openpix/client.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/payment/openpix/environment.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/payment/openpix/events.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/payment/openpix/money.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/payment/openpix/schemas.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/payment/openpix/webhooks.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/payment/routing.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/payment/settlement.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/payment/stripe/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/payment/stripe/client.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/payment/stripe/environment.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/payment/stripe/events.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/payment/stripe/money.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/payment/stripe/schemas.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/payment/stripe/webhooks.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/subscriptions/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/subscriptions/revenuecat/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/subscriptions/revenuecat/client.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/subscriptions/revenuecat/events.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/subscriptions/revenuecat/schemas.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/subscriptions/revenuecat/snapshot.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/integrations/subscriptions/revenuecat/webhooks.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/modelops/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/modelops/_fs.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/modelops/bench.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/modelops/compact.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/modelops/compose.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/modelops/edge.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/modelops/energy.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/modelops/export.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/modelops/monitoring.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/modelops/pickled.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/modelops/quantize.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/modelops/ranking.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/modelops/router.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/modelops/schemas.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/modelops/serving.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/modelops/sklearn.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/modelops/static.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/openapi/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/openapi/emit_client.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/openapi/emit_schemas.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/openapi/generate.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/openapi/ir.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/openapi/loader.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/openapi/naming.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/openapi/parse.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/openapi/source.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/pdf/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/pdf/assets.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/pdf/documents.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/pdf/formatting.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/pdf/pages.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/pdf/qr.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/pdf/reader.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/pdf/renderer.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/pdf/router.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/pdf/templates/_base.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/pdf/templates/_party.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/pdf/templates/_styles.css +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/pdf/templates/contract.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/pdf/templates/quote.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/pdf/templates/receipt.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/pdf/templates/report.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/pdf/templates/voucher.html +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/privacy/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/privacy/graph.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/push/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/push/dispatcher.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/push/router.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/push/schemas.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/push/service.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/push/transports/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/push/transports/fcm.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/push/transports/webpush.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/py.typed +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/queue/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/queue/broker.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/queue/consumer.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/queue/dedup.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/queue/manager.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/queue/publisher.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/queue/reliability.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/queue/topology.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/queue/tracing.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/reviews/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/reviews/models.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/reviews/router.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/reviews/schemas.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/reviews/service.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/schemas/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/schemas/base.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/schemas/errors.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/schemas/link_headers.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/schemas/logs.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/schemas/pagination.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/schemas/response.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/services/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/services/base.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/services/file_mixin.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/sessions/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/sessions/authenticator.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/sessions/dependencies.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/sessions/middleware.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/sessions/router.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/sessions/schemas.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/sessions/service.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/sessions/store.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/settings/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/settings/base.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/settings/version.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/spreadsheet/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/spreadsheet/formats.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/spreadsheet/google.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/spreadsheet/reader.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/spreadsheet/styles.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/spreadsheet/writer.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/sse/broker.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/sse/event_stream.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ssr/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ssr/_static/confirm.js +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ssr/_static/htmx.min.js +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ssr/assets.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ssr/attributes.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ssr/errors.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ssr/flashes.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ssr/page.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ssr/redirects.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ssr/response.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ssr/webapp.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/storage/_download.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/tasks/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/tasks/cancellation.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/tasks/cron.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/tasks/dead_letter.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/tasks/heartbeat/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/tasks/heartbeat/__main__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/tasks/heartbeat/files.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/tasks/heartbeat/source.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/tasks/jobs.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/tasks/lock.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/tasks/manager.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/tasks/observability.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/tasks/oop.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/tasks/progress.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/tasks/queue.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/tasks/scheduler.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/tasks/stages.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/testing/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/testing/admin.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/testing/database.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/testing/factories.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/testing/fakes/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/testing/fakes/_control.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/testing/fakes/email.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/testing/fakes/genai.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/testing/fakes/geo.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/testing/fakes/payment.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/testing/fakes/push.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/testing/fakes/search.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/testing/fakes/subscriptions.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/testing/privacy.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/testing/schemas.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ui/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ui/_core.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ui/components/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ui/components/alert.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ui/components/card.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ui/components/classes.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ui/components/empty.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ui/components/flash.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ui/components/nav.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ui/components/pagination.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ui/components/styles.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ui/components/table.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ui/css/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ui/css/router.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ui/css/rules.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ui/css/tokens.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ui/forms/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ui/forms/introspect.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ui/forms/parse.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ui/forms/render.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ui/forms/spec.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ui/forms/styles.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ui/layout/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ui/layout/grid.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ui/layout/shell.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ui/pages/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ui/pages/error.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ui/pages/page.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/ui/stylesheet.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/utils/_http_cache.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/utils/_lifecycle.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/utils/_security_headers.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/utils/_settings_discovery.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/utils/_signature.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/utils/_url.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/utils/client_ip.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/utils/currency.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/utils/data/br_locations.json +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/utils/datetime.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/utils/dict.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/utils/download.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/utils/email.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/utils/fields.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/utils/file_store.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/utils/forms.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/utils/http_client.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/utils/jwt.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/utils/locations.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/utils/log.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/utils/media_types.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/utils/metrics.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/utils/naming.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/utils/opaque_token.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/utils/password.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/utils/regex.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/utils/retry.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/utils/signed_url.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/utils/storage_backends.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/utils/throttle.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/utils/totp.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/utils/upload.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/vision/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/vision/mapping.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/vision/router.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/vision/schemas.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/wallet/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/wallet/ledger.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/wallet/models.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/wallet/money.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/wallet/router.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/wallet/schemas.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/wallet/service.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/webpush/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/webpush/dispatcher.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/webpush/router.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/webpush/schemas.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/webpush/service.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/websockets/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/websockets/heartbeat.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/websockets/hub.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/websockets/router.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tempest_fastapi_sdk/websockets/schemas.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/CLAUDE.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/_seed.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/admin/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/admin/test_actions.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/admin/test_audit_viewer.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/admin/test_auth.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/admin/test_auth_role_and_mfa.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/admin/test_autocomplete_fk.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/admin/test_csv_import.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/admin/test_dashboard_cards.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/admin/test_discovery.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/admin/test_form_error_rollback.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/admin/test_forms.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/admin/test_inlines.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/admin/test_lenses.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/admin/test_local_assets.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/admin/test_login_csrf.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/admin/test_login_throttle.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/admin/test_logs_nav.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/admin/test_logs_traceback_export.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/admin/test_mfa.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/admin/test_mfa_attempt_limit.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/admin/test_password_field.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/admin/test_rbac.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/admin/test_rich_filters.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/admin/test_site.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/admin/test_sql_shell.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/admin/test_sql_shell_page.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/admin/test_tasks_panel.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/admin/test_upload_field.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/admin/test_user_model.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/admin/test_widgets_json_time.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/agents/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/agents/test_agent.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/agents/test_agent_limits.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/agents/test_agent_router.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/agents/test_builtin_tools.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/agents/test_fact_stores.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/agents/test_loop.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/agents/test_memory.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/agents/test_multi_agent.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/agents/test_skills.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/agents/test_structured.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/agents/test_testing.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/agents/test_typed_tools.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_access_log.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_body_size.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_business_metrics.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_client_error_envelope.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_cookies.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_cors.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_csrf.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_dependencies_auth.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_error_docs.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_error_envelope.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_error_field.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_graceful.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_handlers.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_health_router.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_honeypot.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_idempotency.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_jwt_dependency.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_lazy_dependencies.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_log_redaction.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_logs_rotated_backups.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_logs_router.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_middleware_exempt_semantics.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_oauth.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_oidc_introspection.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_oidc_verifier.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_outbound_webhooks.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_prometheus.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_prometheus_auth.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_quota.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_quota_redis_live.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_rate_limit.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_rate_limit_dependency.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_rate_limit_envelope.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_rate_limit_extras.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_rate_limit_fail_open.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_rate_limit_redis_proxy.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_request_id_middleware.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_response_cache.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_role_dependency.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_server.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_server_error_notify.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_session_provider.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_signed_path_dependency.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_spa.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_static.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_streaming_passthrough.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_token_type_strict.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_tool_spec.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_tracing.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_validation_envelope.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_webhooks.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/api/test_webhooks_rsa.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/app_errors/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/app_errors/test_app_errors.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/artifacts/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/artifacts/support.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/artifacts/test_actions.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/artifacts/test_digest.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/artifacts/test_registry.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/asyncapi/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/asyncapi/conftest.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/asyncapi/test_generate.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/asyncapi/test_loader.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/asyncapi/test_parse.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/test_activation_resend.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/test_auth_pages.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/test_backend_links_dependencies.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/test_change_password_mfa.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/test_consume_token_race.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/test_cookie_delivery.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/test_current_user_active.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/test_email_change.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/test_email_delivery_failure.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/test_email_integration_disabled.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/test_email_link_amr.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/test_email_link_refusal.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/test_expire_on_commit.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/test_firebase.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/test_guards.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/test_introspection.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/test_locale.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/test_login_throttle.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/test_me.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/test_mfa.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/test_mfa_amr.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/test_mfa_token_paths.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/test_oauth_login.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/test_oauth_mfa.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/test_oauth_token_login.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/test_password_reset_mfa.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/test_password_reset_revoke.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/test_refresh.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/test_refresh_db.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/test_refusal_codes.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/test_router_session_sharing.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/test_service.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/test_signup_extension.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/test_signup_fields.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/test_signup_mounting.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/test_token_supersede.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/test_webauthn.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/auth/webauthn_authenticator.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/authz/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/authz/test_dependencies.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/authz/test_permissions.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/authz/test_requires.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cache/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cache/test_decorator.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cache/test_invalidation.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cache/test_redis_manager.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/chat/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/chat/test_attachment_uploader_migration.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/chat/test_chat.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/chat/test_messenger.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/chat/test_messenger_router.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/chat/test_router_stream.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/checks/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/checks/test_check_config_cli.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/checks/test_checks.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/conftest.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_agents.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_config.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_db.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_db_alembic_errors.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_db_resolution.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_db_seed.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_docker_compose.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_docker_compose_live.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_dockerfile_spa.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_doctor.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_email_storage.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_entrypoint.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_flags_cache.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_generate.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_integrations.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_layer_lint.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_layer_lint_exceptions.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_layer_lint_imports.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_layer_lint_injection.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_layer_lint_layout.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_layer_lint_routers.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_layer_lint_structure.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_layer_lint_tests.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_main.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_management_commands.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_model.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_new_required_extras.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_openapi_errors.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_openapi_errors_bare_calls.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_openapi_errors_callgraph.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_openapi_errors_configured.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_openapi_errors_delegation.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_openapi_export.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_openapi_fix.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_permissions.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_project_claude_md.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_quality_gate_integration.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_queue_tasks.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_routes.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_scaffold_dependencies.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_scaffold_placeholders.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_scaffold_project_version.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_scaffold_quality.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_scaffold_runtime.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_secrets.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_serve.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_shell.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_src_layers_import.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_user.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/cli/test_user_mfa.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/conftest.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/controllers/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/controllers/test_base.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/controllers/test_controller.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/controllers/test_generic_bounds.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/core/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/core/test_context.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/core/test_enums.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/core/test_logging.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/core/test_logging_time_rotation.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/core/test_redaction.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/core/test_typed.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_alembic_env.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_alembic_env_sqlalchemy_matrix.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_alembic_hooks.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_audit.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_backup.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_bulk_ops.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_bulk_upsert_conflict.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_connection.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_cursor_types.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_eager_load.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_enum_column.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_enum_downgrade.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_enum_migration_lifecycle.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_enum_migrations.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_explain.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_expressions.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_filters_contract.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_integrity.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_integrity_live.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_integrity_sqlalchemy_matrix.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_migrations.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_migrations_async.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_migrations_foreign_keys.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_mixins.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_model.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_naming.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_naming_live.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_none_filter_is_null.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_outbox.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_repository.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_repository_conflict_exceptions.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_repository_order_guard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_safe_upgrade.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_schema_sync.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_search.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_session_helpers.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_signals.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_slow_query.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_sqlite_failed_commit.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_sqlite_foreign_keys.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_sqlite_wal.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_table_name.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_tenant.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_transaction.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_utc_datetime.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/db/test_webhook_inbox.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/exceptions/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/exceptions/test_exceptions.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/exceptions/test_factories.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/exceptions/test_i18n.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/exceptions/test_inherited_code_warning.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/exceptions/test_integration_disabled.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/exceptions/test_value_error_codes.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/faces/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/faces/test_faces.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/flags/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/flags/test_flags.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/_eval/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/_eval/corpus.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/audio/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/audio/test_audio.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/audio/test_audio_runtime_extra.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/audio/test_concurrency.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/audio/test_diarization.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/audio/test_diarization_models.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/audio/test_language.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/audio/test_profiles.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/audio/test_speaker_count.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/audio/test_stt_loading.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/audio/test_tts_tempfile.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/audio/test_voice_router.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/conftest.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_anthropic.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_batching.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_chat_memory.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_chat_memory_ranking.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_embedding_cache_redis.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_embeddings.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_env_defaults.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_eval_harness.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_genai_metrics.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_genai_observability.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_generation_cache.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_generation_config.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_generator_defaults.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_gpu_validation.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_hardware.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_hardware_cgroup.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_hardware_nvml.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_hosted.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_hosted_interchangeability.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_hub.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_hybrid.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_image.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_inventory.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_lifecycle.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_moderation.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_ollama.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_onnx_embed.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_openai_compat.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_pipeline.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_pipeline_integration.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_precision_kwarg.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_rag.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_rag_extract_pinning.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_rag_identity.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_refinements.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_registry.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_rerank.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_router.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_router_limits.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_structured.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_structured_extraction.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_structured_parity.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_structured_retry.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_text.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_text_cancellation.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_text_concurrency.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_text_lifecycle.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_text_seed.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_textgen_embed_metrics.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_tokens.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_tracing.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_usage.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_usage_cache_hit.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_vectorstore.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_vectorstore_ann.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_vectorstore_pg_live.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_vision_text.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/genai/test_vision_text_config.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/geo/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/geo/fixtures/nominatim_reverse_coivaras.json +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/geo/fixtures/nominatim_reverse_sao_jose_da_tenda.json +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/geo/fixtures/nominatim_reverse_sao_paulo.json +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/geo/fixtures/nominatim_reverse_teresina.json +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/geo/test_br.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/geo/test_db.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/geo/test_db_postgres_live.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/geo/test_distance.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/geo/test_estimate.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/geo/test_geocoding.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/geo/test_geocoding_cache.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/geo/test_geometry.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/geo/test_polyline.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/geo/test_routing.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/geo/test_routing_extra.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/hostbridge/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/hostbridge/conftest.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/hostbridge/test_bridge_files.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/hostbridge/test_bridge_host.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/hostbridge/test_messages.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/hostbridge/test_paths.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/hostbridge/test_router.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/hostbridge/test_shell.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/messaging/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/messaging/zap/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/messaging/zap/test_generated_drift.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/messaging/zap/test_router.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/messaging/zap/test_webhooks.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/messaging/zap_ws/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/messaging/zap_ws/test_generated_drift.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/adapters/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/card_approved.json +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/card_cancel_auth.json +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/card_capture.json +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/card_get_after_refund.json +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/card_manual.json +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/card_manual_cancel.json +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/card_refund_partial.json +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/card_refund_rest.json +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/card_rejected.json +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/pix_cancel.json +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/pix_create.json +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/pix_get.json +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/pix_get_after_cancel.json +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/pix_get_after_partial_refund.json +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/pix_get_after_refund.json +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/pix_get_expired.json +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/pix_get_paid.json +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/pix_refund_partial.json +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/pix_refund_rest.json +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/pix_refund_unpaid.json +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/adapters/test_mercado_pago_adapter.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/adapters/test_mercado_pago_sandbox.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/adapters/test_openpix_adapter.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/adapters/test_openpix_adapter_wire.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/adapters/test_openpix_payout_wire.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/mercado_pago/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/mercado_pago/fixtures/chargebacks_search.json +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/mercado_pago/fixtures/users_me.json +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/mercado_pago/test_deprecations.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/mercado_pago/test_generated_drift.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/mercado_pago/test_mercado_pago.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/mercado_pago/test_overlay.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/mercado_pago/test_provenance.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/mercado_pago/test_sandbox_observations.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/mercado_pago/test_sdk_coverage.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/mercado_pago/test_webhook_dependency.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/openpix/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/openpix/test_generated_drift.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/openpix/test_openpix.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/openpix/test_overlay.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/openpix/test_real_payload_shapes.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/openpix/test_request_body_shape.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/openpix/test_spec_type_conflicts.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/stripe/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/stripe/test_client.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/stripe/test_generated_drift.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/stripe/test_money.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/stripe/test_webhooks.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/test_contract.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/test_routing.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/payment/test_settlement.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/subscriptions/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/subscriptions/revenuecat/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/subscriptions/revenuecat/conftest.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/subscriptions/revenuecat/test_client.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/subscriptions/revenuecat/test_snapshot.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/subscriptions/revenuecat/test_vendored_docs.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/integrations/subscriptions/revenuecat/test_webhooks.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/modelops/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/modelops/conftest.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/modelops/test_bench.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/modelops/test_compact.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/modelops/test_compose.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/modelops/test_edge.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/modelops/test_energy.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/modelops/test_export.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/modelops/test_monitoring.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/modelops/test_pickled.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/modelops/test_quantize.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/modelops/test_ranking.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/modelops/test_router.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/modelops/test_serving.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/modelops/test_sklearn_export.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/modelops/test_static.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/openapi/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/openapi/conftest.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/openapi/test_divergent_success.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/openapi/test_form_bodies.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/openapi/test_generate.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/openapi/test_hostile_spec.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/openapi/test_loader.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/openapi/test_multipart_bodies.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/openapi/test_naming.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/openapi/test_nested_capture.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/openapi/test_parse.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/openapi/test_payload_arrays.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/openapi/test_raw_responses.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/pdf/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/pdf/test_assets.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/pdf/test_formatting.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/pdf/test_pages.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/pdf/test_qr.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/pdf/test_reader.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/pdf/test_renderer.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/pdf/test_router_and_cli.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/privacy/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/privacy/test_graph.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/privacy/test_storage.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/privacy/test_storage_live.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/push/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/push/test_fcm_disabled.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/push/test_router.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/push/test_router_ownership.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/push/test_service.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/push/test_transports.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/queue/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/queue/test_broker.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/queue/test_consumer.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/queue/test_dedup.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/queue/test_fanout.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/queue/test_fanout_live.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/queue/test_manager.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/queue/test_prefetch.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/queue/test_publisher.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/queue/test_reliability.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/queue/test_topology.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/queue/test_tracing.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/reviews/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/reviews/test_reviews.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/schemas/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/schemas/test_base.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/schemas/test_cursor_pagination.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/schemas/test_errors.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/schemas/test_link_headers.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/schemas/test_pagination.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/schemas/test_pagination_order_guard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/schemas/test_response.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/services/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/services/test_base.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/services/test_file_mixin.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/sessions/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/sessions/test_credentials_html.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/sessions/test_session_dependency_factory.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/sessions/test_sessions.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/settings/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/settings/test_auth_link_guard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/settings/test_base.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/settings/test_environment.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/settings/test_hosted_genai_settings.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/settings/test_integration_flags.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/settings/test_mixins.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/settings/test_session_cookie_kwargs.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/settings/test_storage_settings.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/settings/test_trusted_ip_header.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/settings/test_version.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/spreadsheet/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/spreadsheet/test_formats.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/spreadsheet/test_google.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/spreadsheet/test_limits.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/spreadsheet/test_reader.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/spreadsheet/test_reader_async.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/spreadsheet/test_writer.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/sse/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/sse/test_broker.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/sse/test_event_stream.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/ssr/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/ssr/test_attributes.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/ssr/test_confirm.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/ssr/test_flashes.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/ssr/test_html_errors.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/ssr/test_integration.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/ssr/test_page.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/ssr/test_page_document.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/ssr/test_redirects.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/ssr/test_response.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/ssr/test_web_app_theme.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/ssr/test_webapp.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/ssr/test_webapp_caching.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/storage/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/storage/test_accel_redirect_live.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/storage/test_download_live.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/storage/test_local_client.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/storage/test_local_router.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/storage/test_minio_client.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/storage/test_signed_url_live.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/tasks/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/tasks/test_cancellation.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/tasks/test_cron.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/tasks/test_dead_letter.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/tasks/test_enqueue_by_name.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/tasks/test_enqueue_by_name_live.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/tasks/test_heartbeat.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/tasks/test_jobs.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/tasks/test_jobs_cancellation.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/tasks/test_jobs_dispatch.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/tasks/test_manager.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/tasks/test_observability.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/tasks/test_oop.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/tasks/test_progress.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/tasks/test_queue.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/tasks/test_queue_from_settings.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/tasks/test_queue_lifecycle_hooks.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/tasks/test_queue_typing.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/tasks/test_scheduler.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/tasks/test_scheduler_lease.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/tasks/test_stages.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_admin_principal_guard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_agent_docs_guard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_alembic_env_lint_guard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_alias_guard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_cli_extra_guard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_constraint_shape_guard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_docs_api_guard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_docs_build_isolation_guard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_docs_examples_compile.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_docs_examples_names.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_docs_method_guard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_docs_organization.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_docs_signature_guard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_docs_type_guard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_docstring_example_guard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_engine_configuration_guard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_enum_schema_guard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_factory_param_exports_guard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_i18n_coverage_guard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_kwargs_guard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_lazy_init_guard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_llmstxt.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_lock_version_guard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_mfa_token_paths_guard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_protocol_shape_guard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_pydantic_error_types_guard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_pydantic_mypy_guard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_reexport_guard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_reference_coverage.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_release_flow_guard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_schedule_projection_guard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_sdist_payload.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_session_factory_guard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_settings_passthrough_guard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_spreadsheet_event_loop_guard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_supply_chain_guard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_testclient_httpx2_guard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_timeout_method_guard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_vacuous_guard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_version_agreement.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_wallet_concurrency_guard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_wallet_update_shape_guard.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/test_wheel_payload.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/testing/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/testing/test_admin_login_typing.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/testing/test_database.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/testing/test_factories.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/testing/test_fakes_behaviour.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/testing/test_fakes_contract.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/testing/test_schema_metadata.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/ui/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/ui/test_components.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/ui/test_core_contract.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/ui/test_css.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/ui/test_css_router.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/ui/test_forms_dependency.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/ui/test_forms_file.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/ui/test_forms_help_text.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/ui/test_forms_hidden.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/ui/test_forms_introspect.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/ui/test_forms_parse.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/ui/test_forms_render.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/ui/test_integration.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/ui/test_layout_and_pages.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/ui/test_stylesheet.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/utils/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/utils/smtp_server.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/utils/test_client_ip.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/utils/test_currency.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/utils/test_datetime.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/utils/test_dict.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/utils/test_download.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/utils/test_email.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/utils/test_email_disabled.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/utils/test_fields.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/utils/test_file_store.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/utils/test_forms.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/utils/test_http_client.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/utils/test_image_media_type.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/utils/test_image_media_type_field.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/utils/test_jwt.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/utils/test_lazy_extras.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/utils/test_locations.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/utils/test_log.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/utils/test_media_types.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/utils/test_metrics.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/utils/test_opaque_token.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/utils/test_password.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/utils/test_regex.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/utils/test_retry.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/utils/test_settings_discovery.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/utils/test_signed_url.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/utils/test_storage_backends.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/utils/test_throttle.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/utils/test_token_types.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/utils/test_upload.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/utils/test_upload_signature_policy.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/utils/test_url.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/vision/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/vision/test_detect_classify.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/vision/test_router.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/vision/test_vision.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/wallet/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/wallet/support.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/wallet/test_ledger.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/wallet/test_money.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/wallet/test_router.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/wallet/test_service.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/wallet/test_wallet_live.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/webpush/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/webpush/test_dispatcher.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/webpush/test_router.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/webpush/test_router_ownership.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/webpush/test_schemas.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/webpush/test_service.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/websockets/__init__.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/websockets/test_heartbeat.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/websockets/test_hub_and_router.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/tests/websockets/test_router_live.py +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/vendor/PROVENANCE.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/vendor/mercadopago-evidence.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/vendor/mercadopago-openapi.yaml +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/vendor/openpix-evidence.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/vendor/openpix-openapi.json +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/vendor/revenuecat-webhook-event-types.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/vendor/revenuecat-webhook-sample-events.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/vendor/revenuecat-webhooks.md +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/vendor/stripe-api-facts.yaml +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/vendor/zap-asyncapi.yaml +0 -0
- {tempest_fastapi_sdk-0.330.0 → tempest_fastapi_sdk-0.331.0}/vendor/zap-openapi.yaml +0 -0
|
@@ -7,6 +7,108 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.331.0] — 2026-10-26
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- `UserAuthService.sse_router(broker)` e `make_sse_router`: stream SSE
|
|
15
|
+
autenticado pronto. O `EventSource` do browser não manda header, então o
|
|
16
|
+
stream guardado por `current_user_dependency()` respondia `401` a todo
|
|
17
|
+
cliente de browser logo depois de um login que deu certo — e a saída
|
|
18
|
+
documentada, `query_param="access_token"`, punha na URL um token que vale
|
|
19
|
+
para a API inteira. O router monta `POST <prefix>/ticket` (sessão por
|
|
20
|
+
header ou cookie, conta ativa) e `GET <prefix>/stream?ticket=`. O ticket é
|
|
21
|
+
um JWT `typ="stream"` de 60 s com o canal no claim `ch`; nenhuma dependency
|
|
22
|
+
bearer do SDK aceita esse `typ`. O stream também aceita
|
|
23
|
+
`Authorization: Bearer` e o cookie do login; `?access_token=` só com
|
|
24
|
+
`allow_access_token_query=True`, para migrar cliente existente. Novos:
|
|
25
|
+
`STREAM_TOKEN_TYPE`, `SSETicketResponseSchema`, `DEFAULT_SSE_TICKET_TTL`,
|
|
26
|
+
`SSE_CHANNEL_CLAIM`, `SSE_TICKET_ERROR`.
|
|
27
|
+
- O stream não segura sessão de banco: guardado por
|
|
28
|
+
`current_user_dependency(session_dependency=...)`, cada cliente conectado
|
|
29
|
+
mantinha uma sessão aberta até o disconnect (medido no fastapi 0.141.1),
|
|
30
|
+
porque a sessão da request só fecha quando a resposta termina. O router
|
|
31
|
+
carrega o usuário numa sessão própria, fechada antes do stream, e o
|
|
32
|
+
caminho do ticket não abre sessão.
|
|
33
|
+
- `ServerSettings.SERVER_PUBLIC_SCHEME` (`""`, `"http"`, `"https"`) e
|
|
34
|
+
`PublicSchemeMiddleware`: atrás de um proxy que termina o TLS, toda URL
|
|
35
|
+
absoluta saía `http://` — o `action` do formulário de login do admin
|
|
36
|
+
incluído, e o browser marcava o campo de senha como não seguro. Com
|
|
37
|
+
`SERVER_PUBLIC_SCHEME=https` o middleware carimba o scheme em toda request
|
|
38
|
+
(`wss` no websocket). O `tempest new` já registra o middleware.
|
|
39
|
+
- O `GET /admin/login` com `cookie_secure=True` que chega como `http` num host
|
|
40
|
+
público loga um `WARNING` apontando `SERVER_PUBLIC_SCHEME=https`.
|
|
41
|
+
- `AdminTheme(header_fg=...)` fixa a cor do texto do header e da sidebar
|
|
42
|
+
quando o palpite pela luminância erra.
|
|
43
|
+
- `AsyncMinIOClient.presigned_post_policy(key, *, max_bytes, content_type=None,
|
|
44
|
+
min_bytes=0, bucket=None, expires=15min)` devolve um `PresignedPost` (URL +
|
|
45
|
+
campos do formulário) cuja policy S3 assina a chave, o `Content-Type` e
|
|
46
|
+
`content-length-range` (#637). Medido em MinIO: 1 byte acima do teto é
|
|
47
|
+
`400 EntityTooLarge`, abaixo do mínimo `400 EntityTooSmall`, outro tipo ou
|
|
48
|
+
outra chave `403 AccessDenied`, e nada é gravado na recusa. O
|
|
49
|
+
`LocalObjectStorageClient` ganhou a mesma chamada, servida pela nova rota
|
|
50
|
+
`POST` do `make_local_storage_router` (`413 FILE_TOO_LARGE` /
|
|
51
|
+
`400 FILE_TOO_SMALL` / `403 SIGNED_URL_INVALID`; precisa do extra
|
|
52
|
+
`[upload]`, checado ao assinar), e o `SubjectObjectStorage` ganhou
|
|
53
|
+
`presign_post`.
|
|
54
|
+
- `presigned_get_url` (S3 e local) e `SubjectObjectStorage.presign` aceitam
|
|
55
|
+
`filename`, `media_type` e `as_attachment`, assinados no link — no S3 como
|
|
56
|
+
os overrides `response-*`, no local amarrados ao propósito da assinatura
|
|
57
|
+
(`bound_purpose`). Editar um deles na URL dá `403`; sem eles o link é o de
|
|
58
|
+
antes.
|
|
59
|
+
- `prune_orphan_enum_schemas(app)` tira do OpenAPI os componentes de enum que
|
|
60
|
+
nenhum `$ref` usa. O FastAPI publica um para todo campo anotado com `Enum`,
|
|
61
|
+
então um `image_media_type_field` deixava o `ImageMediaType` completo
|
|
62
|
+
órfão no documento (#637). O `create_app` do `tempest new` já chama.
|
|
63
|
+
- `FileTooSmallException` (`400 FILE_TOO_SMALL`), com mensagem nas duas
|
|
64
|
+
línguas.
|
|
65
|
+
|
|
66
|
+
### Changed
|
|
67
|
+
|
|
68
|
+
- O painel admin ganhou um visual novo (`admin.css` reescrito sobre tokens):
|
|
69
|
+
header e sidebar claros com a marca à esquerda, cards de métrica com
|
|
70
|
+
hierarquia, tabela compacta com rolagem horizontal própria, badges para
|
|
71
|
+
booleanos, form em grid com checkbox em switch, login centralizado com a
|
|
72
|
+
marca. As classes `tempest-admin-*` existentes continuam; um
|
|
73
|
+
`custom_css_url` que sobrescrevia cores fixas do header escuro precisa ser
|
|
74
|
+
revisto.
|
|
75
|
+
- `AdminTheme`: `header_bg` passa de `"#0f172a"` para `"#ffffff"` e `radius`
|
|
76
|
+
de `"6px"` para `"8px"`. Com um `header_bg`/`sidebar_bg` hex escuro, o
|
|
77
|
+
texto do chrome passa a claro sozinho (luminância WCAG); cor que não é hex
|
|
78
|
+
é tratada como escura. `dark_mode=True` agora escurece também os cards e o
|
|
79
|
+
chrome, enquanto `header_bg` for o padrão.
|
|
80
|
+
- Lista, detalhe e histórico mostram o nome da coluna humanizado
|
|
81
|
+
(`customer_email` → `Customer email`, `category_id` → `Category`, `id` →
|
|
82
|
+
`ID`) e formatam o valor: booleano em badge `Yes`/`No`, UUID nos 8 primeiros
|
|
83
|
+
caracteres com o valor inteiro no `title` (o detalhe mostra inteiro),
|
|
84
|
+
datetime ao minuto com o offset compacto (`UTC`, `-03:00`) e o instante
|
|
85
|
+
completo no `title`, `Enum` pelo nome. Export e o `value` do form não mudam.
|
|
86
|
+
- Os rótulos do form seguem a mesma regra (`Price Cents` → `Price cents`,
|
|
87
|
+
`Category Id` → `Category`).
|
|
88
|
+
- O plural padrão do `verbose_name` segue o inglês regular: `Category` →
|
|
89
|
+
`Categories`, `Address` → `Addresses` (antes, sempre `+ "s"`).
|
|
90
|
+
- O protocolo `SubjectStorageClient` ganhou `presigned_post_policy` e os
|
|
91
|
+
parâmetros novos de `presigned_get_url`. `AsyncMinIOClient`,
|
|
92
|
+
`LocalObjectStorageClient` e `FakeObjectStorageClient` cumprem; um cliente
|
|
93
|
+
próprio que implemente o protocolo precisa dos dois.
|
|
94
|
+
|
|
95
|
+
### Fixed
|
|
96
|
+
|
|
97
|
+
- A busca da lista do admin (`?q=`) e o export comparavam o termo por
|
|
98
|
+
**igualdade** em cada `search_fields` e exigiam que **todos** fossem iguais
|
|
99
|
+
ao termo inteiro — `cliente1` não achava `cliente1@mail.com`, e um segundo
|
|
100
|
+
campo de busca fazia toda busca voltar vazia (#635). Agora cada palavra é
|
|
101
|
+
um `ILIKE %palavra%` escapado, em OR entre os campos, e toda palavra
|
|
102
|
+
precisa casar em algum (`like_search_condition`, o mesmo do autocomplete);
|
|
103
|
+
`%` e `_` são literais.
|
|
104
|
+
- O `admin.css` é servido com `?v=<sha256[:12]>` do arquivo: depois de um
|
|
105
|
+
upgrade, o browser que tinha a folha antiga em cache desenhava o markup novo
|
|
106
|
+
com as regras velhas.
|
|
107
|
+
- Cards do dashboard imprimiam `17.0` para contagens vindas de
|
|
108
|
+
`MetricPartition`/`MetricTrend` em float; inteiro sai sem `.0`.
|
|
109
|
+
- Com `dark_mode=True`, cards, tabelas e dropdowns ficavam brancos
|
|
110
|
+
(`--tempest-surface` não era sobrescrito).
|
|
111
|
+
|
|
10
112
|
## [0.330.0] — 2026-10-25
|
|
11
113
|
|
|
12
114
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: tempest-fastapi-sdk
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.331.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
|
|
@@ -434,7 +434,7 @@ Since `0.7.1` every optional dependency is imported lazily at first instantiatio
|
|
|
434
434
|
| `tempest_fastapi_sdk.schemas` | `BaseSchema`, `BaseResponseSchema`, `ErrorResponseSchema`, `BasePaginationFilterSchema`, `BasePaginationSchema[T]`, `CursorPaginationFilterSchema`, `CursorPaginationSchema`, `LogEntrySchema`, `LogFilesClearedSchema`, `encode_cursor`, `decode_cursor`, `build_pagination_link_header` |
|
|
435
435
|
| `tempest_fastapi_sdk.services` | `BaseService` |
|
|
436
436
|
| `tempest_fastapi_sdk.settings` | `BaseAppSettings` (+ `AppSettingsMeta`), `ServerSettings`, `LogSettings`, `DatabaseSettings`, `RedisSettings`, `RabbitMQSettings`, `JWTSettings`, `CORSSettings`, `EmailSettings`, `UploadSettings`, `TokenSettings`, `WebPushSettings`, `TaskIQSettings`, `StorageSettings` (S3-compatible storage; `MinIOSettings` is its deprecated name), `EnvironmentSettings` (`ENV`; `production` refuses development values), `AuthSettings`, `OpenPixSettings` (AppID + ambiente; `openpix_kwargs()`), `HostedGenAISettings` (Anthropic/OpenAI/DeepSeek keys + models; `anthropic_kwargs()` / `openai_kwargs()` / `deepseek_kwargs()`), `reject_conflicting_env_aliases` |
|
|
437
|
-
| `tempest_fastapi_sdk.sse` | `EventStream` (bounded queue + `overflow` backpressure), `SSEBroker` (multi-worker fan-out via Redis, `.response()` lifecycle helper), `ServerSentEvent`, `sse_response` (`on_disconnect=` cleanup) |
|
|
437
|
+
| `tempest_fastapi_sdk.sse` | `EventStream` (bounded queue + `overflow` backpressure), `SSEBroker` (multi-worker fan-out via Redis, `.response()` lifecycle helper), `ServerSentEvent`, `sse_response` (`on_disconnect=` cleanup), `make_sse_router` / `UserAuthService.sse_router` (authenticated stream for the browser `EventSource`: `POST /sse/ticket` trades the session for a 60 s `typ="stream"` ticket that opens `GET /sse/stream?ticket=` and no other route) |
|
|
438
438
|
| `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` |
|
|
439
439
|
| `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` |
|
|
440
440
|
| `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; `LocalObjectStorageClient` (no extra) answers the same calls from a directory of the server — atomic writes, content type and ETag kept beside each object, `LocalObjectNotFoundError` with `code="NoSuchKey"` — and signs its "presigned" links to the app's own routes, which `make_local_storage_router` serves (`GET` with `Range`, `PUT` capped at `max_upload_bytes`); `StorageSettings.build_storage_client()` picks one by `STORAGE_BACKEND` |
|
|
@@ -3109,7 +3109,7 @@ es.addEventListener("counter", (e) => console.log("got", JSON.parse(e.data)));
|
|
|
3109
3109
|
|
|
3110
3110
|
`heartbeat_seconds` emits a `: keepalive` SSE comment when idle so load-balancers don't close long-lived connections; a frame carrying only `comment`, `id` or `retry` gets no `data:` line, so it never fires `onmessage` (an empty `data:` does — measured in Chromium). `ServerSentEvent.data` accepts strings, bytes or any JSON-serializable Python object — non-strings are JSON-encoded automatically. Pass `retry=` to hint the browser at the reconnect delay (milliseconds).
|
|
3111
3111
|
|
|
3112
|
-
The queue is **bounded** (`max_queue`, default `1000`): a slow client can't grow memory without limit. `overflow` picks the eviction policy — `"drop_oldest"` (default), `"drop_newest"`, or `"block"` (real backpressure); `EventStream.dropped_events` counts the discards. For broadcast, `SSEBroker.response(channel)` bundles `register` + `sse_response` + `unregister`-on-disconnect in one call. Authenticating an `EventSource` (which can't send an `Authorization` header):
|
|
3112
|
+
The queue is **bounded** (`max_queue`, default `1000`): a slow client can't grow memory without limit. `overflow` picks the eviction policy — `"drop_oldest"` (default), `"drop_newest"`, or `"block"` (real backpressure); `EventStream.dropped_events` counts the discards. For broadcast, `SSEBroker.response(channel)` bundles `register` + `sse_response` + `unregister`-on-disconnect in one call. Authenticating an `EventSource` (which can't send an `Authorization` header): mount `auth_service.sse_router(broker)` — the client trades its session for a ticket on `POST /sse/ticket` and opens `GET /sse/stream?ticket=...`; the ticket is a 60 s `typ="stream"` JWT that every bearer guard refuses, so the URL never carries a session. A header or the login cookie also opens the stream; `allow_access_token_query=True` keeps an existing `?access_token=` client working while it migrates. See the [SSE recipe](https://mauriciobenjamin700.github.io/tempest-fastapi-sdk/recipes/sse/) for the full guide.
|
|
3113
3113
|
|
|
3114
3114
|
### Web Push notifications recipe
|
|
3115
3115
|
|
|
@@ -212,7 +212,7 @@ Since `0.7.1` every optional dependency is imported lazily at first instantiatio
|
|
|
212
212
|
| `tempest_fastapi_sdk.schemas` | `BaseSchema`, `BaseResponseSchema`, `ErrorResponseSchema`, `BasePaginationFilterSchema`, `BasePaginationSchema[T]`, `CursorPaginationFilterSchema`, `CursorPaginationSchema`, `LogEntrySchema`, `LogFilesClearedSchema`, `encode_cursor`, `decode_cursor`, `build_pagination_link_header` |
|
|
213
213
|
| `tempest_fastapi_sdk.services` | `BaseService` |
|
|
214
214
|
| `tempest_fastapi_sdk.settings` | `BaseAppSettings` (+ `AppSettingsMeta`), `ServerSettings`, `LogSettings`, `DatabaseSettings`, `RedisSettings`, `RabbitMQSettings`, `JWTSettings`, `CORSSettings`, `EmailSettings`, `UploadSettings`, `TokenSettings`, `WebPushSettings`, `TaskIQSettings`, `StorageSettings` (S3-compatible storage; `MinIOSettings` is its deprecated name), `EnvironmentSettings` (`ENV`; `production` refuses development values), `AuthSettings`, `OpenPixSettings` (AppID + ambiente; `openpix_kwargs()`), `HostedGenAISettings` (Anthropic/OpenAI/DeepSeek keys + models; `anthropic_kwargs()` / `openai_kwargs()` / `deepseek_kwargs()`), `reject_conflicting_env_aliases` |
|
|
215
|
-
| `tempest_fastapi_sdk.sse` | `EventStream` (bounded queue + `overflow` backpressure), `SSEBroker` (multi-worker fan-out via Redis, `.response()` lifecycle helper), `ServerSentEvent`, `sse_response` (`on_disconnect=` cleanup) |
|
|
215
|
+
| `tempest_fastapi_sdk.sse` | `EventStream` (bounded queue + `overflow` backpressure), `SSEBroker` (multi-worker fan-out via Redis, `.response()` lifecycle helper), `ServerSentEvent`, `sse_response` (`on_disconnect=` cleanup), `make_sse_router` / `UserAuthService.sse_router` (authenticated stream for the browser `EventSource`: `POST /sse/ticket` trades the session for a 60 s `typ="stream"` ticket that opens `GET /sse/stream?ticket=` and no other route) |
|
|
216
216
|
| `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` |
|
|
217
217
|
| `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` |
|
|
218
218
|
| `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; `LocalObjectStorageClient` (no extra) answers the same calls from a directory of the server — atomic writes, content type and ETag kept beside each object, `LocalObjectNotFoundError` with `code="NoSuchKey"` — and signs its "presigned" links to the app's own routes, which `make_local_storage_router` serves (`GET` with `Range`, `PUT` capped at `max_upload_bytes`); `StorageSettings.build_storage_client()` picks one by `STORAGE_BACKEND` |
|
|
@@ -2887,7 +2887,7 @@ es.addEventListener("counter", (e) => console.log("got", JSON.parse(e.data)));
|
|
|
2887
2887
|
|
|
2888
2888
|
`heartbeat_seconds` emits a `: keepalive` SSE comment when idle so load-balancers don't close long-lived connections; a frame carrying only `comment`, `id` or `retry` gets no `data:` line, so it never fires `onmessage` (an empty `data:` does — measured in Chromium). `ServerSentEvent.data` accepts strings, bytes or any JSON-serializable Python object — non-strings are JSON-encoded automatically. Pass `retry=` to hint the browser at the reconnect delay (milliseconds).
|
|
2889
2889
|
|
|
2890
|
-
The queue is **bounded** (`max_queue`, default `1000`): a slow client can't grow memory without limit. `overflow` picks the eviction policy — `"drop_oldest"` (default), `"drop_newest"`, or `"block"` (real backpressure); `EventStream.dropped_events` counts the discards. For broadcast, `SSEBroker.response(channel)` bundles `register` + `sse_response` + `unregister`-on-disconnect in one call. Authenticating an `EventSource` (which can't send an `Authorization` header):
|
|
2890
|
+
The queue is **bounded** (`max_queue`, default `1000`): a slow client can't grow memory without limit. `overflow` picks the eviction policy — `"drop_oldest"` (default), `"drop_newest"`, or `"block"` (real backpressure); `EventStream.dropped_events` counts the discards. For broadcast, `SSEBroker.response(channel)` bundles `register` + `sse_response` + `unregister`-on-disconnect in one call. Authenticating an `EventSource` (which can't send an `Authorization` header): mount `auth_service.sse_router(broker)` — the client trades its session for a ticket on `POST /sse/ticket` and opens `GET /sse/stream?ticket=...`; the ticket is a 60 s `typ="stream"` JWT that every bearer guard refuses, so the URL never carries a session. A header or the login cookie also opens the stream; `allow_access_token_query=True` keeps an existing `?access_token=` client working while it migrates. See the [SSE recipe](https://mauriciobenjamin700.github.io/tempest-fastapi-sdk/recipes/sse/) for the full guide.
|
|
2891
2891
|
|
|
2892
2892
|
### Web Push notifications recipe
|
|
2893
2893
|
|
|
@@ -601,7 +601,12 @@ The SDK currently covers (Sep 2025+, post-v0.31.x):
|
|
|
601
601
|
(per-channel fan-out; `SSEBroker.response(channel)` bundles
|
|
602
602
|
register + response + unregister-on-disconnect; in-memory
|
|
603
603
|
single-process, or multi-worker via an injected Redis pub/sub bridge
|
|
604
|
-
— same call site).
|
|
604
|
+
— same call site). Authenticated stream for the browser `EventSource`:
|
|
605
|
+
`UserAuthService.sse_router(broker)` / `make_sse_router` mount
|
|
606
|
+
`POST <prefix>/ticket` + `GET <prefix>/stream?ticket=` — a 60 s
|
|
607
|
+
`typ="stream"` JWT carrying the channel, refused by every bearer guard;
|
|
608
|
+
header and login cookie also open the stream, `?access_token=` only behind
|
|
609
|
+
`allow_access_token_query=True`; no DB session held while streaming.
|
|
605
610
|
- **Throttle** — `AttemptThrottle` (any `ThrottleBackend`, e.g.
|
|
606
611
|
`redis.asyncio.Redis`) and, since v0.306.0, the bundled
|
|
607
612
|
`InMemoryThrottleBackend` (process-local, `clock=` injectable for
|
|
@@ -3785,16 +3790,16 @@ cadastro pendente comum. Com `AUTH_AUTO_ACTIVATE=true` o cadastro não consulta
|
|
|
3785
3790
|
Receita: `docs/recipes/auth-pages.md`. Testes:
|
|
3786
3791
|
`tests/auth/test_auth_pages.py`.
|
|
3787
3792
|
- **Helpers de login do admin aceitam `httpx2`/`TestClient` no strict,
|
|
3788
|
-
|
|
3793
|
+
v0.329.0 (#610)** — `admin_login` / `admin_login_sync` tipados por
|
|
3789
3794
|
`AsyncFormClient` / `SyncFormClient` / `FormResponse` (`Protocol`s públicos
|
|
3790
3795
|
em `tempest_fastapi_sdk.testing`), genéricos na resposta. Teste:
|
|
3791
3796
|
`tests/testing/test_admin_login_typing.py` (mypy `--strict` sobre o uso de
|
|
3792
3797
|
cada cliente).
|
|
3793
|
-
- **Import preguiçoso da raiz,
|
|
3798
|
+
- **Import preguiçoso da raiz, v0.329.0 (#611)** — `__init__` da raiz e de
|
|
3794
3799
|
`utils` em PEP 562 (`_LAZY_ATTRIBUTES` + `__getattr__` escondido do checker
|
|
3795
3800
|
+ imports em `TYPE_CHECKING`); `tempest --help` 0,94 s → 0,14 s. Guard:
|
|
3796
3801
|
`tests/test_lazy_init_guard.py`.
|
|
3797
|
-
- **Storage em disco local,
|
|
3802
|
+
- **Storage em disco local, v0.328.0** — `LocalObjectStorageClient`
|
|
3798
3803
|
(`storage/local_client.py`, sem extra) implementa o `SubjectStorageClient`
|
|
3799
3804
|
inteiro sobre um diretório: `objects/<bucket>/<key>`, metadado (content type,
|
|
3800
3805
|
metadata, ETag MD5) em `meta/<bucket>/<key>.meta.json`, escrita em `tmp/` +
|
|
@@ -3812,3 +3817,49 @@ cadastro pendente comum. Com `AUTH_AUTO_ACTIVATE=true` o cadastro não consulta
|
|
|
3812
3817
|
`docs/recipes/local-storage.md`. Testes:
|
|
3813
3818
|
`tests/storage/test_local_client.py`, `tests/storage/test_local_router.py`,
|
|
3814
3819
|
`tests/settings/test_storage_settings.py::TestLocalBackend`.
|
|
3820
|
+
- **Visual novo do admin, v0.331.0 (2026-10-26)** — `admin.css` reescrito sobre tokens
|
|
3821
|
+
(`--tempest-surface`, `--tempest-border`, `--tempest-*-soft` derivados por
|
|
3822
|
+
`color-mix()`): chrome claro com a marca à esquerda, sidebar com item ativo
|
|
3823
|
+
suave, cards de métrica, tabela com rolagem horizontal própria, form em
|
|
3824
|
+
grid de duas colunas com checkbox em switch, login centralizado. O
|
|
3825
|
+
`AdminTheme` passa a `header_bg="#ffffff"` e `radius="8px"`, ganha
|
|
3826
|
+
`header_fg` e escolhe o texto do header/sidebar pela luminância do fundo; o
|
|
3827
|
+
`dark_mode` cobre os cards e escurece o chrome padrão. `admin/display.py`
|
|
3828
|
+
formata célula e rótulo (`humanize_field`, `cell_view`: booleano em badge,
|
|
3829
|
+
UUID curto com o valor inteiro no `title`, datetime ao minuto com offset
|
|
3830
|
+
compacto, inteiro sem `.0`), e o plural do `verbose_name` segue o inglês
|
|
3831
|
+
regular (`Categories`). O link do CSS leva `?v=<sha256[:12]>` do arquivo,
|
|
3832
|
+
para o browser não servir a folha antiga depois de um upgrade. Validado em
|
|
3833
|
+
browser real (1440 e 390, burger, criação, busca, lens, dark mode). Testes:
|
|
3834
|
+
`tests/admin/test_display.py`.
|
|
3835
|
+
- **Scheme público atrás de proxy, v0.331.0 (2026-10-26)** — `ServerSettings` ganha
|
|
3836
|
+
`SERVER_PUBLIC_SCHEME` e `api/middlewares/public_scheme.py` o
|
|
3837
|
+
`PublicSchemeMiddleware`, que carimba `scope["scheme"]` (`ws`/`wss` no
|
|
3838
|
+
websocket, `lifespan` intocado). Declarado em vez de lido de
|
|
3839
|
+
`X-Forwarded-Proto` porque porta publicada deixa forjar header encaminhado.
|
|
3840
|
+
Veio do `alofans-api` (commit `a3f4cb9e`), onde cada serviço tinha a sua
|
|
3841
|
+
cópia; o `transport-backend` não tinha e o login do admin aparecia como não
|
|
3842
|
+
seguro em produção. O `make_admin_router` loga `WARNING` no login servido
|
|
3843
|
+
como `http` em host público com `cookie_secure=True`, e o template do
|
|
3844
|
+
`tempest new` registra o middleware. Receita: `docs/recipes/security.md`.
|
|
3845
|
+
Testes: `tests/api/test_public_scheme_middleware.py`,
|
|
3846
|
+
`tests/admin/test_login_scheme_warning.py`,
|
|
3847
|
+
`tests/settings/test_public_scheme.py`.
|
|
3848
|
+
- **Upload com teto e download com tipo assinado no storage, v0.331.0 (2026-10-26)
|
|
3849
|
+
(#637)** — `presigned_post_policy` no `AsyncMinIOClient` (policy S3 com
|
|
3850
|
+
`eq key`, `eq Content-Type` e `content-length-range`; assinatura local, sem
|
|
3851
|
+
rede, com o `DeprecationWarning` do `datetime.utcnow()` do minio 7.2.20
|
|
3852
|
+
silenciado no ponto da chamada) e no `LocalObjectStorageClient` (rota
|
|
3853
|
+
`POST` multipart no `make_local_storage_router`, limites amarrados à
|
|
3854
|
+
assinatura por `bound_purpose`); `SubjectObjectStorage.presign_post`;
|
|
3855
|
+
`filename`/`media_type`/`as_attachment` assinados no `presigned_get_url` dos
|
|
3856
|
+
dois backends e no `presign`. `prune_orphan_enum_schemas` remove do OpenAPI
|
|
3857
|
+
o enum que o FastAPI publica sem `$ref` (o `ImageMediaType` do
|
|
3858
|
+
`image_media_type_field`); o scaffold chama. Testes:
|
|
3859
|
+
`tests/storage/test_presign.py`, `tests/storage/test_local_presign.py`,
|
|
3860
|
+
`tests/storage/test_presign_live.py` (docker), `tests/api/test_openapi_pruning.py`.
|
|
3861
|
+
- **Busca do admin por trecho, v0.331.0 (2026-10-26) (#635)** — `?q=` da lista e do
|
|
3862
|
+
export passa por `like_search_condition` (ILIKE escapado por palavra, OR
|
|
3863
|
+
entre `search_fields`, todas as palavras) via `where=` do `paginate`, em vez
|
|
3864
|
+
de `filters[field] = q` (igualdade com AND). Teste:
|
|
3865
|
+
`tests/admin/test_search.py` (8 dos 10 casos falham no código antigo).
|
|
@@ -2,6 +2,38 @@
|
|
|
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.331.0 — new admin look, capped storage uploads
|
|
6
|
+
|
|
7
|
+
`admin.css` was rewritten on tokens and `AdminTheme` changed two defaults:
|
|
8
|
+
`header_bg` goes from `"#0f172a"` to `"#ffffff"` and `radius` from `"6px"`
|
|
9
|
+
to `"8px"`. The `tempest-admin-*` classes stay.
|
|
10
|
+
|
|
11
|
+
The `SubjectStorageClient` protocol gained `presigned_post_policy`, and
|
|
12
|
+
`presigned_get_url` gained `filename`, `media_type` and `as_attachment`.
|
|
13
|
+
|
|
14
|
+
The admin list search (`?q=`) now matches a substring in any of the
|
|
15
|
+
`search_fields`; it used to compare by equality in all of them.
|
|
16
|
+
|
|
17
|
+
### What to do
|
|
18
|
+
|
|
19
|
+
1. If you pass `custom_css_url` overriding fixed colors of the dark header:
|
|
20
|
+
review the sheet against the light header.
|
|
21
|
+
2. To keep a dark header, pass `AdminTheme(header_bg="#0f172a")`: the chrome
|
|
22
|
+
text turns light on its own from the luminance. If the guess is wrong,
|
|
23
|
+
pin it with `header_fg=`.
|
|
24
|
+
3. Behind a proxy that terminates TLS, use the upgrade to declare
|
|
25
|
+
`SERVER_PUBLIC_SCHEME=https` and register the `PublicSchemeMiddleware`
|
|
26
|
+
([Security](recipes/security.md#public-scheme-behind-a-proxy-server_public_scheme)):
|
|
27
|
+
without it the admin login shows as not secure.
|
|
28
|
+
4. A storage client of yours implementing `SubjectStorageClient` needs
|
|
29
|
+
`presigned_post_policy` and the three new `presigned_get_url` parameters
|
|
30
|
+
to keep passing the type-checker. `AsyncMinIOClient`,
|
|
31
|
+
`LocalObjectStorageClient` and `FakeObjectStorageClient` already comply.
|
|
32
|
+
5. A service that generates a client from the OpenAPI and uses
|
|
33
|
+
`image_media_type_field`: call `prune_orphan_enum_schemas(app)` in
|
|
34
|
+
`create_app` to drop the orphan `ImageMediaType`
|
|
35
|
+
([Uploads](recipes/uploads.md)).
|
|
36
|
+
|
|
5
37
|
## 0.330.0 — a push subscription no longer changes owner
|
|
6
38
|
|
|
7
39
|
`POST /subscribe` (Web Push) and `POST /register` (mobile push) no longer
|
|
@@ -2,6 +2,39 @@
|
|
|
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.331.0 — visual novo do admin, upload com teto no storage
|
|
6
|
+
|
|
7
|
+
O `admin.css` foi reescrito sobre tokens e o `AdminTheme` mudou dois
|
|
8
|
+
defaults: `header_bg` passa de `"#0f172a"` para `"#ffffff"` e `radius` de
|
|
9
|
+
`"6px"` para `"8px"`. As classes `tempest-admin-*` continuam.
|
|
10
|
+
|
|
11
|
+
O protocolo `SubjectStorageClient` ganhou `presigned_post_policy`, e
|
|
12
|
+
`presigned_get_url` ganhou `filename`, `media_type` e `as_attachment`.
|
|
13
|
+
|
|
14
|
+
A busca da lista do admin (`?q=`) passa a procurar por trecho em qualquer
|
|
15
|
+
`search_fields`; antes comparava por igualdade em todos.
|
|
16
|
+
|
|
17
|
+
### O que fazer
|
|
18
|
+
|
|
19
|
+
1. Quem passa `custom_css_url` sobrescrevendo cores fixas do header escuro:
|
|
20
|
+
revise a folha contra o header claro.
|
|
21
|
+
2. Para manter o header escuro, passe `AdminTheme(header_bg="#0f172a")`: o
|
|
22
|
+
texto do chrome passa a claro sozinho pela luminância. Se o palpite errar,
|
|
23
|
+
fixe com `header_fg=`.
|
|
24
|
+
3. Atrás de um proxy que termina o TLS, aproveite o upgrade para declarar
|
|
25
|
+
`SERVER_PUBLIC_SCHEME=https` e registrar o `PublicSchemeMiddleware`
|
|
26
|
+
([Segurança](recipes/security.md#scheme-publico-atras-de-proxy-server_public_scheme)):
|
|
27
|
+
sem isso o login do admin aparece como não seguro.
|
|
28
|
+
4. Um cliente de storage seu que implemente `SubjectStorageClient` precisa
|
|
29
|
+
de `presigned_post_policy` e dos três parâmetros novos de
|
|
30
|
+
`presigned_get_url` para continuar passando no type-checker.
|
|
31
|
+
`AsyncMinIOClient`, `LocalObjectStorageClient` e `FakeObjectStorageClient`
|
|
32
|
+
já cumprem.
|
|
33
|
+
5. Serviço que gera cliente a partir do OpenAPI e usa
|
|
34
|
+
`image_media_type_field`: chame `prune_orphan_enum_schemas(app)` no
|
|
35
|
+
`create_app` para tirar o `ImageMediaType` órfão
|
|
36
|
+
([Uploads](recipes/uploads.md)).
|
|
37
|
+
|
|
5
38
|
## 0.330.0 — inscrição de push não muda mais de dono
|
|
6
39
|
|
|
7
40
|
`POST /subscribe` (Web Push) e `POST /register` (push mobile) não
|
|
@@ -204,7 +204,7 @@ app.include_router(
|
|
|
204
204
|
- `GET /admin/` — dashboard: a card per model with its **live row count** + Browse/New, plus a **metrics panel** (CPU/RAM/disk via `MetricsUtils`). On by default, omitted without the `[metrics]` extra, disable with `make_admin_router(show_metrics=False)`.
|
|
205
205
|
- `GET /admin/logs` — **application logs** (when `show_logs=True`): reads the structured JSON files written by `configure_logging(log_dir=…)`, with source filter (`?source=`), free-text search (`?q=`) and pagination. Color-coded level badges. Renders an empty state when no log files exist yet.
|
|
206
206
|
- `GET /admin/logs/export` — **log export** (`?format=md|json`): downloads the filtered selection as markdown (traceback in a fenced block, ready to paste into an issue) or verbatim JSON.
|
|
207
|
-
- `GET /admin/m/{slug}/` — list view with pagination + free-text search (`?q
|
|
207
|
+
- `GET /admin/m/{slug}/` — list view with pagination + free-text search (`?q=`: each word matched as a case-insensitive substring in any of the `search_fields`, and every word must appear; `%` and `_` are literal) + per-field filters (`?filter_<field>=value`) + clickable **column sorting** (`?sort=<column>&dir=asc|desc`).
|
|
208
208
|
- `GET /admin/m/{slug}/export.csv` / `export.json` — **export** the current result set (honoring search/filters/sort) as CSV or JSON. Row cap via `make_admin_router(export_max_rows=…)` (default 5000).
|
|
209
209
|
- `POST /admin/m/{slug}/bulk` — **bulk actions** (delete / activate / deactivate + your **custom actions**) on the selected rows.
|
|
210
210
|
- `GET/POST /admin/m/{slug}/new` — **create** a record (when `can_create`).
|
|
@@ -934,8 +934,8 @@ site.register(
|
|
|
934
934
|
What changes, and nothing else:
|
|
935
935
|
|
|
936
936
|
- **List and detail** convert every `datetime` to the zone and print the
|
|
937
|
-
offset with it (`2026-06-15 20:00
|
|
938
|
-
ambiguous.
|
|
937
|
+
offset with it (`2026-06-15 20:00 -03:00`; the full instant is in the
|
|
938
|
+
tooltip), so the screen is never ambiguous.
|
|
939
939
|
- **The form** pre-fills the box with the local hour
|
|
940
940
|
(`2026-06-15T20:00`) and writes `Timezone: America/Sao_Paulo — stored
|
|
941
941
|
as UTC.` underneath, because `datetime-local` has nowhere to say it.
|
|
@@ -1046,6 +1046,14 @@ and export; "All" clears it.
|
|
|
1046
1046
|
this flag to `DEBUG` — turning debug on in production is worse than the
|
|
1047
1047
|
original problem.
|
|
1048
1048
|
|
|
1049
|
+
!!! warning "Browser says the login form is not secure? It's the scheme behind the proxy"
|
|
1050
|
+
With HTTPS in front and the proxy speaking HTTP to the app, the form's
|
|
1051
|
+
`action` comes out as `http://...` and the browser flags the password
|
|
1052
|
+
field as not secure. Set `SERVER_PUBLIC_SCHEME=https` and add
|
|
1053
|
+
`PublicSchemeMiddleware` — recipe in
|
|
1054
|
+
[Security](security.md#public-scheme-behind-a-proxy-server_public_scheme).
|
|
1055
|
+
Until then, `GET /admin/login` logs a `WARNING` saying so.
|
|
1056
|
+
|
|
1049
1057
|
##### Signing in from a test
|
|
1050
1058
|
|
|
1051
1059
|
Since `POST /admin/login` requires the form's token, a test that posts the credentials alone gets `403`. `tempest_fastapi_sdk.testing` does what a browser does — loads the form, reads the hidden field (the cookie lands in the client's jar) and submits it:
|
|
@@ -1408,13 +1416,13 @@ from tempest_fastapi_sdk import AdminSite, AdminTheme
|
|
|
1408
1416
|
theme: AdminTheme = AdminTheme(
|
|
1409
1417
|
accent="#7c3aed", # primary color (links, buttons, active item)
|
|
1410
1418
|
accent_hover="#6d28d9", # hover shade of the accent
|
|
1411
|
-
header_bg="#1e1b4b", # header/sidebar background
|
|
1419
|
+
header_bg="#1e1b4b", # header/sidebar background (text turns light on its own)
|
|
1412
1420
|
radius="10px", # radius of buttons, inputs, cards, tables
|
|
1413
1421
|
font_family="'Inter', system-ui, sans-serif",
|
|
1414
1422
|
logo_url="/admin/static/logo.svg", # header image (instead of the text brand)
|
|
1415
1423
|
favicon_url="/admin/static/favicon.ico",
|
|
1416
1424
|
footer_text="Servus | 2026",
|
|
1417
|
-
dark_mode=False, # dark
|
|
1425
|
+
dark_mode=False, # dark surfaces
|
|
1418
1426
|
)
|
|
1419
1427
|
|
|
1420
1428
|
site: AdminSite = AdminSite(title="Servus Admin", brand="Servus", theme=theme)
|
|
@@ -1433,23 +1441,33 @@ site: AdminSite = AdminSite(title="Servus Admin", brand="Servus", theme=theme)
|
|
|
1433
1441
|
| `accent` | `str` | `"#2563eb"` | Primary color: links, buttons, active sidebar item |
|
|
1434
1442
|
| `accent_hover` | `str` | `"#1d4ed8"` | Hover/active shade of `accent` |
|
|
1435
1443
|
| `danger` | `str` | `"#b91c1c"` | Destructive actions and error messages |
|
|
1436
|
-
| `header_bg` | `str` | `"#
|
|
1444
|
+
| `header_bg` | `str` | `"#ffffff"` | Header background |
|
|
1437
1445
|
| `sidebar_bg` | ``str | None`` | `None` | Sidebar background (falls back to `header_bg`) |
|
|
1446
|
+
| `header_fg` | ``str | None`` | `None` | Header and sidebar text color (`None` picks it from the background contrast) |
|
|
1438
1447
|
| `page_bg` | ``str | None`` | `None` | Content background (mode default) |
|
|
1439
|
-
| `radius` | `str` | `"
|
|
1448
|
+
| `radius` | `str` | `"8px"` | Radius of buttons, inputs, cards, tables |
|
|
1440
1449
|
| `font_family` | ``str | None`` | `None` | `font-family` for the whole panel |
|
|
1441
1450
|
| `logo_url` | ``str | None`` | `None` | Header image instead of the text brand |
|
|
1442
1451
|
| `logo_alt` | `str` | `"Logo"` | `alt` text for the logo image |
|
|
1443
1452
|
| `favicon_url` | ``str | None`` | `None` | Browser-tab favicon |
|
|
1444
1453
|
| `footer_text` | `str` | `"Powered by tempest-fastapi-sdk"` | Footer text |
|
|
1445
|
-
| `dark_mode` | `bool` | `False` | Dark
|
|
1454
|
+
| `dark_mode` | `bool` | `False` | Dark surfaces (and the chrome, while `header_bg` is the default) |
|
|
1446
1455
|
| `custom_css_url` | ``str | None`` | `None` | Extra stylesheet, linked last |
|
|
1447
1456
|
|
|
1448
1457
|
!!! info "Dark mode"
|
|
1449
1458
|
`dark_mode=True` switches the **content surfaces** (page background,
|
|
1450
|
-
text, table rows, inputs, borders) to a dark palette. The
|
|
1451
|
-
|
|
1452
|
-
|
|
1459
|
+
cards, text, table rows, inputs, borders) to a dark palette. The header
|
|
1460
|
+
and sidebar go dark with them while `header_bg` is the light default;
|
|
1461
|
+
a `header_bg` of yours is kept. `accent` and the other colors still
|
|
1462
|
+
apply. An explicit `page_bg` wins over the content's dark mode (the
|
|
1463
|
+
surfaces stay light), but the default chrome still goes dark.
|
|
1464
|
+
|
|
1465
|
+
!!! info "Header text picked from the background"
|
|
1466
|
+
The header and sidebar are light by default. Give them a dark hex
|
|
1467
|
+
`header_bg` (or `sidebar_bg`) and their text turns light on its own —
|
|
1468
|
+
the SDK computes the background's luminance. A color that is not hex
|
|
1469
|
+
(`"rebeccapurple"`, `rgb(...)`) is treated as dark; when that guess is
|
|
1470
|
+
wrong, pin the color with `header_fg`.
|
|
1453
1471
|
|
|
1454
1472
|
!!! warning "Escape hatch for the rest"
|
|
1455
1473
|
For anything the fields do not cover, point `custom_css_url` at your own
|
|
@@ -187,7 +187,7 @@ app.include_router(
|
|
|
187
187
|
- `GET /admin/` — dashboard: card por modelo com **contagem de linhas** + Browse/New, e um **painel de métricas** (CPU/RAM/disco via `MetricsUtils`). Painel ligado por default, omitido sem o extra `[metrics]`, desligável com `make_admin_router(show_metrics=False)`.
|
|
188
188
|
- `GET /admin/logs` — **logs da aplicação** (quando `show_logs=True`): lê os arquivos JSON estruturados escritos pelo `configure_logging(log_dir=…)`, com filtro por fonte (`?source=`), busca em texto (`?q=`) e paginação. Badges coloridos por nível. Quando ainda não há arquivos de log, mostra um estado vazio.
|
|
189
189
|
- `GET /admin/logs/export` — **export dos logs** (`?format=md|json`): baixa a seleção filtrada como markdown (traceback em bloco cercado, pronto para colar em issue) ou JSON verbatim.
|
|
190
|
-
- `GET /admin/m/{slug}/` — list view com paginação + busca em texto livre (`?q
|
|
190
|
+
- `GET /admin/m/{slug}/` — list view com paginação + busca em texto livre (`?q=`: cada palavra procurada por trecho, sem diferenciar maiúscula, em qualquer um dos `search_fields`, e toda palavra precisa aparecer; `%` e `_` são literais) + filtros por campo (`?filter_<field>=value`) + **ordenação por coluna** clicável (`?sort=<coluna>&dir=asc|desc`).
|
|
191
191
|
- `GET /admin/m/{slug}/export.csv` / `export.json` — **exporta** o resultado atual (respeitando busca/filtros/ordenação) como CSV ou JSON. Limite de linhas via `make_admin_router(export_max_rows=…)` (default 5000).
|
|
192
192
|
- `POST /admin/m/{slug}/bulk` — **ações em massa** (delete / activate / deactivate + suas **ações customizadas**) nas linhas selecionadas.
|
|
193
193
|
- `GET/POST /admin/m/{slug}/new` — **criar** registro (quando `can_create`).
|
|
@@ -914,8 +914,8 @@ site.register(
|
|
|
914
914
|
O que muda, e só isso:
|
|
915
915
|
|
|
916
916
|
- **Listagem e detail** convertem cada `datetime` para o fuso e mostram
|
|
917
|
-
o offset junto (`2026-06-15 20:00
|
|
918
|
-
ambígua.
|
|
917
|
+
o offset junto (`2026-06-15 20:00 -03:00`; o instante completo fica no
|
|
918
|
+
tooltip), então a tela nunca é ambígua.
|
|
919
919
|
- **Form** pré-preenche a caixa com a hora local (`2026-06-15T20:00`) e
|
|
920
920
|
escreve `Timezone: America/Sao_Paulo — stored as UTC.` embaixo, porque
|
|
921
921
|
o `datetime-local` não tem onde dizer isso sozinho.
|
|
@@ -1025,6 +1025,14 @@ volta ao padrão.
|
|
|
1025
1025
|
`cookie_secure=False`, ciente de que a sessão vai sem `Secure`. Não amarre
|
|
1026
1026
|
esse flag ao `DEBUG` — ligar debug em produção é pior que o problema original.
|
|
1027
1027
|
|
|
1028
|
+
!!! warning "O browser diz que o formulário de login não é seguro? É o scheme atrás do proxy"
|
|
1029
|
+
Com HTTPS na frente e o proxy falando HTTP com a app, o `action` do
|
|
1030
|
+
formulário sai `http://...` e o browser marca o campo de senha como não
|
|
1031
|
+
seguro. Declare `SERVER_PUBLIC_SCHEME=https` e adicione o
|
|
1032
|
+
`PublicSchemeMiddleware` — receita em
|
|
1033
|
+
[Segurança](security.md#scheme-publico-atras-de-proxy-server_public_scheme).
|
|
1034
|
+
Enquanto falta, o `GET /admin/login` loga um `WARNING` dizendo isso.
|
|
1035
|
+
|
|
1028
1036
|
##### Logar em teste
|
|
1029
1037
|
|
|
1030
1038
|
Como o `POST /admin/login` exige o token do formulário, teste que posta só as credenciais leva `403`. `tempest_fastapi_sdk.testing` faz o que o navegador faz — abre o formulário, lê o hidden (o cookie fica no jar do cliente) e envia:
|
|
@@ -1387,13 +1395,13 @@ from tempest_fastapi_sdk import AdminSite, AdminTheme
|
|
|
1387
1395
|
theme: AdminTheme = AdminTheme(
|
|
1388
1396
|
accent="#7c3aed", # cor primária (links, botões, item ativo)
|
|
1389
1397
|
accent_hover="#6d28d9", # tom de hover do accent
|
|
1390
|
-
header_bg="#1e1b4b", # fundo do header/sidebar
|
|
1398
|
+
header_bg="#1e1b4b", # fundo do header/sidebar (texto fica claro sozinho)
|
|
1391
1399
|
radius="10px", # raio de botões, inputs, cards, tabelas
|
|
1392
1400
|
font_family="'Inter', system-ui, sans-serif",
|
|
1393
1401
|
logo_url="/admin/static/logo.svg", # imagem no header (no lugar do texto)
|
|
1394
1402
|
favicon_url="/admin/static/favicon.ico",
|
|
1395
1403
|
footer_text="Servus | 2026",
|
|
1396
|
-
dark_mode=False, # superfícies
|
|
1404
|
+
dark_mode=False, # superfícies escuras
|
|
1397
1405
|
)
|
|
1398
1406
|
|
|
1399
1407
|
site: AdminSite = AdminSite(title="Servus Admin", brand="Servus", theme=theme)
|
|
@@ -1412,23 +1420,34 @@ site: AdminSite = AdminSite(title="Servus Admin", brand="Servus", theme=theme)
|
|
|
1412
1420
|
| `accent` | `str` | `"#2563eb"` | Cor primária: links, botões, item ativo da sidebar |
|
|
1413
1421
|
| `accent_hover` | `str` | `"#1d4ed8"` | Tom de hover/ativo do `accent` |
|
|
1414
1422
|
| `danger` | `str` | `"#b91c1c"` | Ações destrutivas e mensagens de erro |
|
|
1415
|
-
| `header_bg` | `str` | `"#
|
|
1423
|
+
| `header_bg` | `str` | `"#ffffff"` | Fundo do header |
|
|
1416
1424
|
| `sidebar_bg` | ``str | None`` | `None` | Fundo da sidebar (cai pra `header_bg`) |
|
|
1425
|
+
| `header_fg` | ``str | None`` | `None` | Cor do texto do header e da sidebar (`None` escolhe pelo contraste do fundo) |
|
|
1417
1426
|
| `page_bg` | ``str | None`` | `None` | Fundo do conteúdo (padrão do modo) |
|
|
1418
|
-
| `radius` | `str` | `"
|
|
1427
|
+
| `radius` | `str` | `"8px"` | Raio de botões, inputs, cards, tabelas |
|
|
1419
1428
|
| `font_family` | ``str | None`` | `None` | `font-family` do painel inteiro |
|
|
1420
1429
|
| `logo_url` | ``str | None`` | `None` | Imagem no header em vez do texto |
|
|
1421
1430
|
| `logo_alt` | `str` | `"Logo"` | `alt` da imagem do logo |
|
|
1422
1431
|
| `favicon_url` | ``str | None`` | `None` | Favicon da aba |
|
|
1423
1432
|
| `footer_text` | `str` | `"Powered by tempest-fastapi-sdk"` | Texto do rodapé |
|
|
1424
|
-
| `dark_mode` | `bool` | `False` | Superfícies
|
|
1433
|
+
| `dark_mode` | `bool` | `False` | Superfícies escuras (e o chrome, se `header_bg` for o padrão) |
|
|
1425
1434
|
| `custom_css_url` | ``str | None`` | `None` | Folha de estilo extra, linkada por último |
|
|
1426
1435
|
|
|
1427
1436
|
!!! info "Modo escuro"
|
|
1428
1437
|
`dark_mode=True` troca as **superfícies de conteúdo** (fundo da página,
|
|
1429
|
-
texto, linhas da tabela, inputs, bordas) para uma paleta escura.
|
|
1430
|
-
header
|
|
1431
|
-
|
|
1438
|
+
cards, texto, linhas da tabela, inputs, bordas) para uma paleta escura.
|
|
1439
|
+
O header e a sidebar escurecem junto enquanto `header_bg` for o padrão
|
|
1440
|
+
claro; um `header_bg` seu é mantido. `accent` e as outras cores
|
|
1441
|
+
continuam valendo. Um `page_bg` explícito vence o modo escuro do
|
|
1442
|
+
conteúdo (as superfícies ficam claras), mas o chrome padrão escurece
|
|
1443
|
+
mesmo assim.
|
|
1444
|
+
|
|
1445
|
+
!!! info "Texto do header escolhido pelo fundo"
|
|
1446
|
+
O header e a sidebar são claros por padrão. Com um `header_bg` (ou
|
|
1447
|
+
`sidebar_bg`) em hex escuro, o texto deles passa para claro sozinho —
|
|
1448
|
+
a SDK calcula a luminância do fundo. Cor que não é hex
|
|
1449
|
+
(`"rebeccapurple"`, `rgb(...)`) é tratada como escura; se o palpite
|
|
1450
|
+
errar, fixe a cor com `header_fg`.
|
|
1432
1451
|
|
|
1433
1452
|
!!! warning "Escape hatch para o resto"
|
|
1434
1453
|
Para o que os campos não cobrem, aponte `custom_css_url` para a sua
|
|
@@ -2736,7 +2736,7 @@ get_current_user_or_none = auth_service.current_user_dependency(soft=True)
|
|
|
2736
2736
|
The dependency tries **header → cookie → query string** and stops at the first hit, so the single line above serves both bearer clients and cookie clients.
|
|
2737
2737
|
|
|
2738
2738
|
- **Cookie — automatic.** With `AUTH_TOKEN_DELIVERY` set to `"cookie"` or `"both"`, `cookie_name` is **auto-derived** from `AUTH_ACCESS_COOKIE_NAME` — the same cookie the bundled `/auth/login` set. Zero extra wiring: a route guarded by this dependency already accepts that cookie. A bearer-only delivery mode leaves it `None` (header only). Pass `cookie_name="..."` to force a name.
|
|
2739
|
-
- **Query string — opt-in.** Never auto-derived. It exists for clients that can send neither a header **nor** a cookie
|
|
2739
|
+
- **Query string — opt-in.** Never auto-derived. It exists for clients that can send neither a header **nor** a cookie. For **SSE**, don't turn this on by hand: `auth_service.sse_router(broker)` trades the session for a stream ticket that is valid on no other route. Raw `query_param` is for the rest:
|
|
2740
2740
|
|
|
2741
2741
|
```python
|
|
2742
2742
|
# src/api/dependencies/auth.py
|
|
@@ -2748,7 +2748,7 @@ get_current_user_or_none = auth_service.current_user_dependency(soft=True)
|
|
|
2748
2748
|
)
|
|
2749
2749
|
```
|
|
2750
2750
|
|
|
2751
|
-
Full SSE walkthrough in the [SSE recipe »](sse.md#authentication
|
|
2751
|
+
Full SSE walkthrough in the [SSE recipe »](sse.md#authentication).
|
|
2752
2752
|
|
|
2753
2753
|
!!! warning "A token in the URL leaks"
|
|
2754
2754
|
Query strings land in access logs, browser history and the `Referer` header. Enable `query_param` only over TLS, only with a **short-lived access token** (never a refresh token), and scrub the value from your log format. When the client shares the API's origin, prefer a session cookie (`withCredentials`).
|
|
@@ -2708,7 +2708,7 @@ get_current_user_or_none = auth_service.current_user_dependency(soft=True)
|
|
|
2708
2708
|
A dependency tenta **header → cookie → query string** e para no primeiro hit, então a mesma linha acima serve cliente bearer e cliente cookie.
|
|
2709
2709
|
|
|
2710
2710
|
- **Cookie — automático.** Com `AUTH_TOKEN_DELIVERY` em `"cookie"` ou `"both"`, o `cookie_name` é **auto-derivado** de `AUTH_ACCESS_COOKIE_NAME`, o mesmo cookie que o `/auth/login` bundled setou. Zero wiring extra: rota guardada por essa dependency já aceita o cookie. Em delivery bearer-only fica `None` (só header). Passe `cookie_name="..."` pra forçar um nome.
|
|
2711
|
-
- **Query string — opt-in.** Nunca é auto-derivada. Serve pra cliente que não consegue mandar header **nem** cookie
|
|
2711
|
+
- **Query string — opt-in.** Nunca é auto-derivada. Serve pra cliente que não consegue mandar header **nem** cookie. Para **SSE**, não ligue isto na mão: o `auth_service.sse_router(broker)` troca a sessão por um ticket de stream que não vale em nenhuma outra rota. O `query_param` cru fica para o resto:
|
|
2712
2712
|
|
|
2713
2713
|
```python
|
|
2714
2714
|
# src/api/dependencies/auth.py
|
|
@@ -2720,7 +2720,7 @@ get_current_user_or_none = auth_service.current_user_dependency(soft=True)
|
|
|
2720
2720
|
)
|
|
2721
2721
|
```
|
|
2722
2722
|
|
|
2723
|
-
Detalhe do fluxo SSE na [receita SSE »](sse.md#autenticacao
|
|
2723
|
+
Detalhe do fluxo SSE na [receita SSE »](sse.md#autenticacao).
|
|
2724
2724
|
|
|
2725
2725
|
!!! warning "Token na URL vaza"
|
|
2726
2726
|
Query string entra em log de acesso, histórico do browser e header `Referer`. Habilite `query_param` só sobre TLS, só com **access token de vida curta** (nunca refresh token), e limpe o valor do formato de log. Se o cliente compartilha a origem da API, prefira cookie de sessão (`withCredentials`).
|