fastapi 0.138.0__tar.gz → 0.138.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {fastapi-0.138.0 → fastapi-0.138.2}/PKG-INFO +1 -2
- {fastapi-0.138.0 → fastapi-0.138.2}/README.md +0 -1
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/.agents/skills/fastapi/SKILL.md +63 -204
- fastapi-0.138.2/fastapi/.agents/skills/fastapi/references/path-operations.md +93 -0
- fastapi-0.138.2/fastapi/.agents/skills/fastapi/references/pydantic.md +93 -0
- fastapi-0.138.2/fastapi/.agents/skills/fastapi/references/responses.md +79 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/__init__.py +1 -1
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/routing.py +37 -25
- {fastapi-0.138.0 → fastapi-0.138.2}/pyproject.toml +1 -1
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/docs.py +52 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_frontend.py +135 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/LICENSE +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs/en/docs/img/favicon.png +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/additional_responses/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/additional_responses/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/additional_responses/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/additional_responses/tutorial003_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/additional_responses/tutorial004_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/additional_status_codes/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/additional_status_codes/tutorial001_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/additional_status_codes/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/advanced_middleware/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/advanced_middleware/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/advanced_middleware/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/advanced_middleware/tutorial003_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/app_testing/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/app_testing/app_a_py310/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/app_testing/app_a_py310/main.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/app_testing/app_a_py310/test_main.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/app_testing/app_b_an_py310/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/app_testing/app_b_an_py310/main.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/app_testing/app_b_an_py310/test_main.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/app_testing/app_b_py310/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/app_testing/app_b_py310/main.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/app_testing/app_b_py310/test_main.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/app_testing/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/app_testing/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/app_testing/tutorial003_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/app_testing/tutorial004_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/async_tests/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/async_tests/app_a_py310/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/async_tests/app_a_py310/main.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/async_tests/app_a_py310/test_main.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/authentication_error_status_code/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/authentication_error_status_code/tutorial001_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/background_tasks/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/background_tasks/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/background_tasks/tutorial002_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/background_tasks/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/behind_a_proxy/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/behind_a_proxy/tutorial001_01_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/behind_a_proxy/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/behind_a_proxy/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/behind_a_proxy/tutorial003_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/behind_a_proxy/tutorial004_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/bigger_applications/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/bigger_applications/app_an_py310/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/bigger_applications/app_an_py310/dependencies.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/bigger_applications/app_an_py310/internal/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/bigger_applications/app_an_py310/internal/admin.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/bigger_applications/app_an_py310/main.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/bigger_applications/app_an_py310/routers/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/bigger_applications/app_an_py310/routers/items.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/bigger_applications/app_an_py310/routers/users.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/body/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/body/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/body/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/body/tutorial003_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/body/tutorial004_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/body_fields/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/body_fields/tutorial001_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/body_fields/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/body_multiple_params/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/body_multiple_params/tutorial001_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/body_multiple_params/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/body_multiple_params/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/body_multiple_params/tutorial003_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/body_multiple_params/tutorial003_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/body_multiple_params/tutorial004_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/body_multiple_params/tutorial004_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/body_multiple_params/tutorial005_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/body_multiple_params/tutorial005_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/body_nested_models/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/body_nested_models/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/body_nested_models/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/body_nested_models/tutorial003_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/body_nested_models/tutorial004_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/body_nested_models/tutorial005_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/body_nested_models/tutorial006_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/body_nested_models/tutorial007_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/body_nested_models/tutorial008_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/body_nested_models/tutorial009_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/body_updates/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/body_updates/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/body_updates/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/conditional_openapi/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/conditional_openapi/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/configure_swagger_ui/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/configure_swagger_ui/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/configure_swagger_ui/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/configure_swagger_ui/tutorial003_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/cookie_param_models/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/cookie_param_models/tutorial001_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/cookie_param_models/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/cookie_param_models/tutorial002_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/cookie_param_models/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/cookie_params/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/cookie_params/tutorial001_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/cookie_params/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/cors/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/cors/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/custom_docs_ui/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/custom_docs_ui/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/custom_docs_ui/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/custom_request_and_route/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/custom_request_and_route/tutorial001_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/custom_request_and_route/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/custom_request_and_route/tutorial002_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/custom_request_and_route/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/custom_request_and_route/tutorial003_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/custom_response/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/custom_response/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/custom_response/tutorial001b_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/custom_response/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/custom_response/tutorial003_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/custom_response/tutorial004_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/custom_response/tutorial005_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/custom_response/tutorial006_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/custom_response/tutorial006b_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/custom_response/tutorial006c_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/custom_response/tutorial007_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/custom_response/tutorial008_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/custom_response/tutorial009_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/custom_response/tutorial009b_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/custom_response/tutorial009c_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/custom_response/tutorial010_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dataclasses_/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dataclasses_/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dataclasses_/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dataclasses_/tutorial003_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/debugging/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/debugging/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dependencies/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dependencies/tutorial001_02_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dependencies/tutorial001_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dependencies/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dependencies/tutorial002_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dependencies/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dependencies/tutorial003_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dependencies/tutorial003_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dependencies/tutorial004_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dependencies/tutorial004_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dependencies/tutorial005_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dependencies/tutorial005_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dependencies/tutorial006_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dependencies/tutorial006_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dependencies/tutorial007_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dependencies/tutorial008_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dependencies/tutorial008_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dependencies/tutorial008b_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dependencies/tutorial008b_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dependencies/tutorial008c_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dependencies/tutorial008c_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dependencies/tutorial008d_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dependencies/tutorial008d_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dependencies/tutorial008e_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dependencies/tutorial008e_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dependencies/tutorial010_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dependencies/tutorial011_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dependencies/tutorial011_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dependencies/tutorial012_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dependencies/tutorial012_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dependencies/tutorial013_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dependencies/tutorial014_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dependency_testing/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dependency_testing/tutorial001_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/dependency_testing/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/encoder/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/encoder/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/events/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/events/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/events/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/events/tutorial003_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/extending_openapi/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/extending_openapi/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/extra_data_types/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/extra_data_types/tutorial001_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/extra_data_types/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/extra_models/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/extra_models/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/extra_models/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/extra_models/tutorial003_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/extra_models/tutorial004_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/extra_models/tutorial005_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/first_steps/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/first_steps/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/first_steps/tutorial003_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/frontend/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/frontend/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/frontend/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/frontend/tutorial003_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/frontend/tutorial004_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/frontend/tutorial005_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/frontend/tutorial006_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/generate_clients/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/generate_clients/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/generate_clients/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/generate_clients/tutorial003_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/generate_clients/tutorial004.js +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/generate_clients/tutorial004_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/graphql_/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/graphql_/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/handling_errors/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/handling_errors/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/handling_errors/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/handling_errors/tutorial003_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/handling_errors/tutorial004_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/handling_errors/tutorial005_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/handling_errors/tutorial006_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/header_param_models/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/header_param_models/tutorial001_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/header_param_models/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/header_param_models/tutorial002_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/header_param_models/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/header_param_models/tutorial003_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/header_param_models/tutorial003_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/header_params/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/header_params/tutorial001_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/header_params/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/header_params/tutorial002_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/header_params/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/header_params/tutorial003_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/header_params/tutorial003_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/json_base64_bytes/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/json_base64_bytes/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/metadata/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/metadata/tutorial001_1_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/metadata/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/metadata/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/metadata/tutorial003_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/metadata/tutorial004_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/middleware/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/middleware/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/openapi_callbacks/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/openapi_callbacks/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/openapi_webhooks/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/openapi_webhooks/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/path_operation_advanced_configuration/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/path_operation_advanced_configuration/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/path_operation_advanced_configuration/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/path_operation_advanced_configuration/tutorial003_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/path_operation_advanced_configuration/tutorial004_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/path_operation_advanced_configuration/tutorial005_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/path_operation_advanced_configuration/tutorial006_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/path_operation_advanced_configuration/tutorial007_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/path_operation_configuration/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/path_operation_configuration/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/path_operation_configuration/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/path_operation_configuration/tutorial002b_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/path_operation_configuration/tutorial003_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/path_operation_configuration/tutorial004_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/path_operation_configuration/tutorial005_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/path_operation_configuration/tutorial006_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/path_params/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/path_params/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/path_params/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/path_params/tutorial003_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/path_params/tutorial003b_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/path_params/tutorial004_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/path_params/tutorial005_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/path_params_numeric_validations/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/path_params_numeric_validations/tutorial001_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/path_params_numeric_validations/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/path_params_numeric_validations/tutorial002_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/path_params_numeric_validations/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/path_params_numeric_validations/tutorial003_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/path_params_numeric_validations/tutorial003_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/path_params_numeric_validations/tutorial004_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/path_params_numeric_validations/tutorial004_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/path_params_numeric_validations/tutorial005_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/path_params_numeric_validations/tutorial005_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/path_params_numeric_validations/tutorial006_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/path_params_numeric_validations/tutorial006_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/pydantic_v1_in_v2/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/pydantic_v1_in_v2/tutorial001_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/pydantic_v1_in_v2/tutorial002_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/pydantic_v1_in_v2/tutorial003_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/pydantic_v1_in_v2/tutorial004_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/python_types/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/python_types/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/python_types/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/python_types/tutorial003_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/python_types/tutorial004_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/python_types/tutorial005_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/python_types/tutorial006_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/python_types/tutorial007_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/python_types/tutorial008_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/python_types/tutorial008b_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/python_types/tutorial009_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/python_types/tutorial010_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/python_types/tutorial011_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/python_types/tutorial013_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_param_models/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_param_models/tutorial001_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_param_models/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_param_models/tutorial002_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_param_models/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_params/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_params/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_params/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_params/tutorial003_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_params/tutorial004_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_params/tutorial005_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_params/tutorial006_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_params_str_validations/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_params_str_validations/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_params_str_validations/tutorial002_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_params_str_validations/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_params_str_validations/tutorial003_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_params_str_validations/tutorial003_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_params_str_validations/tutorial004_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_params_str_validations/tutorial004_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_params_str_validations/tutorial005_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_params_str_validations/tutorial005_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_params_str_validations/tutorial006_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_params_str_validations/tutorial006_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_params_str_validations/tutorial006c_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_params_str_validations/tutorial006c_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_params_str_validations/tutorial007_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_params_str_validations/tutorial007_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_params_str_validations/tutorial008_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_params_str_validations/tutorial008_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_params_str_validations/tutorial009_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_params_str_validations/tutorial009_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_params_str_validations/tutorial010_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_params_str_validations/tutorial010_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_params_str_validations/tutorial011_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_params_str_validations/tutorial011_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_params_str_validations/tutorial012_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_params_str_validations/tutorial012_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_params_str_validations/tutorial013_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_params_str_validations/tutorial013_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_params_str_validations/tutorial014_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_params_str_validations/tutorial014_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/query_params_str_validations/tutorial015_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/request_files/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/request_files/tutorial001_02_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/request_files/tutorial001_02_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/request_files/tutorial001_03_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/request_files/tutorial001_03_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/request_files/tutorial001_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/request_files/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/request_files/tutorial002_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/request_files/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/request_files/tutorial003_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/request_files/tutorial003_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/request_form_models/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/request_form_models/tutorial001_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/request_form_models/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/request_form_models/tutorial002_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/request_form_models/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/request_forms/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/request_forms/tutorial001_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/request_forms/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/request_forms_and_files/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/request_forms_and_files/tutorial001_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/request_forms_and_files/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/response_change_status_code/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/response_change_status_code/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/response_cookies/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/response_cookies/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/response_cookies/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/response_directly/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/response_directly/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/response_directly/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/response_headers/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/response_headers/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/response_headers/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/response_model/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/response_model/tutorial001_01_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/response_model/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/response_model/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/response_model/tutorial003_01_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/response_model/tutorial003_02_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/response_model/tutorial003_03_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/response_model/tutorial003_04_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/response_model/tutorial003_05_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/response_model/tutorial003_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/response_model/tutorial004_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/response_model/tutorial005_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/response_model/tutorial006_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/response_status_code/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/response_status_code/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/response_status_code/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/schema_extra_example/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/schema_extra_example/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/schema_extra_example/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/schema_extra_example/tutorial003_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/schema_extra_example/tutorial003_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/schema_extra_example/tutorial004_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/schema_extra_example/tutorial004_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/schema_extra_example/tutorial005_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/schema_extra_example/tutorial005_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/security/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/security/tutorial001_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/security/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/security/tutorial002_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/security/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/security/tutorial003_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/security/tutorial003_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/security/tutorial004_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/security/tutorial004_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/security/tutorial005_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/security/tutorial005_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/security/tutorial006_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/security/tutorial006_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/security/tutorial007_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/security/tutorial007_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/separate_openapi_schemas/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/separate_openapi_schemas/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/separate_openapi_schemas/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/server_sent_events/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/server_sent_events/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/server_sent_events/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/server_sent_events/tutorial003_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/server_sent_events/tutorial004_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/server_sent_events/tutorial005_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/settings/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/settings/app01_py310/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/settings/app01_py310/config.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/settings/app01_py310/main.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/settings/app02_an_py310/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/settings/app02_an_py310/config.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/settings/app02_an_py310/main.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/settings/app02_an_py310/test_main.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/settings/app02_py310/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/settings/app02_py310/config.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/settings/app02_py310/main.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/settings/app02_py310/test_main.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/settings/app03_an_py310/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/settings/app03_an_py310/config.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/settings/app03_an_py310/main.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/settings/app03_py310/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/settings/app03_py310/config.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/settings/app03_py310/main.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/settings/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/sql_databases/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/sql_databases/tutorial001_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/sql_databases/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/sql_databases/tutorial002_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/sql_databases/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/static_files/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/static_files/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/stream_data/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/stream_data/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/stream_data/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/stream_json_lines/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/stream_json_lines/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/strict_content_type/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/strict_content_type/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/sub_applications/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/sub_applications/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/templates/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/templates/static/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/templates/static/styles.css +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/templates/templates/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/templates/templates/item.html +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/templates/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/using_request_directly/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/using_request_directly/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/websockets_/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/websockets_/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/websockets_/tutorial002_an_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/websockets_/tutorial002_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/websockets_/tutorial003_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/wsgi/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/docs_src/wsgi/tutorial001_py310.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/.agents/skills/fastapi/references/dependencies.md +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/.agents/skills/fastapi/references/other-tools.md +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/.agents/skills/fastapi/references/streaming.md +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/__main__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/_compat/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/_compat/shared.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/_compat/v2.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/applications.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/background.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/cli.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/concurrency.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/datastructures.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/dependencies/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/dependencies/models.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/dependencies/utils.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/encoders.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/exception_handlers.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/exceptions.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/logger.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/middleware/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/middleware/asyncexitstack.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/middleware/cors.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/middleware/gzip.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/middleware/httpsredirect.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/middleware/trustedhost.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/middleware/wsgi.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/openapi/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/openapi/constants.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/openapi/docs.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/openapi/models.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/openapi/utils.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/param_functions.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/params.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/py.typed +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/requests.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/responses.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/security/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/security/api_key.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/security/base.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/security/http.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/security/oauth2.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/security/open_id_connect_url.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/security/utils.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/sse.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/staticfiles.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/templating.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/testclient.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/types.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/utils.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/fastapi/websockets.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/add_latest_release_date.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/contributors.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/deploy_docs_status.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/doc_parsing_utils.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/format.sh +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/general-llm-prompt.md +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/label_approved.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/lint.sh +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/notify_translations.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/people.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/playwright/cookie_param_models/image01.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/playwright/header_param_models/image01.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/playwright/json_base64_bytes/image01.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/playwright/query_param_models/image01.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/playwright/request_form_models/image01.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/playwright/separate_openapi_schemas/image01.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/playwright/separate_openapi_schemas/image02.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/playwright/separate_openapi_schemas/image03.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/playwright/separate_openapi_schemas/image04.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/playwright/separate_openapi_schemas/image05.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/playwright/sql_databases/image01.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/playwright/sql_databases/image02.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/prepare_release.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/sponsors.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/test-cov-html.sh +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/test-cov.sh +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/test.sh +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/tests/test_translation_fixer/conftest.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/tests/test_translation_fixer/test_code_blocks/data/en_doc.md +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/tests/test_translation_fixer/test_code_blocks/data/translated_doc_lines_number_gt.md +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/tests/test_translation_fixer/test_code_blocks/data/translated_doc_lines_number_lt.md +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/tests/test_translation_fixer/test_code_blocks/data/translated_doc_mermaid_not_translated.md +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/tests/test_translation_fixer/test_code_blocks/data/translated_doc_mermaid_translated.md +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/tests/test_translation_fixer/test_code_blocks/data/translated_doc_number_gt.md +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/tests/test_translation_fixer/test_code_blocks/data/translated_doc_number_lt.md +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/tests/test_translation_fixer/test_code_blocks/data/translated_doc_wrong_lang_code.md +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/tests/test_translation_fixer/test_code_blocks/data/translated_doc_wrong_lang_code_2.md +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/tests/test_translation_fixer/test_code_blocks/test_code_blocks_lines_number_mismatch.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/tests/test_translation_fixer/test_code_blocks/test_code_blocks_mermaid.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/tests/test_translation_fixer/test_code_blocks/test_code_blocks_number_mismatch.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/tests/test_translation_fixer/test_code_blocks/test_code_blocks_wrong_lang_code.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/tests/test_translation_fixer/test_code_includes/data/en_doc.md +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/tests/test_translation_fixer/test_code_includes/data/translated_doc_number_gt.md +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/tests/test_translation_fixer/test_code_includes/data/translated_doc_number_lt.md +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/tests/test_translation_fixer/test_code_includes/test_number_mismatch.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/tests/test_translation_fixer/test_complex_doc/data/en_doc.md +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/tests/test_translation_fixer/test_complex_doc/data/translated_doc.md +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/tests/test_translation_fixer/test_complex_doc/data/translated_doc_expected.md +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/tests/test_translation_fixer/test_complex_doc/test_compex_doc.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/tests/test_translation_fixer/test_header_permalinks/data/en_doc.md +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/tests/test_translation_fixer/test_header_permalinks/data/translated_doc_level_mismatch_1.md +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/tests/test_translation_fixer/test_header_permalinks/data/translated_doc_level_mismatch_2.md +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/tests/test_translation_fixer/test_header_permalinks/data/translated_doc_number_gt.md +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/tests/test_translation_fixer/test_header_permalinks/data/translated_doc_number_lt.md +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/tests/test_translation_fixer/test_header_permalinks/test_header_level_mismatch.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/tests/test_translation_fixer/test_header_permalinks/test_header_number_mismatch.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/tests/test_translation_fixer/test_html_links/data/en_doc.md +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/tests/test_translation_fixer/test_html_links/data/translated_doc_number_gt.md +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/tests/test_translation_fixer/test_html_links/data/translated_doc_number_lt.md +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/tests/test_translation_fixer/test_html_links/test_html_links_number_mismatch.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/tests/test_translation_fixer/test_markdown_links/data/en_doc.md +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/tests/test_translation_fixer/test_markdown_links/data/translated_doc.md +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/tests/test_translation_fixer/test_markdown_links/data/translated_doc_number_gt.md +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/tests/test_translation_fixer/test_markdown_links/data/translated_doc_number_lt.md +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/tests/test_translation_fixer/test_markdown_links/test_mkd_links_number_mismatch.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/topic_repos.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/translate.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/scripts/translation_fixer.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/benchmarks/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/benchmarks/test_general_performance.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/forward_reference_type.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/main.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_additional_properties.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_additional_properties_bool.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_additional_response_extra.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_additional_responses_bad.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_additional_responses_custom_model_in_callback.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_additional_responses_custom_validationerror.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_additional_responses_default_validationerror.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_additional_responses_response_class.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_additional_responses_router.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_additional_responses_union_duplicate_anyof.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_allow_inf_nan_in_enforcing.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_ambiguous_params.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_annotated.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_application.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_arbitrary_types.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_callable_endpoint.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_compat.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_computed_fields.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_custom_middleware_exception.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_custom_route_class.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_custom_schema_fields.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_custom_swagger_ui_redirect.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_datastructures.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_datetime_custom_encoder.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_default_response_class.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_default_response_class_router.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_dependencies_utils.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_dependency_after_yield_raise.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_dependency_after_yield_streaming.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_dependency_after_yield_websockets.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_dependency_cache.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_dependency_class.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_dependency_contextmanager.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_dependency_contextvars.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_dependency_duplicates.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_dependency_overrides.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_dependency_paramless.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_dependency_partial.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_dependency_pep695.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_dependency_security_overrides.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_dependency_wrapped.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_dependency_yield_except_httpexception.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_dependency_yield_scope.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_dependency_yield_scope_websockets.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_depends_hashable.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_deprecated_openapi_prefix.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_deprecated_responses.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_dump_json_fast_path.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_duplicate_models_openapi.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_empty_router.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_enforce_once_required_parameter.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_exception_handlers.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_extra_routes.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_fastapi_cli.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_file_and_form_order_issue_9116.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_filter_pydantic_sub_model_pv2.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_form_default.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_forms_from_non_typing_sequences.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_forms_single_model.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_forms_single_param.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_generate_unique_id_function.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_generic_parameterless_depends.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_get_model_definitions_formfeed_escape.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_get_request_body.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_http_connection_injection.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_include_route.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_include_router_defaults_overrides.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_infer_param_optionality.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_inherited_custom_class.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_invalid_path_param.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_invalid_sequence_param.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_json_type.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_jsonable_encoder.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_list_bytes_file_order_preserved_issue_14811.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_local_docs.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_modules_same_name_body/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_modules_same_name_body/app/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_modules_same_name_body/app/a.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_modules_same_name_body/app/b.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_modules_same_name_body/app/main.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_modules_same_name_body/test_main.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_multi_body_errors.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_multi_query_errors.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_multipart_installation.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_no_schema_split.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_no_swagger_ui_redirect.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_openapi_cache_root_path.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_openapi_examples.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_openapi_model_description_trim_on_formfeed.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_openapi_query_parameter_extension.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_openapi_route_extensions.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_openapi_schema_type.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_openapi_separate_input_output_schemas.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_openapi_servers.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_operations_signatures.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_optional_file_list.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_orjson_response_class.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_param_class.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_param_in_path_and_dependency.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_param_include_in_schema.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_params_repr.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_path.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_prepare_release.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_put_no_body.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_pydantic_v1_error.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_pydanticv2_dataclasses_uuid_stringified_annotations.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_query.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_query_cookie_header_model_extra_params.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_read_with_orm_mode.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_regex_deprecated_body.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_regex_deprecated_params.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_repeated_cookie_headers.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_repeated_dependency_schema.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_repeated_parameter_alias.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_body_parameters_media_type.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_param_model_by_alias.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/test_body/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/test_body/test_list.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/test_body/test_optional_list.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/test_body/test_optional_str.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/test_body/test_required_str.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/test_body/utils.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/test_cookie/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/test_cookie/test_list.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/test_cookie/test_optional_list.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/test_cookie/test_optional_str.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/test_cookie/test_required_str.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/test_file/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/test_file/test_list.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/test_file/test_optional.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/test_file/test_optional_list.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/test_file/test_required.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/test_file/utils.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/test_form/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/test_form/test_list.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/test_form/test_optional_list.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/test_form/test_optional_str.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/test_form/test_required_str.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/test_form/utils.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/test_header/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/test_header/test_list.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/test_header/test_optional_list.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/test_header/test_optional_str.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/test_header/test_required_str.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/test_path/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/test_path/test_list.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/test_path/test_optional_list.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/test_path/test_optional_str.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/test_path/test_required_str.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/test_query/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/test_query/test_list.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/test_query/test_optional_list.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/test_query/test_optional_str.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_request_params/test_query/test_required_str.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_required_noneable.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_response_by_alias.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_response_change_status_code.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_response_class_no_mediatype.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_response_code_no_body.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_response_dependency.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_response_model_as_return_annotation.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_response_model_data_filter.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_response_model_data_filter_no_inheritance.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_response_model_default_factory.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_response_model_include_exclude.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_response_model_invalid.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_response_model_sub_types.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_response_set_response_code_empty.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_return_none_stringified_annotations.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_route_scope.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_router_circular_import.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_router_events.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_router_include_context.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_router_prefix_with_template.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_router_redirect_slashes.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_schema_compat_pydantic_v2.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_schema_extra_examples.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_schema_ref_pydantic_v2.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_security_api_key_cookie.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_security_api_key_cookie_description.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_security_api_key_cookie_optional.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_security_api_key_header.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_security_api_key_header_description.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_security_api_key_header_optional.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_security_api_key_query.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_security_api_key_query_description.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_security_api_key_query_optional.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_security_http_base.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_security_http_base_description.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_security_http_base_optional.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_security_http_basic_optional.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_security_http_basic_realm.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_security_http_basic_realm_description.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_security_http_bearer.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_security_http_bearer_description.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_security_http_bearer_optional.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_security_http_digest.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_security_http_digest_description.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_security_http_digest_optional.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_security_oauth2.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_security_oauth2_authorization_code_bearer.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_security_oauth2_authorization_code_bearer_description.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_security_oauth2_authorization_code_bearer_scopes_openapi.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_security_oauth2_authorization_code_bearer_scopes_openapi_simple.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_security_oauth2_optional.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_security_oauth2_optional_description.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_security_oauth2_password_bearer_optional.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_security_oauth2_password_bearer_optional_description.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_security_openid_connect.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_security_openid_connect_description.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_security_openid_connect_optional.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_security_scopes.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_security_scopes_dont_propagate.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_security_scopes_sub_dependency.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_serialize_response.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_serialize_response_dataclass.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_serialize_response_model.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_skip_defaults.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_sse.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_starlette_exception.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_starlette_urlconvertors.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_stream_bare_type.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_stream_cancellation.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_stream_json_validation_error.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_strict_content_type_app_level.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_strict_content_type_nested.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_strict_content_type_router_level.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_stringified_annotation_dependency.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_stringified_annotation_dependency_py314.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_stringified_annotations_simple.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_sub_callbacks.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_swagger_ui_escape.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_swagger_ui_init_oauth.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_top_level_security_scheme_in_openapi.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tuples.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_additional_responses/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_additional_responses/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_additional_responses/test_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_additional_responses/test_tutorial003.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_additional_responses/test_tutorial004.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_additional_status_codes/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_additional_status_codes/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_advanced_middleware/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_advanced_middleware/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_advanced_middleware/test_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_advanced_middleware/test_tutorial003.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_async_tests/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_async_tests/test_main_a.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_authentication_error_status_code/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_authentication_error_status_code/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_background_tasks/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_background_tasks/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_background_tasks/test_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_behind_a_proxy/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_behind_a_proxy/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_behind_a_proxy/test_tutorial001_01.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_behind_a_proxy/test_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_behind_a_proxy/test_tutorial003.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_behind_a_proxy/test_tutorial004.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_bigger_applications/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_bigger_applications/test_main.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_body/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_body/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_body/test_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_body/test_tutorial003.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_body/test_tutorial004.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_body_fields/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_body_fields/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_body_multiple_params/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_body_multiple_params/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_body_multiple_params/test_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_body_multiple_params/test_tutorial003.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_body_multiple_params/test_tutorial004.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_body_multiple_params/test_tutorial005.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_body_nested_models/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_body_nested_models/test_tutorial001_tutorial002_tutorial003.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_body_nested_models/test_tutorial004.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_body_nested_models/test_tutorial005.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_body_nested_models/test_tutorial006.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_body_nested_models/test_tutorial007.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_body_nested_models/test_tutorial008.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_body_nested_models/test_tutorial009.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_body_updates/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_body_updates/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_body_updates/test_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_conditional_openapi/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_conditional_openapi/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_configure_swagger_ui/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_configure_swagger_ui/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_configure_swagger_ui/test_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_configure_swagger_ui/test_tutorial003.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_cookie_param_models/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_cookie_param_models/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_cookie_param_models/test_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_cookie_params/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_cookie_params/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_cors/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_cors/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_custom_docs_ui/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_custom_docs_ui/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_custom_docs_ui/test_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_custom_request_and_route/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_custom_request_and_route/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_custom_request_and_route/test_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_custom_request_and_route/test_tutorial003.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_custom_response/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_custom_response/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_custom_response/test_tutorial001b.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_custom_response/test_tutorial002_tutorial003_tutorial004.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_custom_response/test_tutorial005.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_custom_response/test_tutorial006.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_custom_response/test_tutorial006b.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_custom_response/test_tutorial006c.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_custom_response/test_tutorial007.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_custom_response/test_tutorial008.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_custom_response/test_tutorial009.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_custom_response/test_tutorial009b.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_custom_response/test_tutorial009c.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_custom_response/test_tutorial010.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_dataclasses/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_dataclasses/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_dataclasses/test_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_dataclasses/test_tutorial003.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_debugging/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_debugging/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_dependencies/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_dependencies/test_tutorial001_tutorial001_02.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_dependencies/test_tutorial002_tutorial003_tutorial004.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_dependencies/test_tutorial005.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_dependencies/test_tutorial006.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_dependencies/test_tutorial007.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_dependencies/test_tutorial008.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_dependencies/test_tutorial008b.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_dependencies/test_tutorial008c.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_dependencies/test_tutorial008d.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_dependencies/test_tutorial008e.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_dependencies/test_tutorial010.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_dependencies/test_tutorial011.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_dependencies/test_tutorial012.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_encoder/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_encoder/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_events/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_events/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_events/test_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_events/test_tutorial003.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_extending_openapi/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_extending_openapi/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_extra_data_types/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_extra_data_types/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_extra_models/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_extra_models/test_tutorial001_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_extra_models/test_tutorial003.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_extra_models/test_tutorial004.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_extra_models/test_tutorial005.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_first_steps/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_first_steps/test_tutorial001_tutorial002_tutorial003.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_generate_clients/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_generate_clients/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_generate_clients/test_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_generate_clients/test_tutorial003.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_generate_clients/test_tutorial004.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_graphql/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_graphql/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_handling_errors/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_handling_errors/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_handling_errors/test_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_handling_errors/test_tutorial003.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_handling_errors/test_tutorial004.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_handling_errors/test_tutorial005.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_handling_errors/test_tutorial006.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_header_param_models/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_header_param_models/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_header_param_models/test_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_header_param_models/test_tutorial003.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_header_params/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_header_params/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_header_params/test_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_header_params/test_tutorial003.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_json_base64_bytes/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_json_base64_bytes/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_metadata/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_metadata/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_metadata/test_tutorial001_1.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_metadata/test_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_metadata/test_tutorial003.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_metadata/test_tutorial004.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_middleware/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_middleware/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_openapi_callbacks/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_openapi_callbacks/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_openapi_webhooks/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_openapi_webhooks/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_path_operation_advanced_configurations/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial003.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial004.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial005.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial006.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial007.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_path_operation_configurations/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_path_operation_configurations/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_path_operation_configurations/test_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_path_operation_configurations/test_tutorial002b.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_path_operation_configurations/test_tutorial003_tutorial004.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_path_operation_configurations/test_tutorial005.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_path_operation_configurations/test_tutorial006.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_path_params/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_path_params/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_path_params/test_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_path_params/test_tutorial003.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_path_params/test_tutorial003b.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_path_params/test_tutorial004.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_path_params/test_tutorial005.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_path_params_numeric_validations/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_path_params_numeric_validations/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_path_params_numeric_validations/test_tutorial002_tutorial003.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_path_params_numeric_validations/test_tutorial004.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_path_params_numeric_validations/test_tutorial005.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_path_params_numeric_validations/test_tutorial006.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_python_types/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_python_types/test_tutorial001_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_python_types/test_tutorial003.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_python_types/test_tutorial004.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_python_types/test_tutorial005.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_python_types/test_tutorial006.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_python_types/test_tutorial007.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_python_types/test_tutorial008.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_python_types/test_tutorial008b.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_python_types/test_tutorial009_tutorial009b.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_python_types/test_tutorial010.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_python_types/test_tutorial011.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_python_types/test_tutorial013.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_query_param_models/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_query_param_models/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_query_param_models/test_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_query_params/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_query_params/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_query_params/test_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_query_params/test_tutorial003.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_query_params/test_tutorial004.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_query_params/test_tutorial005.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_query_params/test_tutorial006.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_query_params_str_validations/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_query_params_str_validations/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_query_params_str_validations/test_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_query_params_str_validations/test_tutorial003.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_query_params_str_validations/test_tutorial004.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_query_params_str_validations/test_tutorial005.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_query_params_str_validations/test_tutorial006.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_query_params_str_validations/test_tutorial006c.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_query_params_str_validations/test_tutorial007.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_query_params_str_validations/test_tutorial008.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_query_params_str_validations/test_tutorial009.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_query_params_str_validations/test_tutorial010.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_query_params_str_validations/test_tutorial011.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_query_params_str_validations/test_tutorial012.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_query_params_str_validations/test_tutorial013.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_query_params_str_validations/test_tutorial014.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_query_params_str_validations/test_tutorial015.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_request_files/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_request_files/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_request_files/test_tutorial001_02.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_request_files/test_tutorial001_03.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_request_files/test_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_request_files/test_tutorial003.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_request_form_models/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_request_form_models/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_request_form_models/test_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_request_forms/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_request_forms/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_request_forms_and_files/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_request_forms_and_files/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_response_change_status_code/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_response_change_status_code/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_response_cookies/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_response_cookies/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_response_cookies/test_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_response_directly/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_response_directly/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_response_directly/test_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_response_headers/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_response_headers/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_response_headers/test_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_response_model/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_response_model/test_tutorial001_tutorial001_01.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_response_model/test_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_response_model/test_tutorial003.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_response_model/test_tutorial003_01.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_response_model/test_tutorial003_02.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_response_model/test_tutorial003_03.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_response_model/test_tutorial003_04.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_response_model/test_tutorial003_05.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_response_model/test_tutorial004.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_response_model/test_tutorial005.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_response_model/test_tutorial006.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_response_status_code/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_response_status_code/test_tutorial001_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_schema_extra_example/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_schema_extra_example/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_schema_extra_example/test_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_schema_extra_example/test_tutorial003.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_schema_extra_example/test_tutorial004.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_schema_extra_example/test_tutorial005.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_security/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_security/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_security/test_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_security/test_tutorial003.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_security/test_tutorial004.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_security/test_tutorial005.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_security/test_tutorial006.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_security/test_tutorial007.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_separate_openapi_schemas/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_separate_openapi_schemas/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_separate_openapi_schemas/test_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_server_sent_events/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_server_sent_events/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_server_sent_events/test_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_server_sent_events/test_tutorial003.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_server_sent_events/test_tutorial004.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_server_sent_events/test_tutorial005.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_settings/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_settings/test_app01.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_settings/test_app02.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_settings/test_app03.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_settings/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_sql_databases/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_sql_databases/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_sql_databases/test_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_static_files/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_static_files/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_stream_data/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_stream_data/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_stream_data/test_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_stream_json_lines/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_stream_json_lines/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_strict_content_type/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_strict_content_type/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_sub_applications/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_sub_applications/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_templates/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_templates/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_testing/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_testing/test_main_a.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_testing/test_main_b.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_testing/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_testing/test_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_testing/test_tutorial003.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_testing/test_tutorial004.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_testing_dependencies/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_testing_dependencies/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_using_request_directly/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_using_request_directly/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_websockets/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_websockets/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_websockets/test_tutorial002.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_websockets/test_tutorial003.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_wsgi/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_tutorial/test_wsgi/test_tutorial001.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_typing_python39.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_union_body.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_union_body_discriminator.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_union_body_discriminator_annotated.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_union_forms.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_union_inherited_body.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_validate_response.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_validate_response_dataclass.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_validate_response_recursive/__init__.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_validate_response_recursive/app.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_validate_response_recursive/test_validate_response_recursive.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_validation_error_context.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_webhooks_security.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_wrapped_method_forward_reference.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_ws_dependencies.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/test_ws_router.py +0 -0
- {fastapi-0.138.0 → fastapi-0.138.2}/tests/utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fastapi
|
|
3
|
-
Version: 0.138.
|
|
3
|
+
Version: 0.138.2
|
|
4
4
|
Summary: FastAPI framework, high performance, easy to learn, fast to code, ready for production
|
|
5
5
|
Author-Email: =?utf-8?q?Sebasti=C3=A1n_Ram=C3=ADrez?= <tiangolo@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -140,7 +140,6 @@ The key features are:
|
|
|
140
140
|
|
|
141
141
|
<a href="https://databento.com/?utm_source=fastapi&utm_medium=sponsor&utm_content=display" target="_blank" title="Pay as you go for market data"><img src="https://fastapi.tiangolo.com/img/sponsors/databento.svg"></a>
|
|
142
142
|
<a href="https://www.svix.com/" target="_blank" title="Svix - Webhooks as a service"><img src="https://fastapi.tiangolo.com/img/sponsors/svix.svg"></a>
|
|
143
|
-
<a href="https://www.stainlessapi.com/?utm_source=fastapi&utm_medium=referral" target="_blank" title="Stainless | Generate best-in-class SDKs"><img src="https://fastapi.tiangolo.com/img/sponsors/stainless.png"></a>
|
|
144
143
|
<a href="https://www.permit.io/blog/implement-authorization-in-fastapi?utm_source=github&utm_medium=referral&utm_campaign=fastapi" target="_blank" title="Fine-Grained Authorization for FastAPI"><img src="https://fastapi.tiangolo.com/img/sponsors/permit.png"></a>
|
|
145
144
|
<a href="https://dribia.com/en/" target="_blank" title="Dribia - Data Science within your reach"><img src="https://fastapi.tiangolo.com/img/sponsors/dribia.png"></a>
|
|
146
145
|
<a href="https://www.rapidproxy.io/?ref=fastapi" target="_blank" title="Try RapidProxy for free - Residential Proxies with 90M+ Global IPs. Starting from $0.65/GB for web scraping, automation, and data collection."><img src="https://fastapi.tiangolo.com/img/sponsors/rapidproxy.png"></a>
|
|
@@ -64,7 +64,6 @@ The key features are:
|
|
|
64
64
|
|
|
65
65
|
<a href="https://databento.com/?utm_source=fastapi&utm_medium=sponsor&utm_content=display" target="_blank" title="Pay as you go for market data"><img src="https://fastapi.tiangolo.com/img/sponsors/databento.svg"></a>
|
|
66
66
|
<a href="https://www.svix.com/" target="_blank" title="Svix - Webhooks as a service"><img src="https://fastapi.tiangolo.com/img/sponsors/svix.svg"></a>
|
|
67
|
-
<a href="https://www.stainlessapi.com/?utm_source=fastapi&utm_medium=referral" target="_blank" title="Stainless | Generate best-in-class SDKs"><img src="https://fastapi.tiangolo.com/img/sponsors/stainless.png"></a>
|
|
68
67
|
<a href="https://www.permit.io/blog/implement-authorization-in-fastapi?utm_source=github&utm_medium=referral&utm_campaign=fastapi" target="_blank" title="Fine-Grained Authorization for FastAPI"><img src="https://fastapi.tiangolo.com/img/sponsors/permit.png"></a>
|
|
69
68
|
<a href="https://dribia.com/en/" target="_blank" title="Dribia - Data Science within your reach"><img src="https://fastapi.tiangolo.com/img/sponsors/dribia.png"></a>
|
|
70
69
|
<a href="https://www.rapidproxy.io/?ref=fastapi" target="_blank" title="Try RapidProxy for free - Residential Proxies with 90M+ Global IPs. Starting from $0.65/GB for web scraping, automation, and data collection."><img src="https://fastapi.tiangolo.com/img/sponsors/rapidproxy.png"></a>
|
|
@@ -1,12 +1,23 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: fastapi
|
|
3
|
-
description: FastAPI best practices and conventions. Use when working with FastAPI APIs
|
|
3
|
+
description: FastAPI best practices and conventions. Use when working with FastAPI APIs, Pydantic models, dependencies, streaming responses including Server-Sent Events (SSE), and serving frontend apps. Keeps FastAPI code clean and up to date with the latest features and patterns.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# FastAPI
|
|
7
7
|
|
|
8
8
|
Official FastAPI skill to write code with best practices, keeping up to date with new versions and features.
|
|
9
9
|
|
|
10
|
+
## Quick Reference
|
|
11
|
+
|
|
12
|
+
* Serve frontend apps: use `app.frontend()` or `router.frontend()` for built frontend assets; see [Serve Frontend Apps](#serve-frontend-apps).
|
|
13
|
+
* Server-Sent Events (SSE): use `response_class=EventSourceResponse` and `yield`; see [Streaming](#streaming-json-lines-sse-bytes) and [the streaming reference](references/streaming.md).
|
|
14
|
+
* JSON Lines and byte streaming: see [the streaming reference](references/streaming.md).
|
|
15
|
+
* Dependencies: use `Annotated[..., Depends(...)]`; see [Dependency Injection](#dependency-injection) and [the dependency injection reference](references/dependencies.md) for `yield`, scopes, and class dependencies.
|
|
16
|
+
* Response models: prefer return types; use `response_model` when the public response schema differs from the internal return value; see [the response reference](references/responses.md).
|
|
17
|
+
* Pydantic models: do not use ellipsis or `RootModel`; see [the Pydantic reference](references/pydantic.md).
|
|
18
|
+
* Routing: declare router-level prefix, tags, and shared dependencies on the `APIRouter`; see [the path operation reference](references/path-operations.md).
|
|
19
|
+
* Tooling and related libraries: use uv, Ruff, ty, Asyncer, SQLModel, and HTTPX when applicable; see [the other tools reference](references/other-tools.md).
|
|
20
|
+
|
|
10
21
|
## Use the `fastapi` CLI
|
|
11
22
|
|
|
12
23
|
Run the development server on localhost with reload:
|
|
@@ -15,39 +26,28 @@ Run the development server on localhost with reload:
|
|
|
15
26
|
fastapi dev
|
|
16
27
|
```
|
|
17
28
|
|
|
18
|
-
|
|
19
29
|
Run the production server:
|
|
20
30
|
|
|
21
31
|
```bash
|
|
22
32
|
fastapi run
|
|
23
33
|
```
|
|
24
34
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
FastAPI CLI will read the entrypoint in `pyproject.toml` to know where the FastAPI app is declared.
|
|
35
|
+
Prefer declaring the entrypoint in `pyproject.toml`:
|
|
28
36
|
|
|
29
37
|
```toml
|
|
30
38
|
[tool.fastapi]
|
|
31
39
|
entrypoint = "my_app.main:app"
|
|
32
40
|
```
|
|
33
41
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
When adding the entrypoint to `pyproject.toml` is not possible, or the user explicitly asks not to, or it's running an independent small app, you can pass the app file path to the `fastapi` command:
|
|
42
|
+
When adding the entrypoint is not possible, or the user explicitly asks not to, pass the app file path:
|
|
37
43
|
|
|
38
44
|
```bash
|
|
39
45
|
fastapi dev my_app/main.py
|
|
40
46
|
```
|
|
41
47
|
|
|
42
|
-
Prefer to set the entrypoint in `pyproject.toml` when possible.
|
|
43
|
-
|
|
44
48
|
## Use `Annotated`
|
|
45
49
|
|
|
46
|
-
Always prefer the `Annotated` style for parameter and dependency declarations.
|
|
47
|
-
|
|
48
|
-
It keeps the function signatures working in other contexts, respects the types, allows reusability.
|
|
49
|
-
|
|
50
|
-
### In Parameter Declarations
|
|
50
|
+
Always prefer the `Annotated` style for parameter and dependency declarations. It keeps function signatures working in other contexts, respects the types, and allows reusability.
|
|
51
51
|
|
|
52
52
|
Use `Annotated` for parameter declarations, including `Path`, `Query`, `Header`, etc.:
|
|
53
53
|
|
|
@@ -67,23 +67,7 @@ async def read_item(
|
|
|
67
67
|
return {"message": "Hello World"}
|
|
68
68
|
```
|
|
69
69
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
```python
|
|
73
|
-
# DO NOT DO THIS
|
|
74
|
-
@app.get("/items/{item_id}")
|
|
75
|
-
async def read_item(
|
|
76
|
-
item_id: int = Path(ge=1, description="The item ID"),
|
|
77
|
-
q: str | None = Query(default=None, max_length=50),
|
|
78
|
-
):
|
|
79
|
-
return {"message": "Hello World"}
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
### For Dependencies
|
|
83
|
-
|
|
84
|
-
Use `Annotated` for dependencies with `Depends()`.
|
|
85
|
-
|
|
86
|
-
Unless asked not to, create a new type alias for the dependency to allow re-using it.
|
|
70
|
+
Use `Annotated` for dependencies with `Depends()`. Unless asked not to, create a new type alias for the dependency to allow reusing it:
|
|
87
71
|
|
|
88
72
|
```python
|
|
89
73
|
from typing import Annotated
|
|
@@ -105,20 +89,9 @@ async def read_item(current_user: CurrentUserDep):
|
|
|
105
89
|
return {"message": "Hello World"}
|
|
106
90
|
```
|
|
107
91
|
|
|
108
|
-
instead of:
|
|
109
|
-
|
|
110
|
-
```python
|
|
111
|
-
# DO NOT DO THIS
|
|
112
|
-
@app.get("/items/")
|
|
113
|
-
async def read_item(current_user: dict = Depends(get_current_user)):
|
|
114
|
-
return {"message": "Hello World"}
|
|
115
|
-
```
|
|
116
|
-
|
|
117
92
|
## Do not use Ellipsis for *path operations* or Pydantic models
|
|
118
93
|
|
|
119
|
-
Do not use `...` as a default value for required parameters
|
|
120
|
-
|
|
121
|
-
Do this, without Ellipsis (`...`):
|
|
94
|
+
Do not use `...` as a default value for required parameters or model fields. It's not needed and not recommended.
|
|
122
95
|
|
|
123
96
|
```python
|
|
124
97
|
from typing import Annotated
|
|
@@ -126,6 +99,8 @@ from typing import Annotated
|
|
|
126
99
|
from fastapi import FastAPI, Query
|
|
127
100
|
from pydantic import BaseModel, Field
|
|
128
101
|
|
|
102
|
+
app = FastAPI()
|
|
103
|
+
|
|
129
104
|
|
|
130
105
|
class Item(BaseModel):
|
|
131
106
|
name: str
|
|
@@ -133,29 +108,12 @@ class Item(BaseModel):
|
|
|
133
108
|
price: float = Field(gt=0)
|
|
134
109
|
|
|
135
110
|
|
|
136
|
-
app = FastAPI()
|
|
137
|
-
|
|
138
|
-
|
|
139
111
|
@app.post("/items/")
|
|
140
|
-
async def create_item(item: Item, project_id: Annotated[int, Query()]):
|
|
112
|
+
async def create_item(item: Item, project_id: Annotated[int, Query()]):
|
|
113
|
+
return item
|
|
141
114
|
```
|
|
142
115
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
```python
|
|
146
|
-
# DO NOT DO THIS
|
|
147
|
-
class Item(BaseModel):
|
|
148
|
-
name: str = ...
|
|
149
|
-
description: str | None = None
|
|
150
|
-
price: float = Field(..., gt=0)
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
app = FastAPI()
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
@app.post("/items/")
|
|
157
|
-
async def create_item(item: Item, project_id: Annotated[int, Query(...)]): ...
|
|
158
|
-
```
|
|
116
|
+
See [the Pydantic reference](references/pydantic.md) for more details.
|
|
159
117
|
|
|
160
118
|
## Return Type or Response Model
|
|
161
119
|
|
|
@@ -178,62 +136,9 @@ async def get_item() -> Item:
|
|
|
178
136
|
return Item(name="Plumbus", description="All-purpose home device")
|
|
179
137
|
```
|
|
180
138
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
The return type doesn't have to be a Pydantic model, it could be a different type, like a list of integers, or a dict, etc.
|
|
184
|
-
|
|
185
|
-
### When to use `response_model` instead
|
|
186
|
-
|
|
187
|
-
If the return type is not the same as the type that you want to use to validate, filter, or serialize, use the `response_model` parameter on the decorator instead.
|
|
188
|
-
|
|
189
|
-
```python
|
|
190
|
-
from typing import Any
|
|
191
|
-
|
|
192
|
-
from fastapi import FastAPI
|
|
193
|
-
from pydantic import BaseModel
|
|
194
|
-
|
|
195
|
-
app = FastAPI()
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
class Item(BaseModel):
|
|
199
|
-
name: str
|
|
200
|
-
description: str | None = None
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
@app.get("/items/me", response_model=Item)
|
|
204
|
-
async def get_item() -> Any:
|
|
205
|
-
return {"name": "Foo", "description": "A very nice Item"}
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
This can be particularly useful when filtering data to expose only the public fields and avoid exposing sensitive information.
|
|
209
|
-
|
|
210
|
-
```python
|
|
211
|
-
from typing import Any
|
|
212
|
-
|
|
213
|
-
from fastapi import FastAPI
|
|
214
|
-
from pydantic import BaseModel
|
|
215
|
-
|
|
216
|
-
app = FastAPI()
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
class InternalItem(BaseModel):
|
|
220
|
-
name: str
|
|
221
|
-
description: str | None = None
|
|
222
|
-
secret_key: str
|
|
223
|
-
|
|
139
|
+
Return types or response models filter data to avoid exposing sensitive information, and they let Pydantic serialize the data on the Rust side for performance.
|
|
224
140
|
|
|
225
|
-
|
|
226
|
-
name: str
|
|
227
|
-
description: str | None = None
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
@app.get("/items/me", response_model=Item)
|
|
231
|
-
async def get_item() -> Any:
|
|
232
|
-
item = InternalItem(
|
|
233
|
-
name="Foo", description="A very nice Item", secret_key="supersecret"
|
|
234
|
-
)
|
|
235
|
-
return item
|
|
236
|
-
```
|
|
141
|
+
Use `response_model` when the type you return is not the same as the public schema you want to validate, filter, document, and serialize. See [the response reference](references/responses.md).
|
|
237
142
|
|
|
238
143
|
## Performance
|
|
239
144
|
|
|
@@ -243,36 +148,23 @@ Instead, declare a return type or response model. Pydantic will handle the data
|
|
|
243
148
|
|
|
244
149
|
## Including Routers
|
|
245
150
|
|
|
246
|
-
When declaring routers, prefer to add router
|
|
247
|
-
|
|
248
|
-
Do this:
|
|
151
|
+
When declaring routers, prefer to add router-level parameters like prefix, tags, and shared dependencies to the router itself instead of in `include_router()`.
|
|
249
152
|
|
|
250
153
|
```python
|
|
251
|
-
from fastapi import APIRouter, FastAPI
|
|
154
|
+
from fastapi import APIRouter, Depends, FastAPI
|
|
252
155
|
|
|
253
156
|
app = FastAPI()
|
|
254
157
|
|
|
255
|
-
router = APIRouter(prefix="/items", tags=["items"])
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
@router.get("/")
|
|
259
|
-
async def list_items():
|
|
260
|
-
return []
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
# In main.py
|
|
264
|
-
app.include_router(router)
|
|
265
|
-
```
|
|
266
|
-
|
|
267
|
-
instead of this:
|
|
268
158
|
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
from fastapi import APIRouter, FastAPI
|
|
159
|
+
def get_current_user():
|
|
160
|
+
return {"username": "johndoe"}
|
|
272
161
|
|
|
273
|
-
app = FastAPI()
|
|
274
162
|
|
|
275
|
-
router = APIRouter(
|
|
163
|
+
router = APIRouter(
|
|
164
|
+
prefix="/items",
|
|
165
|
+
tags=["items"],
|
|
166
|
+
dependencies=[Depends(get_current_user)],
|
|
167
|
+
)
|
|
276
168
|
|
|
277
169
|
|
|
278
170
|
@router.get("/")
|
|
@@ -280,13 +172,10 @@ async def list_items():
|
|
|
280
172
|
return []
|
|
281
173
|
|
|
282
174
|
|
|
283
|
-
|
|
284
|
-
app.include_router(router, prefix="/items", tags=["items"])
|
|
175
|
+
app.include_router(router)
|
|
285
176
|
```
|
|
286
177
|
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
Apply shared dependencies at the router level via `dependencies=[Depends(...)]`.
|
|
178
|
+
See [the path operation reference](references/path-operations.md) for more routing patterns.
|
|
290
179
|
|
|
291
180
|
## Serve Frontend Apps
|
|
292
181
|
|
|
@@ -316,15 +205,15 @@ app.include_router(router)
|
|
|
316
205
|
|
|
317
206
|
## Dependency Injection
|
|
318
207
|
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
Use dependencies when the logic can't be declared in Pydantic validation, depends on external resources, needs cleanup (with `yield`), or is shared across endpoints.
|
|
208
|
+
Use dependencies when the logic can't be declared in Pydantic validation, depends on external resources, needs cleanup with `yield`, or is shared across endpoints.
|
|
322
209
|
|
|
323
210
|
Apply shared dependencies at the router level via `dependencies=[Depends(...)]`.
|
|
324
211
|
|
|
212
|
+
See [the dependency injection reference](references/dependencies.md) for detailed patterns including `yield` with `scope`, and class dependencies.
|
|
213
|
+
|
|
325
214
|
## Async vs Sync *path operations*
|
|
326
215
|
|
|
327
|
-
Use `async` *path operations* only when fully certain that the logic called inside is compatible with async and await
|
|
216
|
+
Use `async` *path operations* only when fully certain that the logic called inside is compatible with async and await, and that it doesn't block.
|
|
328
217
|
|
|
329
218
|
```python
|
|
330
219
|
from fastapi import FastAPI
|
|
@@ -332,30 +221,44 @@ from fastapi import FastAPI
|
|
|
332
221
|
app = FastAPI()
|
|
333
222
|
|
|
334
223
|
|
|
335
|
-
# Use async def when calling async code
|
|
336
224
|
@app.get("/async-items/")
|
|
337
225
|
async def read_async_items():
|
|
338
226
|
data = await some_async_library.fetch_items()
|
|
339
227
|
return data
|
|
340
228
|
|
|
341
229
|
|
|
342
|
-
# Use plain def when calling blocking/sync code or when in doubt
|
|
343
230
|
@app.get("/items/")
|
|
344
231
|
def read_items():
|
|
345
232
|
data = some_blocking_library.fetch_items()
|
|
346
233
|
return data
|
|
347
234
|
```
|
|
348
235
|
|
|
349
|
-
In case of doubt, or by default, use regular `def` functions
|
|
236
|
+
In case of doubt, or by default, use regular `def` functions. They will be run in a threadpool so they don't block the event loop. The same rules apply to dependencies.
|
|
350
237
|
|
|
351
|
-
The
|
|
352
|
-
|
|
353
|
-
Make sure blocking code is not run inside of `async` functions. The logic will work, but will damage the performance heavily.
|
|
238
|
+
Make sure blocking code is not run inside of `async` functions. The logic will work, but will damage performance heavily.
|
|
354
239
|
|
|
355
240
|
When needing to mix blocking and async code, see Asyncer in [the other tools reference](references/other-tools.md).
|
|
356
241
|
|
|
357
242
|
## Streaming (JSON Lines, SSE, bytes)
|
|
358
243
|
|
|
244
|
+
To stream Server-Sent Events, use `response_class=EventSourceResponse` and `yield` items from the endpoint.
|
|
245
|
+
|
|
246
|
+
```python
|
|
247
|
+
from collections.abc import AsyncIterable
|
|
248
|
+
|
|
249
|
+
from fastapi import FastAPI
|
|
250
|
+
from fastapi.sse import EventSourceResponse, ServerSentEvent
|
|
251
|
+
|
|
252
|
+
app = FastAPI()
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+
@app.get("/events", response_class=EventSourceResponse)
|
|
256
|
+
async def stream_events() -> AsyncIterable[ServerSentEvent]:
|
|
257
|
+
yield ServerSentEvent(data={"status": "started"}, event="status", id="1")
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
Plain objects are automatically JSON-serialized as `data:` fields. Use `ServerSentEvent` for full control over SSE fields (`event`, `id`, `retry`, `comment`) and `raw_data` for pre-formatted strings.
|
|
261
|
+
|
|
359
262
|
See [the streaming reference](references/streaming.md) for JSON Lines, Server-Sent Events (`EventSourceResponse`, `ServerSentEvent`), and byte streaming (`StreamingResponse`) patterns.
|
|
360
263
|
|
|
361
264
|
## Tooling
|
|
@@ -372,9 +275,7 @@ See [the other tools reference](references/other-tools.md) for details on other
|
|
|
372
275
|
|
|
373
276
|
## Do not use Pydantic RootModels
|
|
374
277
|
|
|
375
|
-
Do not use Pydantic `RootModel
|
|
376
|
-
|
|
377
|
-
For example, for a list with validations you could do:
|
|
278
|
+
Do not use Pydantic `RootModel`; instead use regular type annotations with `Annotated` and Pydantic validation utilities.
|
|
378
279
|
|
|
379
280
|
```python
|
|
380
281
|
from typing import Annotated
|
|
@@ -390,35 +291,11 @@ async def create_items(items: Annotated[list[int], Field(min_length=1), Body()])
|
|
|
390
291
|
return items
|
|
391
292
|
```
|
|
392
293
|
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
```python
|
|
396
|
-
# DO NOT DO THIS
|
|
397
|
-
from typing import Annotated
|
|
398
|
-
|
|
399
|
-
from fastapi import FastAPI
|
|
400
|
-
from pydantic import Field, RootModel
|
|
401
|
-
|
|
402
|
-
app = FastAPI()
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
class ItemList(RootModel[Annotated[list[int], Field(min_length=1)]]):
|
|
406
|
-
pass
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
@app.post("/items/")
|
|
410
|
-
async def create_items(items: ItemList):
|
|
411
|
-
return items
|
|
412
|
-
|
|
413
|
-
```
|
|
414
|
-
|
|
415
|
-
FastAPI supports these type annotations and will create a Pydantic `TypeAdapter` for them, so that types can work as normally and there's no need for the custom logic and types in RootModels.
|
|
294
|
+
FastAPI supports these type annotations and will create a Pydantic `TypeAdapter` for them, so types work normally without custom wrapper models. See [the Pydantic reference](references/pydantic.md).
|
|
416
295
|
|
|
417
296
|
## Use one HTTP operation per function
|
|
418
297
|
|
|
419
|
-
Don't mix HTTP operations in a single function
|
|
420
|
-
|
|
421
|
-
Do this:
|
|
298
|
+
Don't mix HTTP operations in a single function. Having one function per HTTP operation helps separate concerns and organize the code.
|
|
422
299
|
|
|
423
300
|
```python
|
|
424
301
|
from fastapi import FastAPI
|
|
@@ -441,22 +318,4 @@ async def create_item(item: Item):
|
|
|
441
318
|
return item
|
|
442
319
|
```
|
|
443
320
|
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
```python
|
|
447
|
-
# DO NOT DO THIS
|
|
448
|
-
from fastapi import FastAPI, Request
|
|
449
|
-
from pydantic import BaseModel
|
|
450
|
-
|
|
451
|
-
app = FastAPI()
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
class Item(BaseModel):
|
|
455
|
-
name: str
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
@app.api_route("/items/", methods=["GET", "POST"])
|
|
459
|
-
async def handle_items(request: Request):
|
|
460
|
-
if request.method == "GET":
|
|
461
|
-
return []
|
|
462
|
-
```
|
|
321
|
+
See [the path operation reference](references/path-operations.md) for more examples.
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Path Operations and Routing
|
|
2
|
+
|
|
3
|
+
## Including Routers
|
|
4
|
+
|
|
5
|
+
When declaring routers, prefer to add router-level parameters like prefix, tags, and shared dependencies to the router itself instead of in `include_router()`.
|
|
6
|
+
|
|
7
|
+
Do this:
|
|
8
|
+
|
|
9
|
+
```python
|
|
10
|
+
from fastapi import APIRouter, FastAPI
|
|
11
|
+
|
|
12
|
+
app = FastAPI()
|
|
13
|
+
|
|
14
|
+
router = APIRouter(prefix="/items", tags=["items"])
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@router.get("/")
|
|
18
|
+
async def list_items():
|
|
19
|
+
return []
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
app.include_router(router)
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Instead of:
|
|
26
|
+
|
|
27
|
+
```python
|
|
28
|
+
# DO NOT DO THIS
|
|
29
|
+
from fastapi import APIRouter, FastAPI
|
|
30
|
+
|
|
31
|
+
app = FastAPI()
|
|
32
|
+
|
|
33
|
+
router = APIRouter()
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
@router.get("/")
|
|
37
|
+
async def list_items():
|
|
38
|
+
return []
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
app.include_router(router, prefix="/items", tags=["items"])
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
There could be exceptions, but try to follow this convention.
|
|
45
|
+
|
|
46
|
+
Apply shared dependencies at the router level via `dependencies=[Depends(...)]`.
|
|
47
|
+
|
|
48
|
+
## Use one HTTP operation per function
|
|
49
|
+
|
|
50
|
+
Don't mix HTTP operations in a single function. Having one function per HTTP operation helps separate concerns and organize the code.
|
|
51
|
+
|
|
52
|
+
Do this:
|
|
53
|
+
|
|
54
|
+
```python
|
|
55
|
+
from fastapi import FastAPI
|
|
56
|
+
from pydantic import BaseModel
|
|
57
|
+
|
|
58
|
+
app = FastAPI()
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
class Item(BaseModel):
|
|
62
|
+
name: str
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
@app.get("/items/")
|
|
66
|
+
async def list_items():
|
|
67
|
+
return []
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
@app.post("/items/")
|
|
71
|
+
async def create_item(item: Item):
|
|
72
|
+
return item
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Instead of:
|
|
76
|
+
|
|
77
|
+
```python
|
|
78
|
+
# DO NOT DO THIS
|
|
79
|
+
from fastapi import FastAPI, Request
|
|
80
|
+
from pydantic import BaseModel
|
|
81
|
+
|
|
82
|
+
app = FastAPI()
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
class Item(BaseModel):
|
|
86
|
+
name: str
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
@app.api_route("/items/", methods=["GET", "POST"])
|
|
90
|
+
async def handle_items(request: Request):
|
|
91
|
+
if request.method == "GET":
|
|
92
|
+
return []
|
|
93
|
+
```
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Pydantic
|
|
2
|
+
|
|
3
|
+
## Do not use Ellipsis
|
|
4
|
+
|
|
5
|
+
Do not use `...` as a default value for required parameters or model fields. It's not needed and not recommended.
|
|
6
|
+
|
|
7
|
+
Do this, without Ellipsis (`...`):
|
|
8
|
+
|
|
9
|
+
```python
|
|
10
|
+
from typing import Annotated
|
|
11
|
+
|
|
12
|
+
from fastapi import FastAPI, Query
|
|
13
|
+
from pydantic import BaseModel, Field
|
|
14
|
+
|
|
15
|
+
app = FastAPI()
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class Item(BaseModel):
|
|
19
|
+
name: str
|
|
20
|
+
description: str | None = None
|
|
21
|
+
price: float = Field(gt=0)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
@app.post("/items/")
|
|
25
|
+
async def create_item(item: Item, project_id: Annotated[int, Query()]):
|
|
26
|
+
return item
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Instead of:
|
|
30
|
+
|
|
31
|
+
```python
|
|
32
|
+
# DO NOT DO THIS
|
|
33
|
+
from typing import Annotated
|
|
34
|
+
|
|
35
|
+
from fastapi import FastAPI, Query
|
|
36
|
+
from pydantic import BaseModel, Field
|
|
37
|
+
|
|
38
|
+
app = FastAPI()
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
class Item(BaseModel):
|
|
42
|
+
name: str = ...
|
|
43
|
+
description: str | None = None
|
|
44
|
+
price: float = Field(..., gt=0)
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
@app.post("/items/")
|
|
48
|
+
async def create_item(item: Item, project_id: Annotated[int, Query(...)]):
|
|
49
|
+
return item
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Do not use Pydantic RootModels
|
|
53
|
+
|
|
54
|
+
Do not use Pydantic `RootModel`; instead use regular type annotations with `Annotated` and Pydantic validation utilities.
|
|
55
|
+
|
|
56
|
+
For example, for a list with validations:
|
|
57
|
+
|
|
58
|
+
```python
|
|
59
|
+
from typing import Annotated
|
|
60
|
+
|
|
61
|
+
from fastapi import Body, FastAPI
|
|
62
|
+
from pydantic import Field
|
|
63
|
+
|
|
64
|
+
app = FastAPI()
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
@app.post("/items/")
|
|
68
|
+
async def create_items(items: Annotated[list[int], Field(min_length=1), Body()]):
|
|
69
|
+
return items
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Instead of:
|
|
73
|
+
|
|
74
|
+
```python
|
|
75
|
+
# DO NOT DO THIS
|
|
76
|
+
from typing import Annotated
|
|
77
|
+
|
|
78
|
+
from fastapi import FastAPI
|
|
79
|
+
from pydantic import Field, RootModel
|
|
80
|
+
|
|
81
|
+
app = FastAPI()
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
class ItemList(RootModel[Annotated[list[int], Field(min_length=1)]]):
|
|
85
|
+
pass
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
@app.post("/items/")
|
|
89
|
+
async def create_items(items: ItemList):
|
|
90
|
+
return items
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
FastAPI supports these type annotations and will create a Pydantic `TypeAdapter` for them, so types work normally without custom wrapper models.
|