tempest-fastapi-sdk 0.167.0__tar.gz → 0.167.1__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.167.0 → tempest_fastapi_sdk-0.167.1}/CHANGELOG.md +29 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/PKG-INFO +1 -1
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/architecture.en.md +25 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/architecture.md +25 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/pyproject.toml +1 -1
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/__init__.py +1 -1
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/controllers/base.py +7 -1
- tempest_fastapi_sdk-0.167.1/tests/controllers/test_generic_bounds.py +121 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/uv.lock +1 -1
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/.github/workflows/ci.yml +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/.github/workflows/docs.yml +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/.github/workflows/nightly-model.yml +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/.github/workflows/release-pypi.yml +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/.gitignore +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/.python-version +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/CLAUDE.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/Makefile +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/README.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/admin-showcase.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/admin-showcase.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/changelog.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/changelog.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/contributing.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/contributing.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/fullstack-web.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/fullstack-web.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/genai-examples.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/genai-examples.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/index.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/index.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/installation.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/installation.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/integrated.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/integrated.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/learning/index.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/learning/index.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/learning/marketplace/api.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/learning/marketplace/api.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/learning/marketplace/business-rules.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/learning/marketplace/business-rules.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/learning/marketplace/domain.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/learning/marketplace/domain.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/learning/marketplace/flows.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/learning/marketplace/flows.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/learning/marketplace/index.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/learning/marketplace/index.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/marketplace-local.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/marketplace-local.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/migration.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/migration.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/admin.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/admin.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/artifact-registry.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/artifact-registry.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/audit-trail.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/audit-trail.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/auth-flow.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/auth-flow.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/authz.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/authz.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/br-helpers.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/br-helpers.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/cache.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/cache.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/chat.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/chat.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/cli.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/cli.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/database.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/database.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/deploy-safety.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/deploy-safety.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/downloads.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/downloads.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/email.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/email.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/feature-flags.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/feature-flags.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/fields.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/fields.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/file-store.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/file-store.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/genai.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/genai.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/geo.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/geo.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/http-client.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/http-client.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/http.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/http.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/idempotency.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/idempotency.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/index.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/index.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/introspection-auth.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/introspection-auth.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/logging.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/logging.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/management-commands.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/management-commands.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/metrics.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/metrics.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/mfa.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/mfa.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/multi-tenant.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/multi-tenant.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/observability.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/observability.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/offline-sync.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/offline-sync.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/openapi-client.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/openapi-client.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/openapi-errors.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/openapi-errors.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/outbox.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/outbox.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/permission-guards.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/permission-guards.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/queue-tasks.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/queue-tasks.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/react-spa.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/react-spa.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/realtime.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/realtime.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/refresh-tokens.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/refresh-tokens.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/reviews.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/reviews.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/security.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/security.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/sessions.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/sessions.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/sse.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/sse.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/storage.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/storage.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/stored-files.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/stored-files.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/system-checks.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/system-checks.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/tempestweb-frontend.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/tempestweb-frontend.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/testing.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/testing.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/typing.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/typing.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/uploads.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/uploads.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/utilities.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/utilities.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/vision.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/vision.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/webpush.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/webpush.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/websocket.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/websocket.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/reference.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/reference.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/roadmap.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/roadmap.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/ssr.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/ssr.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/tour.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/tour.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/tutorial.en.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/tutorial.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/mkdocs.yml +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/mkdocs_hooks/llmstxt.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/planning/genai/README.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/planning/genai/manual-validation.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/planning/genai/phase-0.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/planning/genai/phase-1.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/planning/genai/phase-2.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/planning/genai/phase-3.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/planning/genai/validation-strategy.md +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/scripts/extract_recipe.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/admin/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/admin/actions.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/admin/auth.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/admin/config.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/admin/dashboard.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/admin/discovery.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/admin/forms.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/admin/permissions.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/admin/router.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/admin/session.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/admin/site.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/admin/static/admin.css +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/admin/templates/autocomplete.html +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/admin/templates/base.html +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/admin/templates/dashboard.html +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/admin/templates/detail.html +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/admin/templates/form.html +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/admin/templates/import.html +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/admin/templates/list.html +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/admin/templates/login.html +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/admin/templates/logs.html +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/admin/templates/mfa.html +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/admin/theme.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/api/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/api/cookies.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/api/dependencies/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/api/dependencies/auth.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/api/error_docs.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/api/handlers.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/api/middlewares/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/api/middlewares/body_size.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/api/middlewares/cors.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/api/middlewares/csrf.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/api/middlewares/graceful.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/api/middlewares/idempotency.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/api/middlewares/rate_limit.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/api/middlewares/request_id.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/api/middlewares/response_cache.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/api/oauth.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/api/routers/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/api/routers/health.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/api/routers/logs.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/api/routers/metrics.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/api/routers/tool_spec.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/api/server.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/api/spa.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/api/static.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/api/tracing.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/api/webhooks.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/artifacts/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/artifacts/actions.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/artifacts/digest.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/artifacts/model.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/artifacts/registry.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/auth/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/auth/guards.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/auth/introspection.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/auth/locale.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/auth/page_renderer.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/auth/router.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/auth/schemas.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/auth/service.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/auth/templates/en-US/activation.html +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/auth/templates/en-US/activation_error.html +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/auth/templates/en-US/activation_success.html +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/auth/templates/en-US/email_change.html +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/auth/templates/en-US/email_change_error.html +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/auth/templates/en-US/email_change_success.html +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/auth/templates/en-US/email_changed_notice.html +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/auth/templates/en-US/email_verification.html +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/auth/templates/en-US/email_verification_error.html +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/auth/templates/en-US/email_verification_success.html +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/auth/templates/en-US/password_reset.html +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/auth/templates/en-US/password_reset_error.html +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/auth/templates/en-US/password_reset_form.html +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/auth/templates/en-US/password_reset_success.html +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/auth/templates/pt-BR/activation.html +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/auth/templates/pt-BR/activation_error.html +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/auth/templates/pt-BR/activation_success.html +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/auth/templates/pt-BR/email_change.html +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/auth/templates/pt-BR/email_change_error.html +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/auth/templates/pt-BR/email_change_success.html +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/auth/templates/pt-BR/email_changed_notice.html +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/auth/templates/pt-BR/email_verification.html +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/auth/templates/pt-BR/email_verification_error.html +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/auth/templates/pt-BR/email_verification_success.html +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/auth/templates/pt-BR/password_reset.html +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/auth/templates/pt-BR/password_reset_error.html +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/auth/templates/pt-BR/password_reset_form.html +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/auth/templates/pt-BR/password_reset_success.html +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/auth/token_delivery.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/authz/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/authz/dependencies.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/authz/permissions.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/authz/requires.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cache/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cache/decorator.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cache/invalidation.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cache/redis_manager.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/chat/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/chat/models.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/chat/router.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/chat/schemas.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/chat/service.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/checks/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/checks/builtins.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/checks/messages.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/checks/registry.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/_templates/Dockerfile.tmpl +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/_templates/README.md.tmpl +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/_templates/dockerignore.tmpl +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/_templates/env.example.tmpl +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/_templates/gitignore.tmpl +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/_templates/main.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/_templates/pyproject.toml.tmpl +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/_templates/src/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/_templates/src/api/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/_templates/src/api/app.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/_templates/src/api/dependencies/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/_templates/src/api/dependencies/auth.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/_templates/src/api/dependencies/resources.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/_templates/src/api/routers/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/_templates/src/controllers/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/_templates/src/core/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/_templates/src/core/exceptions.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/_templates/src/core/settings.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/_templates/src/db/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/_templates/src/db/models/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/_templates/src/db/models/user.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/_templates/src/db/repositories/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/_templates/src/schemas/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/_templates/src/server.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/_templates/src/services/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/_templates/src/utils/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/_templates/tests/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/_templates/tests/test_smoke.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/commands.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/config.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/db.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/docker_compose.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/generate.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/lint.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/main.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/new.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/openapi_errors.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/openapi_fix.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/permissions.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/secrets.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/src_layers.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/cli/user.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/controllers/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/core/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/core/context.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/core/enums.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/core/logging.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/core/typed.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/db/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/db/_alembic_templates/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/db/_alembic_templates/env.py.template +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/db/alembic_hooks.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/db/audit.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/db/backup.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/db/connection.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/db/expressions.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/db/migrations.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/db/mixins.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/db/model.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/db/outbox.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/db/repository.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/db/signals.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/db/slow_query.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/db/tenant.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/db/user_model.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/db/user_recovery_code_model.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/db/user_refresh_token_model.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/db/user_token_model.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/db/webpush_subscription_model.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/exceptions/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/exceptions/base.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/exceptions/conflict.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/exceptions/forbidden.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/exceptions/i18n.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/exceptions/jwt.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/exceptions/not_found.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/exceptions/too_many_requests.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/exceptions/unauthorized.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/exceptions/upload.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/exceptions/validation.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/flags/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/flags/backends.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/flags/dependencies.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/flags/service.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/genai/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/genai/audio/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/genai/audio/language.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/genai/audio/schemas.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/genai/audio/stt.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/genai/audio/tts.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/genai/batching.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/genai/embeddings.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/genai/generation_cache.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/genai/hardware.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/genai/metrics.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/genai/moderation.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/genai/ollama.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/genai/onnx_embed.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/genai/pipeline.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/genai/rag/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/genai/rag/chroma.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/genai/rag/chunking.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/genai/rag/context.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/genai/rag/extract.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/genai/rag/fusion.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/genai/rag/hybrid.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/genai/rag/pdf.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/genai/rag/rerank.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/genai/rag/retriever.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/genai/rag/schemas.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/genai/rag/search.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/genai/rag/vectorstore.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/genai/registry.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/genai/router.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/genai/schemas.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/genai/structured.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/genai/text.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/genai/tokens.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/genai/tracing.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/genai/vision_text.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/geo/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/geo/br.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/geo/db.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/geo/distance.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/geo/enums.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/geo/estimate.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/geo/geocoding.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/geo/geometry.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/geo/polyline.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/geo/routing.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/geo/schemas.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/openapi/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/openapi/emit_client.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/openapi/emit_schemas.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/openapi/generate.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/openapi/ir.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/openapi/loader.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/openapi/naming.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/openapi/parse.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/py.typed +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/queue/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/queue/broker.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/queue/consumer.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/queue/manager.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/reviews/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/reviews/models.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/reviews/router.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/reviews/schemas.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/reviews/service.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/schemas/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/schemas/base.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/schemas/errors.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/schemas/link_headers.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/schemas/logs.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/schemas/pagination.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/schemas/response.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/services/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/services/base.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/services/file_mixin.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/sessions/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/sessions/dependencies.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/sessions/middleware.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/sessions/router.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/sessions/schemas.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/sessions/service.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/sessions/store.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/settings/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/settings/base.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/settings/mixins.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/sse/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/sse/broker.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/sse/event_stream.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/ssr/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/ssr/_static/htmx.min.js +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/ssr/assets.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/ssr/attributes.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/ssr/page.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/ssr/response.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/ssr/webapp.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/storage/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/storage/minio_client.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/tasks/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/tasks/cron.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/tasks/dead_letter.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/tasks/manager.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/tasks/observability.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/tasks/oop.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/tasks/queue.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/tasks/scheduler.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/testing/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/testing/database.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/testing/factories.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/utils/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/utils/client_ip.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/utils/data/br_locations.json +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/utils/datetime.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/utils/dict.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/utils/download.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/utils/email.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/utils/fields.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/utils/file_store.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/utils/http_client.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/utils/jwt.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/utils/locations.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/utils/log.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/utils/metrics.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/utils/opaque_token.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/utils/password.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/utils/regex.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/utils/storage_backends.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/utils/throttle.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/utils/totp.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/utils/upload.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/vision/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/vision/mapping.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/vision/router.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/vision/schemas.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/webpush/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/webpush/dispatcher.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/webpush/router.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/webpush/schemas.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/webpush/service.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/websockets/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/websockets/hub.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/websockets/router.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/websockets/schemas.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/admin/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/admin/test_actions.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/admin/test_audit_viewer.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/admin/test_auth.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/admin/test_autocomplete_fk.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/admin/test_csv_import.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/admin/test_dashboard_cards.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/admin/test_discovery.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/admin/test_forms.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/admin/test_inlines.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/admin/test_lenses.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/admin/test_logs_nav.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/admin/test_mfa.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/admin/test_rbac.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/admin/test_rich_filters.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/admin/test_router.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/admin/test_site.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/admin/test_theme.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/admin/test_upload_field.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/admin/test_user_model.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/admin/test_widgets_json_time.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/api/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/api/test_body_size.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/api/test_business_metrics.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/api/test_cookies.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/api/test_cors.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/api/test_csrf.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/api/test_dependencies_auth.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/api/test_error_docs.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/api/test_graceful.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/api/test_handlers.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/api/test_health_router.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/api/test_idempotency.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/api/test_jwt_dependency.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/api/test_logs_router.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/api/test_oauth.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/api/test_outbound_webhooks.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/api/test_prometheus.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/api/test_rate_limit.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/api/test_rate_limit_extras.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/api/test_request_id_middleware.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/api/test_response_cache.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/api/test_role_dependency.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/api/test_server.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/api/test_spa.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/api/test_static.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/api/test_tool_spec.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/api/test_tracing.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/api/test_webhooks.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/api/test_webhooks_rsa.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/artifacts/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/artifacts/support.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/artifacts/test_actions.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/artifacts/test_digest.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/artifacts/test_registry.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/auth/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/auth/test_cookie_delivery.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/auth/test_email_change.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/auth/test_guards.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/auth/test_introspection.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/auth/test_locale.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/auth/test_mfa.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/auth/test_refresh.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/auth/test_refresh_db.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/auth/test_service.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/authz/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/authz/test_dependencies.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/authz/test_permissions.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/authz/test_requires.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/cache/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/cache/test_decorator.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/cache/test_invalidation.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/cache/test_redis_manager.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/chat/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/chat/test_chat.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/checks/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/checks/test_check_config_cli.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/checks/test_checks.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/cli/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/cli/test_config.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/cli/test_db.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/cli/test_db_seed.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/cli/test_docker_compose.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/cli/test_dockerfile_spa.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/cli/test_generate.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/cli/test_lint_strictness.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/cli/test_main.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/cli/test_management_commands.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/cli/test_openapi_errors.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/cli/test_openapi_fix.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/cli/test_permissions.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/cli/test_secrets.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/cli/test_user.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/conftest.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/controllers/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/controllers/test_base.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/core/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/core/test_context.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/core/test_enums.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/core/test_logging.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/core/test_typed.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/db/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/db/test_alembic_hooks.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/db/test_audit.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/db/test_backup.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/db/test_bulk_ops.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/db/test_connection.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/db/test_eager_load.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/db/test_expressions.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/db/test_migrations.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/db/test_mixins.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/db/test_model.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/db/test_outbox.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/db/test_repository.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/db/test_safe_upgrade.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/db/test_signals.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/db/test_slow_query.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/db/test_tenant.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/exceptions/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/exceptions/test_exceptions.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/exceptions/test_i18n.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/exceptions/test_inherited_code_warning.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/flags/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/flags/test_flags.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/genai/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/genai/_eval/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/genai/_eval/corpus.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/genai/audio/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/genai/audio/test_audio.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/genai/audio/test_language.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/genai/conftest.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/genai/test_batching.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/genai/test_chat_memory.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/genai/test_embedding_cache_redis.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/genai/test_embeddings.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/genai/test_eval_harness.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/genai/test_genai_metrics.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/genai/test_generation_cache.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/genai/test_generation_config.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/genai/test_gpu_validation.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/genai/test_hardware.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/genai/test_hybrid.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/genai/test_moderation.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/genai/test_ollama.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/genai/test_onnx_embed.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/genai/test_pipeline.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/genai/test_pipeline_integration.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/genai/test_rag.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/genai/test_refinements.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/genai/test_rerank.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/genai/test_router.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/genai/test_structured.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/genai/test_text.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/genai/test_textgen_embed_metrics.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/genai/test_tokens.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/genai/test_tracing.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/genai/test_vectorstore.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/genai/test_vision_text.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/geo/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/geo/test_br.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/geo/test_db.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/geo/test_distance.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/geo/test_estimate.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/geo/test_geocoding.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/geo/test_geometry.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/geo/test_polyline.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/geo/test_routing.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/geo/test_routing_extra.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/openapi/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/openapi/conftest.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/openapi/test_generate.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/openapi/test_loader.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/openapi/test_naming.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/openapi/test_parse.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/queue/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/queue/test_broker.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/queue/test_consumer.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/queue/test_manager.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/reviews/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/reviews/test_reviews.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/schemas/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/schemas/test_base.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/schemas/test_cursor_pagination.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/schemas/test_errors.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/schemas/test_link_headers.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/schemas/test_pagination.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/schemas/test_response.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/services/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/services/test_base.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/services/test_file_mixin.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/sessions/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/sessions/test_sessions.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/settings/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/settings/test_base.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/settings/test_mixins.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/sse/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/sse/test_broker.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/sse/test_event_stream.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/ssr/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/ssr/test_attributes.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/ssr/test_integration.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/ssr/test_page.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/ssr/test_response.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/ssr/test_webapp.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/storage/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/storage/test_minio_client.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/tasks/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/tasks/test_cron.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/tasks/test_dead_letter.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/tasks/test_manager.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/tasks/test_observability.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/tasks/test_oop.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/tasks/test_queue.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/tasks/test_scheduler.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/test_docs_api_guard.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/test_llmstxt.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/test_reference_coverage.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/testing/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/testing/test_database.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/testing/test_factories.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/utils/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/utils/test_client_ip.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/utils/test_datetime.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/utils/test_dict.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/utils/test_download.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/utils/test_email.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/utils/test_fields.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/utils/test_file_store.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/utils/test_http_client.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/utils/test_jwt.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/utils/test_lazy_extras.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/utils/test_locations.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/utils/test_log.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/utils/test_metrics.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/utils/test_opaque_token.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/utils/test_password.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/utils/test_regex.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/utils/test_storage_backends.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/utils/test_throttle.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/utils/test_upload.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/vision/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/vision/test_router.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/vision/test_vision.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/webpush/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/webpush/test_dispatcher.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/webpush/test_router.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/webpush/test_schemas.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/webpush/test_service.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/websockets/__init__.py +0 -0
- {tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tests/websockets/test_hub_and_router.py +0 -0
|
@@ -5,6 +5,35 @@ All notable changes to **tempest-fastapi-sdk** are listed below.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.167.1] — 2026-07-26
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- **`BaseController` now accepts services typed over a concrete update
|
|
13
|
+
schema.** `ServiceT`'s bound was written `BaseService[Any, Any]`, which is not
|
|
14
|
+
a partial application: PEP 696 fills the omitted `UpdateT` with its
|
|
15
|
+
`BaseSchema` default, and since that parameter is invariant the bound admitted
|
|
16
|
+
only services whose update schema was exactly `BaseSchema`. Every service
|
|
17
|
+
written the documented way — `BaseService[Repo, Resp, MyUpdateSchema]` — was
|
|
18
|
+
rejected by the type checker with `Type parameter "UpdateT@BaseService" is
|
|
19
|
+
invariant, but "MyUpdateSchema" is not the same as "BaseSchema"`, forcing a
|
|
20
|
+
`# type: ignore[type-var]` on the controller declaration. The bound is now
|
|
21
|
+
`BaseService[Any, Any, Any]`, which leaves the invariant parameter open while
|
|
22
|
+
keeping the `BaseSchema` constraint. Type-check only — runtime behavior is
|
|
23
|
+
unchanged, and the `# type: ignore[type-var]` workarounds can be dropped.
|
|
24
|
+
- **The suite can now see this class of bug.** `mypy` runs over the package, not
|
|
25
|
+
over `tests/`, so `tests/controllers/test_base.py` already declared exactly
|
|
26
|
+
this service/controller pair and stayed green. New
|
|
27
|
+
`tests/controllers/test_generic_bounds.py` inspects `ServiceT.__bound__`
|
|
28
|
+
directly and runs `mypy --strict` over a downstream-shaped snippet, asserting
|
|
29
|
+
no `[type-var]` diagnostic.
|
|
30
|
+
|
|
31
|
+
### Documentation
|
|
32
|
+
|
|
33
|
+
- `docs/architecture.md` / `docs/architecture.en.md` — the controllers & services
|
|
34
|
+
section now shows the 3rd generic parameter on both layers and notes that the
|
|
35
|
+
pair requires 0.167.1+.
|
|
36
|
+
|
|
8
37
|
## [0.167.0] — 2026-07-26
|
|
9
38
|
|
|
10
39
|
Permission guards: a decorator that runs plain `(user) -> user | None`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tempest-fastapi-sdk
|
|
3
|
-
Version: 0.167.
|
|
3
|
+
Version: 0.167.1
|
|
4
4
|
Summary: Shared FastAPI building blocks: base schemas, ORM model, async repository, exceptions, pagination and settings — the conventions used across Tempest projects.
|
|
5
5
|
Project-URL: Homepage, https://github.com/mauriciobenjamin700/tempest-fastapi-sdk
|
|
6
6
|
Project-URL: Repository, https://github.com/mauriciobenjamin700/tempest-fastapi-sdk
|
|
@@ -163,6 +163,31 @@ What you inherit by subclassing `BaseController[ServiceT, ResponseT]`:
|
|
|
163
163
|
| `update(id, data)` | `service.update` | Same. |
|
|
164
164
|
| `delete(id)` | `service.delete` | Same. |
|
|
165
165
|
|
|
166
|
+
!!! tip "Typing the `update` payload end to end"
|
|
167
|
+
The 3rd generic parameter is the update schema, and it must be the **same** on both layers: a service declared as `BaseService[Repo, Resp, MyUpdateSchema]` fits `BaseController[MyService, Resp, MyUpdateSchema]`. Omit the 3rd parameter on either one and it falls back to the `BaseSchema` default, leaving `update`'s `data` loosely typed.
|
|
168
|
+
|
|
169
|
+
```python
|
|
170
|
+
from tempest_fastapi_sdk import BaseController, BaseService
|
|
171
|
+
|
|
172
|
+
from src.db.repositories import CoinPackRepository
|
|
173
|
+
from src.schemas import CoinPackResponseSchema, CoinPackUpdateSchema
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
class CoinPackService(
|
|
177
|
+
BaseService[CoinPackRepository, CoinPackResponseSchema, CoinPackUpdateSchema]
|
|
178
|
+
):
|
|
179
|
+
"""Service typed over the concrete update schema."""
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
class CoinPackController(
|
|
183
|
+
BaseController[CoinPackService, CoinPackResponseSchema, CoinPackUpdateSchema]
|
|
184
|
+
):
|
|
185
|
+
"""Controller repeating the same update schema."""
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
!!! warning "Requires 0.167.1+"
|
|
189
|
+
On earlier versions this pair failed type checking with `Type parameter "UpdateT@BaseService" is invariant, but "CoinPackUpdateSchema" is not the same as "BaseSchema"` — `ServiceT`'s bound pinned that invariant parameter to `BaseSchema`. Fixed in 0.167.1; nothing changes at runtime.
|
|
190
|
+
|
|
166
191
|
When a use case needs domain rules, override the inherited method in the service. When a use case needs to coordinate more than one service, override the inherited method (or add a new one) in the controller. The router never grows — it only depends on the controller.
|
|
167
192
|
|
|
168
193
|
```python
|
|
@@ -163,6 +163,31 @@ O que você herda ao subclassear `BaseController[ServiceT, ResponseT]`:
|
|
|
163
163
|
| `update(id, data)` | `service.update` | Igual. |
|
|
164
164
|
| `delete(id)` | `service.delete` | Igual. |
|
|
165
165
|
|
|
166
|
+
!!! tip "Tipando o payload de `update` ponta a ponta"
|
|
167
|
+
O 3º parâmetro genérico é o schema de update, e ele precisa ser o **mesmo** nas duas camadas: um service declarado como `BaseService[Repo, Resp, MeuUpdateSchema]` encaixa em `BaseController[MeuService, Resp, MeuUpdateSchema]`. Omitir o 3º parâmetro em qualquer uma delas cai no default `BaseSchema`, e o `data` de `update` chega sem tipo preciso.
|
|
168
|
+
|
|
169
|
+
```python
|
|
170
|
+
from tempest_fastapi_sdk import BaseController, BaseService
|
|
171
|
+
|
|
172
|
+
from src.db.repositories import CoinPackRepository
|
|
173
|
+
from src.schemas import CoinPackResponseSchema, CoinPackUpdateSchema
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
class CoinPackService(
|
|
177
|
+
BaseService[CoinPackRepository, CoinPackResponseSchema, CoinPackUpdateSchema]
|
|
178
|
+
):
|
|
179
|
+
"""Service tipado sobre o schema de update concreto."""
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
class CoinPackController(
|
|
183
|
+
BaseController[CoinPackService, CoinPackResponseSchema, CoinPackUpdateSchema]
|
|
184
|
+
):
|
|
185
|
+
"""Controller que repete o mesmo schema de update."""
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
!!! warning "Requer 0.167.1+"
|
|
189
|
+
Em versões anteriores esse par falhava no type check com `Type parameter "UpdateT@BaseService" is invariant, but "CoinPackUpdateSchema" is not the same as "BaseSchema"` — o bound de `ServiceT` deixava o parâmetro invariante fixado em `BaseSchema`. Corrigido em 0.167.1; nada muda em runtime.
|
|
190
|
+
|
|
166
191
|
Quando um caso de uso precisa de regras de domínio, sobrescreva o método herdado no service. Quando um caso de uso precisa coordenar mais de um service, sobrescreva o método herdado (ou adicione um novo) no controller. O router nunca cresce — ele só depende do controller.
|
|
167
192
|
|
|
168
193
|
```python
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "tempest-fastapi-sdk"
|
|
3
|
-
version = "0.167.
|
|
3
|
+
version = "0.167.1"
|
|
4
4
|
description = "Shared FastAPI building blocks: base schemas, ORM model, async repository, exceptions, pagination and settings — the conventions used across Tempest projects."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.11"
|
{tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/tempest_fastapi_sdk/controllers/base.py
RENAMED
|
@@ -10,7 +10,13 @@ from typing_extensions import TypeVar
|
|
|
10
10
|
from tempest_fastapi_sdk.schemas.base import BaseSchema
|
|
11
11
|
from tempest_fastapi_sdk.services.base import BaseService
|
|
12
12
|
|
|
13
|
-
ServiceT = TypeVar("ServiceT", bound=BaseService[Any, Any])
|
|
13
|
+
ServiceT = TypeVar("ServiceT", bound=BaseService[Any, Any, Any])
|
|
14
|
+
"""Concrete service class the controller delegates to. The bound spells all
|
|
15
|
+
three of :class:`BaseService`'s parameters as ``Any``: ``BaseService[Any, Any]``
|
|
16
|
+
is not a partial application — PEP 696 fills the omitted ``UpdateT`` with its
|
|
17
|
+
default (:class:`BaseSchema`), and because ``UpdateT`` is invariant that bound
|
|
18
|
+
only admits services whose update schema is exactly ``BaseSchema``. Any service
|
|
19
|
+
declared as ``BaseService[Repo, Resp, MyUpdateSchema]`` would be rejected."""
|
|
14
20
|
ResponseT = TypeVar("ResponseT")
|
|
15
21
|
UpdateT = TypeVar("UpdateT", bound=BaseSchema, default=BaseSchema)
|
|
16
22
|
"""Update-payload schema for :meth:`BaseController.update`. Defaults to
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"""Static-typing regression tests for ``BaseController``'s generic bounds.
|
|
2
|
+
|
|
3
|
+
The bug these guard against is invisible at runtime: ``BaseController`` and
|
|
4
|
+
``BaseService`` both declare their ``UpdateT`` parameter with a PEP 696 default
|
|
5
|
+
of ``BaseSchema``. A bound written as ``BaseService[Any, Any]`` is therefore not
|
|
6
|
+
a partial application — the checker fills ``UpdateT`` with ``BaseSchema``, and
|
|
7
|
+
since that parameter is invariant the bound admits only services whose update
|
|
8
|
+
schema is exactly ``BaseSchema``. Every service declared the documented way,
|
|
9
|
+
``BaseService[Repo, Resp, MyUpdateSchema]``, was rejected with
|
|
10
|
+
``Type parameter "UpdateT@BaseService" is invariant``.
|
|
11
|
+
|
|
12
|
+
Nothing fails at import time, and ``mypy`` only runs over the package (not over
|
|
13
|
+
``tests/``), so the regular suite could not see it. These tests close both gaps:
|
|
14
|
+
one inspects the bound directly, the other runs ``mypy`` over a snippet shaped
|
|
15
|
+
like real downstream code.
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
from __future__ import annotations
|
|
19
|
+
|
|
20
|
+
import sys
|
|
21
|
+
from pathlib import Path
|
|
22
|
+
from typing import Any, get_args
|
|
23
|
+
|
|
24
|
+
import pytest
|
|
25
|
+
|
|
26
|
+
from tempest_fastapi_sdk.controllers.base import ServiceT
|
|
27
|
+
|
|
28
|
+
DOWNSTREAM_SNIPPET = '''\
|
|
29
|
+
"""Downstream service/controller pair with a concrete update schema."""
|
|
30
|
+
|
|
31
|
+
from sqlalchemy import String
|
|
32
|
+
from sqlalchemy.orm import Mapped, mapped_column
|
|
33
|
+
|
|
34
|
+
from tempest_fastapi_sdk import (
|
|
35
|
+
BaseController,
|
|
36
|
+
BaseModel,
|
|
37
|
+
BaseRepository,
|
|
38
|
+
BaseResponseSchema,
|
|
39
|
+
BaseSchema,
|
|
40
|
+
BaseService,
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
class Widget(BaseModel):
|
|
45
|
+
__tablename__ = "widget_typing_snippet"
|
|
46
|
+
|
|
47
|
+
name: Mapped[str] = mapped_column(String(64), nullable=False)
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
class WidgetResponseSchema(BaseResponseSchema):
|
|
51
|
+
name: str
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
class WidgetUpdateSchema(BaseSchema):
|
|
55
|
+
name: str | None = None
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
class WidgetRepository(BaseRepository[Widget]):
|
|
59
|
+
pass
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
class WidgetService(
|
|
63
|
+
BaseService[WidgetRepository, WidgetResponseSchema, WidgetUpdateSchema]
|
|
64
|
+
):
|
|
65
|
+
pass
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
class WidgetController(
|
|
69
|
+
BaseController[WidgetService, WidgetResponseSchema, WidgetUpdateSchema]
|
|
70
|
+
):
|
|
71
|
+
pass
|
|
72
|
+
'''
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
class TestServiceTBound:
|
|
76
|
+
def test_bound_spells_every_service_parameter(self) -> None:
|
|
77
|
+
"""``ServiceT``'s bound must parameterize all three of ``BaseService``.
|
|
78
|
+
|
|
79
|
+
Written as ``BaseService[Any, Any]``, the omitted ``UpdateT`` resolves to
|
|
80
|
+
its ``BaseSchema`` default and pins the bound to that exact schema. The
|
|
81
|
+
third explicit ``Any`` is what keeps the invariant parameter open.
|
|
82
|
+
"""
|
|
83
|
+
bound = ServiceT.__bound__
|
|
84
|
+
assert bound is not None
|
|
85
|
+
assert get_args(bound) == (Any, Any, Any)
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
@pytest.mark.filterwarnings("ignore::DeprecationWarning")
|
|
89
|
+
class TestDownstreamTypeChecks:
|
|
90
|
+
def test_controller_accepts_service_with_concrete_update_schema(
|
|
91
|
+
self, tmp_path: Path
|
|
92
|
+
) -> None:
|
|
93
|
+
"""``mypy`` must accept a controller typed over a concrete update schema.
|
|
94
|
+
|
|
95
|
+
Runs the checker over a snippet written the way the docs tell services to
|
|
96
|
+
be written, then asserts no ``type-var`` diagnostic surfaced. Only that
|
|
97
|
+
error code is asserted on, so unrelated diagnostics from the snippet's
|
|
98
|
+
environment cannot make this test flap.
|
|
99
|
+
"""
|
|
100
|
+
mypy_api = pytest.importorskip(
|
|
101
|
+
"mypy.api", reason="mypy is a dev-group dependency"
|
|
102
|
+
)
|
|
103
|
+
module = tmp_path / "downstream_widget.py"
|
|
104
|
+
module.write_text(DOWNSTREAM_SNIPPET, encoding="utf-8")
|
|
105
|
+
|
|
106
|
+
stdout, stderr, _ = mypy_api.run(
|
|
107
|
+
[
|
|
108
|
+
str(module),
|
|
109
|
+
"--strict",
|
|
110
|
+
"--no-incremental",
|
|
111
|
+
"--no-error-summary",
|
|
112
|
+
"--hide-error-context",
|
|
113
|
+
"--cache-dir",
|
|
114
|
+
str(tmp_path / ".mypy_cache"),
|
|
115
|
+
"--python-executable",
|
|
116
|
+
sys.executable,
|
|
117
|
+
]
|
|
118
|
+
)
|
|
119
|
+
|
|
120
|
+
type_var_errors = [line for line in stdout.splitlines() if "[type-var]" in line]
|
|
121
|
+
assert not type_var_errors, f"{type_var_errors}\n{stderr}"
|
|
File without changes
|
|
File without changes
|
{tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/.github/workflows/nightly-model.yml
RENAMED
|
File without changes
|
{tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/.github/workflows/release-pypi.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/learning/marketplace/api.en.md
RENAMED
|
File without changes
|
{tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/learning/marketplace/api.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/learning/marketplace/domain.en.md
RENAMED
|
File without changes
|
{tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/learning/marketplace/domain.md
RENAMED
|
File without changes
|
{tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/learning/marketplace/flows.en.md
RENAMED
|
File without changes
|
{tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/learning/marketplace/flows.md
RENAMED
|
File without changes
|
{tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/learning/marketplace/index.en.md
RENAMED
|
File without changes
|
{tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/learning/marketplace/index.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/artifact-registry.en.md
RENAMED
|
File without changes
|
{tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/artifact-registry.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/deploy-safety.en.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/feature-flags.en.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/introspection-auth.en.md
RENAMED
|
File without changes
|
{tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/introspection-auth.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/management-commands.en.md
RENAMED
|
File without changes
|
{tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/management-commands.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/observability.en.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/openapi-client.en.md
RENAMED
|
File without changes
|
|
File without changes
|
{tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/openapi-errors.en.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/permission-guards.en.md
RENAMED
|
File without changes
|
{tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/permission-guards.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tempest_fastapi_sdk-0.167.0 → tempest_fastapi_sdk-0.167.1}/docs/recipes/refresh-tokens.en.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|