fastapi 0.158.1__tar.gz → 0.159.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {fastapi-0.158.1 → fastapi-0.159.0}/PKG-INFO +1 -1
- fastapi-0.159.0/docs_src/cookie_param_models/tutorial003_an_py310.py +16 -0
- fastapi-0.159.0/docs_src/cookie_param_models/tutorial003_py310.py +14 -0
- fastapi-0.159.0/docs_src/header_param_models/tutorial004_an_py310.py +16 -0
- fastapi-0.159.0/docs_src/header_param_models/tutorial004_py310.py +14 -0
- fastapi-0.159.0/docs_src/query_param_models/tutorial004_an_py310.py +20 -0
- fastapi-0.159.0/docs_src/query_param_models/tutorial004_py310.py +19 -0
- fastapi-0.159.0/docs_src/request_form_models/tutorial005_an_py310.py +19 -0
- fastapi-0.159.0/docs_src/request_form_models/tutorial005_py310.py +17 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/__init__.py +1 -1
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/dependencies/utils.py +162 -51
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/openapi/utils.py +8 -1
- {fastapi-0.158.1 → fastapi-0.159.0}/pyproject.toml +1 -1
- fastapi-0.159.0/tests/test_forms_optional_models.py +621 -0
- fastapi-0.159.0/tests/test_header_cookie_optional_models.py +448 -0
- fastapi-0.159.0/tests/test_query_optional_models.py +473 -0
- fastapi-0.159.0/tests/test_tutorial/test_cookie_param_models/test_tutorial003.py +47 -0
- fastapi-0.159.0/tests/test_tutorial/test_header_param_models/test_tutorial004.py +49 -0
- fastapi-0.159.0/tests/test_tutorial/test_query_param_models/test_tutorial004.py +58 -0
- fastapi-0.159.0/tests/test_tutorial/test_request_form_models/test_tutorial005.py +27 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/LICENSE +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/README.md +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs/en/docs/img/favicon.png +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/additional_responses/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/additional_responses/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/additional_responses/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/additional_responses/tutorial003_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/additional_responses/tutorial004_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/additional_status_codes/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/additional_status_codes/tutorial001_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/additional_status_codes/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/advanced_middleware/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/advanced_middleware/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/advanced_middleware/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/advanced_middleware/tutorial003_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/app_testing/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/app_testing/app_a_py310/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/app_testing/app_a_py310/main.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/app_testing/app_a_py310/test_main.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/app_testing/app_b_an_py310/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/app_testing/app_b_an_py310/main.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/app_testing/app_b_an_py310/test_main.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/app_testing/app_b_py310/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/app_testing/app_b_py310/main.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/app_testing/app_b_py310/test_main.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/app_testing/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/app_testing/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/app_testing/tutorial003_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/app_testing/tutorial004_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/async_tests/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/async_tests/app_a_py310/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/async_tests/app_a_py310/main.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/async_tests/app_a_py310/test_main.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/authentication_error_status_code/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/authentication_error_status_code/tutorial001_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/background_tasks/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/background_tasks/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/background_tasks/tutorial002_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/background_tasks/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/behind_a_proxy/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/behind_a_proxy/tutorial001_01_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/behind_a_proxy/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/behind_a_proxy/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/behind_a_proxy/tutorial003_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/behind_a_proxy/tutorial004_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/bigger_applications/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/bigger_applications/app_an_py310/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/bigger_applications/app_an_py310/dependencies.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/bigger_applications/app_an_py310/internal/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/bigger_applications/app_an_py310/internal/admin.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/bigger_applications/app_an_py310/main.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/bigger_applications/app_an_py310/routers/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/bigger_applications/app_an_py310/routers/items.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/bigger_applications/app_an_py310/routers/users.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/body/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/body/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/body/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/body/tutorial003_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/body/tutorial004_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/body_fields/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/body_fields/tutorial001_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/body_fields/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/body_multiple_params/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/body_multiple_params/tutorial001_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/body_multiple_params/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/body_multiple_params/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/body_multiple_params/tutorial003_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/body_multiple_params/tutorial003_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/body_multiple_params/tutorial004_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/body_multiple_params/tutorial004_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/body_multiple_params/tutorial005_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/body_multiple_params/tutorial005_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/body_nested_models/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/body_nested_models/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/body_nested_models/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/body_nested_models/tutorial003_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/body_nested_models/tutorial004_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/body_nested_models/tutorial005_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/body_nested_models/tutorial006_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/body_nested_models/tutorial007_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/body_nested_models/tutorial008_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/body_nested_models/tutorial009_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/body_updates/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/body_updates/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/body_updates/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/conditional_openapi/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/conditional_openapi/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/configure_swagger_ui/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/configure_swagger_ui/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/configure_swagger_ui/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/configure_swagger_ui/tutorial003_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/cookie_param_models/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/cookie_param_models/tutorial001_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/cookie_param_models/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/cookie_param_models/tutorial002_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/cookie_param_models/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/cookie_params/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/cookie_params/tutorial001_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/cookie_params/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/cors/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/cors/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/custom_docs_ui/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/custom_docs_ui/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/custom_docs_ui/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/custom_request_and_route/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/custom_request_and_route/tutorial001_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/custom_request_and_route/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/custom_request_and_route/tutorial002_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/custom_request_and_route/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/custom_request_and_route/tutorial003_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/custom_response/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/custom_response/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/custom_response/tutorial001b_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/custom_response/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/custom_response/tutorial003_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/custom_response/tutorial004_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/custom_response/tutorial005_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/custom_response/tutorial006_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/custom_response/tutorial006b_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/custom_response/tutorial006c_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/custom_response/tutorial007_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/custom_response/tutorial008_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/custom_response/tutorial009_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/custom_response/tutorial009b_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/custom_response/tutorial009c_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/custom_response/tutorial010_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dataclasses_/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dataclasses_/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dataclasses_/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dataclasses_/tutorial003_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/debugging/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/debugging/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dependencies/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dependencies/tutorial001_02_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dependencies/tutorial001_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dependencies/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dependencies/tutorial002_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dependencies/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dependencies/tutorial003_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dependencies/tutorial003_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dependencies/tutorial004_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dependencies/tutorial004_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dependencies/tutorial005_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dependencies/tutorial005_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dependencies/tutorial006_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dependencies/tutorial006_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dependencies/tutorial007_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dependencies/tutorial008_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dependencies/tutorial008_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dependencies/tutorial008b_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dependencies/tutorial008b_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dependencies/tutorial008c_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dependencies/tutorial008c_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dependencies/tutorial008d_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dependencies/tutorial008d_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dependencies/tutorial008e_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dependencies/tutorial008e_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dependencies/tutorial010_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dependencies/tutorial011_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dependencies/tutorial011_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dependencies/tutorial012_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dependencies/tutorial012_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dependencies/tutorial013_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dependencies/tutorial014_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dependency_testing/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dependency_testing/tutorial001_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/dependency_testing/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/encoder/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/encoder/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/events/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/events/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/events/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/events/tutorial003_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/extending_openapi/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/extending_openapi/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/extra_data_types/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/extra_data_types/tutorial001_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/extra_data_types/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/extra_models/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/extra_models/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/extra_models/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/extra_models/tutorial003_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/extra_models/tutorial004_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/extra_models/tutorial005_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/first_steps/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/first_steps/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/first_steps/tutorial003_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/frontend/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/frontend/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/frontend/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/frontend/tutorial003_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/frontend/tutorial004_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/frontend/tutorial005_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/frontend/tutorial006_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/generate_clients/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/generate_clients/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/generate_clients/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/generate_clients/tutorial003_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/generate_clients/tutorial004.js +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/generate_clients/tutorial004_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/graphql_/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/graphql_/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/handling_errors/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/handling_errors/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/handling_errors/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/handling_errors/tutorial003_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/handling_errors/tutorial004_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/handling_errors/tutorial005_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/handling_errors/tutorial006_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/header_param_models/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/header_param_models/tutorial001_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/header_param_models/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/header_param_models/tutorial002_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/header_param_models/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/header_param_models/tutorial003_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/header_param_models/tutorial003_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/header_params/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/header_params/tutorial001_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/header_params/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/header_params/tutorial002_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/header_params/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/header_params/tutorial003_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/header_params/tutorial003_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/json_base64_bytes/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/json_base64_bytes/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/metadata/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/metadata/tutorial001_1_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/metadata/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/metadata/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/metadata/tutorial003_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/metadata/tutorial004_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/middleware/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/middleware/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/openapi_callbacks/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/openapi_callbacks/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/openapi_webhooks/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/openapi_webhooks/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/opentelemetry/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/opentelemetry/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/opentelemetry/tutorial003_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/path_operation_advanced_configuration/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/path_operation_advanced_configuration/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/path_operation_advanced_configuration/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/path_operation_advanced_configuration/tutorial003_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/path_operation_advanced_configuration/tutorial004_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/path_operation_advanced_configuration/tutorial005_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/path_operation_advanced_configuration/tutorial006_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/path_operation_advanced_configuration/tutorial007_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/path_operation_configuration/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/path_operation_configuration/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/path_operation_configuration/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/path_operation_configuration/tutorial002b_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/path_operation_configuration/tutorial003_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/path_operation_configuration/tutorial004_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/path_operation_configuration/tutorial005_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/path_operation_configuration/tutorial006_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/path_params/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/path_params/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/path_params/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/path_params/tutorial003_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/path_params/tutorial003b_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/path_params/tutorial004_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/path_params/tutorial005_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/path_params_numeric_validations/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/path_params_numeric_validations/tutorial001_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/path_params_numeric_validations/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/path_params_numeric_validations/tutorial002_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/path_params_numeric_validations/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/path_params_numeric_validations/tutorial003_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/path_params_numeric_validations/tutorial003_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/path_params_numeric_validations/tutorial004_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/path_params_numeric_validations/tutorial004_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/path_params_numeric_validations/tutorial005_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/path_params_numeric_validations/tutorial005_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/path_params_numeric_validations/tutorial006_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/path_params_numeric_validations/tutorial006_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/pydantic_v1_in_v2/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/pydantic_v1_in_v2/tutorial001_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/pydantic_v1_in_v2/tutorial002_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/pydantic_v1_in_v2/tutorial003_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/pydantic_v1_in_v2/tutorial004_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/python_types/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/python_types/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/python_types/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/python_types/tutorial003_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/python_types/tutorial004_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/python_types/tutorial005_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/python_types/tutorial006_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/python_types/tutorial007_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/python_types/tutorial008_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/python_types/tutorial008b_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/python_types/tutorial009_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/python_types/tutorial010_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/python_types/tutorial011_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/python_types/tutorial013_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_param_models/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_param_models/tutorial001_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_param_models/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_param_models/tutorial002_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_param_models/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_param_models/tutorial003_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_param_models/tutorial003_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_params/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_params/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_params/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_params/tutorial003_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_params/tutorial004_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_params/tutorial005_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_params/tutorial006_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_params_str_validations/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_params_str_validations/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_params_str_validations/tutorial002_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_params_str_validations/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_params_str_validations/tutorial003_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_params_str_validations/tutorial003_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_params_str_validations/tutorial004_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_params_str_validations/tutorial004_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_params_str_validations/tutorial005_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_params_str_validations/tutorial005_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_params_str_validations/tutorial006_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_params_str_validations/tutorial006_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_params_str_validations/tutorial006c_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_params_str_validations/tutorial006c_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_params_str_validations/tutorial007_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_params_str_validations/tutorial007_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_params_str_validations/tutorial008_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_params_str_validations/tutorial008_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_params_str_validations/tutorial009_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_params_str_validations/tutorial009_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_params_str_validations/tutorial010_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_params_str_validations/tutorial010_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_params_str_validations/tutorial011_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_params_str_validations/tutorial011_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_params_str_validations/tutorial012_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_params_str_validations/tutorial012_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_params_str_validations/tutorial013_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_params_str_validations/tutorial013_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_params_str_validations/tutorial014_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_params_str_validations/tutorial014_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/query_params_str_validations/tutorial015_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/request_files/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/request_files/tutorial001_02_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/request_files/tutorial001_02_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/request_files/tutorial001_03_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/request_files/tutorial001_03_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/request_files/tutorial001_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/request_files/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/request_files/tutorial002_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/request_files/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/request_files/tutorial003_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/request_files/tutorial003_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/request_form_models/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/request_form_models/tutorial001_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/request_form_models/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/request_form_models/tutorial002_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/request_form_models/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/request_form_models/tutorial003_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/request_form_models/tutorial003_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/request_form_models/tutorial004_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/request_form_models/tutorial004_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/request_forms/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/request_forms/tutorial001_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/request_forms/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/request_forms_and_files/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/request_forms_and_files/tutorial001_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/request_forms_and_files/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/response_change_status_code/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/response_change_status_code/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/response_cookies/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/response_cookies/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/response_cookies/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/response_directly/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/response_directly/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/response_directly/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/response_headers/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/response_headers/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/response_headers/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/response_model/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/response_model/tutorial001_01_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/response_model/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/response_model/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/response_model/tutorial003_01_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/response_model/tutorial003_02_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/response_model/tutorial003_03_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/response_model/tutorial003_04_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/response_model/tutorial003_05_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/response_model/tutorial003_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/response_model/tutorial004_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/response_model/tutorial005_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/response_model/tutorial006_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/response_status_code/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/response_status_code/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/response_status_code/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/schema_extra_example/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/schema_extra_example/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/schema_extra_example/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/schema_extra_example/tutorial003_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/schema_extra_example/tutorial003_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/schema_extra_example/tutorial004_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/schema_extra_example/tutorial004_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/schema_extra_example/tutorial005_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/schema_extra_example/tutorial005_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/security/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/security/tutorial001_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/security/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/security/tutorial002_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/security/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/security/tutorial003_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/security/tutorial003_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/security/tutorial004_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/security/tutorial004_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/security/tutorial005_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/security/tutorial005_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/security/tutorial006_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/security/tutorial006_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/security/tutorial007_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/security/tutorial007_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/separate_openapi_schemas/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/separate_openapi_schemas/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/separate_openapi_schemas/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/server_sent_events/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/server_sent_events/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/server_sent_events/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/server_sent_events/tutorial003_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/server_sent_events/tutorial004_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/server_sent_events/tutorial005_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/settings/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/settings/app01_py310/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/settings/app01_py310/config.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/settings/app01_py310/main.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/settings/app02_an_py310/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/settings/app02_an_py310/config.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/settings/app02_an_py310/main.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/settings/app02_an_py310/test_main.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/settings/app02_py310/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/settings/app02_py310/config.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/settings/app02_py310/main.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/settings/app02_py310/test_main.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/settings/app03_an_py310/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/settings/app03_an_py310/config.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/settings/app03_an_py310/main.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/settings/app03_py310/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/settings/app03_py310/config.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/settings/app03_py310/main.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/settings/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/sql_databases/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/sql_databases/tutorial001_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/sql_databases/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/sql_databases/tutorial002_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/sql_databases/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/static_files/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/static_files/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/stream_data/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/stream_data/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/stream_data/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/stream_json_lines/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/stream_json_lines/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/strict_content_type/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/strict_content_type/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/sub_applications/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/sub_applications/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/templates/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/templates/static/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/templates/static/styles.css +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/templates/templates/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/templates/templates/item.html +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/templates/templates/item_path.html +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/templates/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/templates/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/using_request_directly/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/using_request_directly/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/websockets_/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/websockets_/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/websockets_/tutorial002_an_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/websockets_/tutorial002_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/websockets_/tutorial003_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/wsgi/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/docs_src/wsgi/tutorial001_py310.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/.agents/skills/fastapi/SKILL.md +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/.agents/skills/fastapi/references/dependencies.md +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/.agents/skills/fastapi/references/other-tools.md +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/.agents/skills/fastapi/references/path-operations.md +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/.agents/skills/fastapi/references/pydantic.md +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/.agents/skills/fastapi/references/responses.md +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/.agents/skills/fastapi/references/streaming.md +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/__main__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/_compat/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/_compat/shared.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/_compat/v2.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/applications.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/background.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/cli.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/concurrency.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/datastructures.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/dependencies/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/dependencies/models.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/encoders.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/exception_handlers.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/exceptions.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/logger.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/middleware/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/middleware/asyncexitstack.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/middleware/cors.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/middleware/gzip.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/middleware/httpsredirect.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/middleware/trustedhost.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/middleware/wsgi.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/openapi/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/openapi/constants.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/openapi/docs.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/openapi/models.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/param_functions.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/params.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/py.typed +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/requests.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/responses.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/routing.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/security/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/security/api_key.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/security/base.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/security/http.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/security/oauth2.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/security/open_id_connect_url.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/security/utils.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/sse.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/staticfiles.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/telemetry/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/telemetry/_api.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/telemetry/_asgi.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/telemetry/_runtime.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/templating.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/testclient.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/types.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/utils.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/fastapi/websockets.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/add_latest_release_date.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/deploy_docs_status.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/doc_parsing_utils.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/docs.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/format.sh +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/general-llm-prompt.md +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/lint.sh +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/playwright/cookie_param_models/image01.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/playwright/header_param_models/image01.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/playwright/json_base64_bytes/image01.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/playwright/query_param_models/image01.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/playwright/request_form_models/image01.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/playwright/separate_openapi_schemas/image01.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/playwright/separate_openapi_schemas/image02.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/playwright/separate_openapi_schemas/image03.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/playwright/separate_openapi_schemas/image04.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/playwright/separate_openapi_schemas/image05.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/playwright/sql_databases/image01.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/playwright/sql_databases/image02.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/prepare_release.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/sponsors.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/test-cov-html.sh +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/test-cov.sh +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/test.sh +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/tests/test_translation_fixer/conftest.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/tests/test_translation_fixer/test_code_blocks/data/en_doc.md +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/tests/test_translation_fixer/test_code_blocks/data/translated_doc_lines_number_gt.md +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/tests/test_translation_fixer/test_code_blocks/data/translated_doc_lines_number_lt.md +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/tests/test_translation_fixer/test_code_blocks/data/translated_doc_mermaid_not_translated.md +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/tests/test_translation_fixer/test_code_blocks/data/translated_doc_mermaid_translated.md +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/tests/test_translation_fixer/test_code_blocks/data/translated_doc_number_gt.md +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/tests/test_translation_fixer/test_code_blocks/data/translated_doc_number_lt.md +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/tests/test_translation_fixer/test_code_blocks/data/translated_doc_wrong_lang_code.md +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/tests/test_translation_fixer/test_code_blocks/data/translated_doc_wrong_lang_code_2.md +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/tests/test_translation_fixer/test_code_blocks/test_code_blocks_lines_number_mismatch.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/tests/test_translation_fixer/test_code_blocks/test_code_blocks_mermaid.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/tests/test_translation_fixer/test_code_blocks/test_code_blocks_number_mismatch.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/tests/test_translation_fixer/test_code_blocks/test_code_blocks_wrong_lang_code.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/tests/test_translation_fixer/test_code_includes/data/en_doc.md +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/tests/test_translation_fixer/test_code_includes/data/translated_doc_number_gt.md +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/tests/test_translation_fixer/test_code_includes/data/translated_doc_number_lt.md +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/tests/test_translation_fixer/test_code_includes/test_number_mismatch.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/tests/test_translation_fixer/test_complex_doc/data/en_doc.md +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/tests/test_translation_fixer/test_complex_doc/data/translated_doc.md +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/tests/test_translation_fixer/test_complex_doc/data/translated_doc_expected.md +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/tests/test_translation_fixer/test_complex_doc/test_compex_doc.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/tests/test_translation_fixer/test_header_permalinks/data/en_doc.md +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/tests/test_translation_fixer/test_header_permalinks/data/translated_doc_level_mismatch_1.md +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/tests/test_translation_fixer/test_header_permalinks/data/translated_doc_level_mismatch_2.md +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/tests/test_translation_fixer/test_header_permalinks/data/translated_doc_number_gt.md +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/tests/test_translation_fixer/test_header_permalinks/data/translated_doc_number_lt.md +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/tests/test_translation_fixer/test_header_permalinks/test_header_level_mismatch.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/tests/test_translation_fixer/test_header_permalinks/test_header_number_mismatch.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/tests/test_translation_fixer/test_html_links/data/en_doc.md +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/tests/test_translation_fixer/test_html_links/data/translated_doc_number_gt.md +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/tests/test_translation_fixer/test_html_links/data/translated_doc_number_lt.md +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/tests/test_translation_fixer/test_html_links/test_html_links_number_mismatch.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/tests/test_translation_fixer/test_markdown_links/data/en_doc.md +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/tests/test_translation_fixer/test_markdown_links/data/translated_doc.md +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/tests/test_translation_fixer/test_markdown_links/data/translated_doc_number_gt.md +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/tests/test_translation_fixer/test_markdown_links/data/translated_doc_number_lt.md +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/tests/test_translation_fixer/test_markdown_links/test_mkd_links_number_mismatch.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/topic_repos.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/translate.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/translation_fixer.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/scripts/translation_git.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/benchmarks/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/benchmarks/test_general_performance.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/benchmarks/test_openapi.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/benchmarks/utils.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/forward_reference_type.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/main.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/memory_benchmarks/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/memory_benchmarks/test_dependency_graph.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/memory_benchmarks/test_openapi.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/memory_benchmarks/test_route_dependency_graph.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_additional_properties.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_additional_properties_bool.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_additional_response_extra.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_additional_responses_bad.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_additional_responses_custom_model_in_callback.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_additional_responses_custom_validationerror.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_additional_responses_default_validationerror.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_additional_responses_response_class.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_additional_responses_router.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_additional_responses_union_duplicate_anyof.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_allow_inf_nan_in_enforcing.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_ambiguous_params.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_annotated.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_application.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_arbitrary_types.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_body_alias_choices.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_callable_endpoint.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_compat.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_computed_fields.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_custom_middleware_exception.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_custom_route_class.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_custom_schema_fields.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_custom_swagger_ui_redirect.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_datastructures.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_datetime_custom_encoder.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_default_response_class.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_default_response_class_router.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_dependencies_utils.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_dependency_after_yield_raise.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_dependency_after_yield_streaming.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_dependency_after_yield_websockets.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_dependency_cache.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_dependency_class.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_dependency_contextmanager.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_dependency_contextvars.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_dependency_duplicates.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_dependency_models.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_dependency_overrides.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_dependency_paramless.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_dependency_partial.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_dependency_pep695.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_dependency_security_overrides.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_dependency_wrapped.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_dependency_yield_except_httpexception.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_dependency_yield_scope.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_dependency_yield_scope_websockets.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_depends_hashable.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_deprecated_responses.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_dump_json_fast_path.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_duplicate_models_openapi.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_empty_router.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_enforce_once_required_parameter.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_exception_handlers.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_extra_routes.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_fastapi_cli.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_file_and_form_order_issue_9116.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_filter_pydantic_sub_model_pv2.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_form_default.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_forms_from_non_typing_sequences.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_forms_multiple_models.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_forms_single_model.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_forms_single_param.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_frontend.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_generate_unique_id_function.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_generic_parameterless_depends.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_get_model_definitions_formfeed_escape.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_get_request_body.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_header_cookie_alias_choices.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_http_connection_injection.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_include_route.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_include_router_defaults_overrides.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_infer_param_optionality.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_inherited_custom_class.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_invalid_path_param.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_invalid_sequence_param.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_json_type.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_jsonable_encoder.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_list_bytes_file_order_preserved_issue_14811.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_local_docs.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_modules_same_name_body/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_modules_same_name_body/app/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_modules_same_name_body/app/a.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_modules_same_name_body/app/b.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_modules_same_name_body/app/main.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_modules_same_name_body/test_main.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_multi_body_errors.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_multi_query_errors.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_multipart_installation.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_multiple_parameter_models.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_nested_annotated_in_sequence.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_no_schema_split.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_no_swagger_ui_redirect.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_openapi_cache_root_path.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_openapi_examples.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_openapi_model_description_trim_on_formfeed.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_openapi_query_parameter_extension.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_openapi_route_extensions.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_openapi_schema_type.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_openapi_separate_input_output_schemas.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_openapi_servers.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_operations_signatures.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_optional_file_list.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_orjson_response_class.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_param_class.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_param_in_path_and_dependency.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_param_include_in_schema.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_params_repr.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_path.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_path_alias_choices.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_prepare_release.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_put_no_body.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_pydantic_v1_error.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_pydanticv2_dataclasses_uuid_stringified_annotations.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_query.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_query_alias_choices.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_query_cookie_header_model_extra_params.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_read_with_orm_mode.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_regex_deprecated_body.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_regex_deprecated_params.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_repeated_cookie_headers.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_repeated_dependency_schema.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_repeated_parameter_alias.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_body_parameters_media_type.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_param_model_by_alias.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_body/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_body/test_list.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_body/test_nullable_and_defaults.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_body/test_optional_list.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_body/test_optional_str.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_body/test_required_str.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_body/utils.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_cookie/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_cookie/test_list.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_cookie/test_optional_list.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_cookie/test_optional_str.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_cookie/test_required_str.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_default_validation.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_field_metadata.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_field_options.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_file/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_file/test_list.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_file/test_nullable_and_defaults.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_file/test_optional.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_file/test_optional_list.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_file/test_required.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_file/utils.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_form/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_form/test_list.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_form/test_nullable_and_defaults.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_form/test_optional_list.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_form/test_optional_str.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_form/test_required_str.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_form/utils.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_header/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_header/test_list.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_header/test_nullable_and_defaults.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_header/test_optional_list.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_header/test_optional_str.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_header/test_required_str.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_nullable_and_defaults.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_path/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_path/test_list.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_path/test_optional_list.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_path/test_optional_str.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_path/test_required_str.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_query/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_query/test_list.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_query/test_optional_list.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_query/test_optional_str.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_request_params/test_query/test_required_str.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_required_noneable.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_response_by_alias.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_response_change_status_code.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_response_class_no_mediatype.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_response_code_no_body.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_response_dependency.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_response_model_as_return_annotation.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_response_model_data_filter.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_response_model_data_filter_no_inheritance.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_response_model_default_factory.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_response_model_include_exclude.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_response_model_invalid.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_response_model_sub_types.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_response_set_response_code_empty.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_return_none_stringified_annotations.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_route_handler_wrapping.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_route_scope.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_router_circular_import.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_router_events.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_router_include_context.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_router_prefix_with_template.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_router_redirect_slashes.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_schema_compat_pydantic_v2.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_schema_extra_examples.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_schema_ref_pydantic_v2.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_security_api_key_cookie.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_security_api_key_cookie_description.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_security_api_key_cookie_optional.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_security_api_key_header.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_security_api_key_header_description.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_security_api_key_header_optional.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_security_api_key_query.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_security_api_key_query_description.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_security_api_key_query_optional.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_security_http_base.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_security_http_base_description.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_security_http_base_optional.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_security_http_basic_optional.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_security_http_basic_realm.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_security_http_basic_realm_description.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_security_http_bearer.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_security_http_bearer_description.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_security_http_bearer_optional.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_security_http_digest.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_security_http_digest_description.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_security_http_digest_optional.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_security_oauth2.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_security_oauth2_authorization_code_bearer.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_security_oauth2_authorization_code_bearer_description.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_security_oauth2_authorization_code_bearer_scopes_openapi.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_security_oauth2_authorization_code_bearer_scopes_openapi_simple.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_security_oauth2_optional.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_security_oauth2_optional_description.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_security_oauth2_password_bearer_optional.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_security_oauth2_password_bearer_optional_description.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_security_openid_connect.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_security_openid_connect_description.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_security_openid_connect_optional.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_security_scopes.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_security_scopes_dont_propagate.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_security_scopes_sub_dependency.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_security_websockets.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_serialize_response.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_serialize_response_dataclass.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_serialize_response_model.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_skip_defaults.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_sse.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_starlette_exception.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_starlette_urlconvertors.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_stream_bare_type.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_stream_cancellation.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_stream_json_validation_error.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_stream_non_finite_floats.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_stream_status_code.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_strict_content_type_app_level.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_strict_content_type_nested.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_strict_content_type_router_level.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_stringified_annotation_dependency.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_stringified_annotation_dependency_py314.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_stringified_annotations_simple.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_sub_callbacks.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_swagger_ui_escape.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_swagger_ui_init_oauth.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_telemetry/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_telemetry/_otlp.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_telemetry/_subprocess.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_telemetry/conftest.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_telemetry/test_background.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_telemetry/test_data.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_telemetry/test_environment_integrations.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_telemetry/test_exceptions.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_telemetry/test_http.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_telemetry/test_integrations.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_telemetry/test_native_integrations.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_telemetry/test_operations.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_telemetry/test_runtime.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_telemetry/test_semantic_conventions.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_telemetry/test_tracer.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_telemetry/test_websockets.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_top_level_security_scheme_in_openapi.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_translate.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tuples.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_additional_responses/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_additional_responses/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_additional_responses/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_additional_responses/test_tutorial003.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_additional_responses/test_tutorial004.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_additional_status_codes/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_additional_status_codes/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_advanced_middleware/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_advanced_middleware/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_advanced_middleware/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_advanced_middleware/test_tutorial003.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_async_tests/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_async_tests/test_main_a.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_authentication_error_status_code/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_authentication_error_status_code/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_background_tasks/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_background_tasks/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_background_tasks/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_behind_a_proxy/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_behind_a_proxy/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_behind_a_proxy/test_tutorial001_01.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_behind_a_proxy/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_behind_a_proxy/test_tutorial003.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_behind_a_proxy/test_tutorial004.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_bigger_applications/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_bigger_applications/test_main.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_body/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_body/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_body/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_body/test_tutorial003.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_body/test_tutorial004.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_body_fields/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_body_fields/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_body_multiple_params/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_body_multiple_params/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_body_multiple_params/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_body_multiple_params/test_tutorial003.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_body_multiple_params/test_tutorial004.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_body_multiple_params/test_tutorial005.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_body_nested_models/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_body_nested_models/test_tutorial001_tutorial002_tutorial003.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_body_nested_models/test_tutorial004.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_body_nested_models/test_tutorial005.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_body_nested_models/test_tutorial006.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_body_nested_models/test_tutorial007.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_body_nested_models/test_tutorial008.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_body_nested_models/test_tutorial009.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_body_updates/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_body_updates/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_body_updates/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_conditional_openapi/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_conditional_openapi/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_configure_swagger_ui/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_configure_swagger_ui/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_configure_swagger_ui/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_configure_swagger_ui/test_tutorial003.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_cookie_param_models/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_cookie_param_models/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_cookie_param_models/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_cookie_params/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_cookie_params/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_cors/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_cors/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_custom_docs_ui/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_custom_docs_ui/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_custom_docs_ui/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_custom_request_and_route/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_custom_request_and_route/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_custom_request_and_route/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_custom_request_and_route/test_tutorial003.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_custom_response/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_custom_response/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_custom_response/test_tutorial001b.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_custom_response/test_tutorial002_tutorial003_tutorial004.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_custom_response/test_tutorial005.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_custom_response/test_tutorial006.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_custom_response/test_tutorial006b.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_custom_response/test_tutorial006c.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_custom_response/test_tutorial007.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_custom_response/test_tutorial008.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_custom_response/test_tutorial009.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_custom_response/test_tutorial009b.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_custom_response/test_tutorial009c.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_custom_response/test_tutorial010.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_dataclasses/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_dataclasses/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_dataclasses/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_dataclasses/test_tutorial003.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_debugging/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_debugging/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_dependencies/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_dependencies/test_tutorial001_tutorial001_02.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_dependencies/test_tutorial002_tutorial003_tutorial004.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_dependencies/test_tutorial005.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_dependencies/test_tutorial006.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_dependencies/test_tutorial007.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_dependencies/test_tutorial008.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_dependencies/test_tutorial008b.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_dependencies/test_tutorial008c.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_dependencies/test_tutorial008d.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_dependencies/test_tutorial008e.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_dependencies/test_tutorial010.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_dependencies/test_tutorial011.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_dependencies/test_tutorial012.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_encoder/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_encoder/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_events/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_events/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_events/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_events/test_tutorial003.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_extending_openapi/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_extending_openapi/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_extra_data_types/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_extra_data_types/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_extra_models/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_extra_models/test_tutorial001_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_extra_models/test_tutorial003.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_extra_models/test_tutorial004.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_extra_models/test_tutorial005.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_first_steps/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_first_steps/test_tutorial001_tutorial002_tutorial003.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_generate_clients/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_generate_clients/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_generate_clients/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_generate_clients/test_tutorial003.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_generate_clients/test_tutorial004.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_graphql/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_graphql/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_handling_errors/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_handling_errors/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_handling_errors/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_handling_errors/test_tutorial003.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_handling_errors/test_tutorial004.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_handling_errors/test_tutorial005.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_handling_errors/test_tutorial006.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_header_param_models/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_header_param_models/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_header_param_models/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_header_param_models/test_tutorial003.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_header_params/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_header_params/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_header_params/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_header_params/test_tutorial003.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_json_base64_bytes/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_json_base64_bytes/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_metadata/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_metadata/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_metadata/test_tutorial001_1.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_metadata/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_metadata/test_tutorial003.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_metadata/test_tutorial004.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_middleware/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_middleware/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_openapi_callbacks/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_openapi_callbacks/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_openapi_webhooks/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_openapi_webhooks/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_opentelemetry/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_opentelemetry/conftest.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_opentelemetry/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_opentelemetry/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_opentelemetry/test_tutorial003.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_path_operation_advanced_configurations/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial003.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial004.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial005.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial006.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial007.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_path_operation_configurations/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_path_operation_configurations/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_path_operation_configurations/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_path_operation_configurations/test_tutorial002b.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_path_operation_configurations/test_tutorial003_tutorial004.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_path_operation_configurations/test_tutorial005.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_path_operation_configurations/test_tutorial006.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_path_params/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_path_params/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_path_params/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_path_params/test_tutorial003.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_path_params/test_tutorial003b.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_path_params/test_tutorial004.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_path_params/test_tutorial005.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_path_params_numeric_validations/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_path_params_numeric_validations/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_path_params_numeric_validations/test_tutorial002_tutorial003.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_path_params_numeric_validations/test_tutorial004.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_path_params_numeric_validations/test_tutorial005.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_path_params_numeric_validations/test_tutorial006.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_python_types/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_python_types/test_tutorial001_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_python_types/test_tutorial003.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_python_types/test_tutorial004.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_python_types/test_tutorial005.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_python_types/test_tutorial006.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_python_types/test_tutorial007.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_python_types/test_tutorial008.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_python_types/test_tutorial008b.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_python_types/test_tutorial009_tutorial009b.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_python_types/test_tutorial010.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_python_types/test_tutorial011.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_python_types/test_tutorial013.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_query_param_models/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_query_param_models/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_query_param_models/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_query_param_models/test_tutorial003.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_query_params/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_query_params/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_query_params/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_query_params/test_tutorial003.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_query_params/test_tutorial004.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_query_params/test_tutorial005.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_query_params/test_tutorial006.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_query_params_str_validations/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_query_params_str_validations/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_query_params_str_validations/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_query_params_str_validations/test_tutorial003.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_query_params_str_validations/test_tutorial004.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_query_params_str_validations/test_tutorial005.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_query_params_str_validations/test_tutorial006.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_query_params_str_validations/test_tutorial006c.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_query_params_str_validations/test_tutorial007.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_query_params_str_validations/test_tutorial008.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_query_params_str_validations/test_tutorial009.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_query_params_str_validations/test_tutorial010.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_query_params_str_validations/test_tutorial011.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_query_params_str_validations/test_tutorial012.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_query_params_str_validations/test_tutorial013.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_query_params_str_validations/test_tutorial014.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_query_params_str_validations/test_tutorial015.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_request_files/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_request_files/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_request_files/test_tutorial001_02.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_request_files/test_tutorial001_03.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_request_files/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_request_files/test_tutorial003.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_request_form_models/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_request_form_models/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_request_form_models/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_request_form_models/test_tutorial003.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_request_form_models/test_tutorial004.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_request_forms/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_request_forms/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_request_forms_and_files/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_request_forms_and_files/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_response_change_status_code/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_response_change_status_code/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_response_cookies/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_response_cookies/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_response_cookies/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_response_directly/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_response_directly/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_response_directly/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_response_headers/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_response_headers/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_response_headers/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_response_model/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_response_model/test_tutorial001_tutorial001_01.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_response_model/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_response_model/test_tutorial003.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_response_model/test_tutorial003_01.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_response_model/test_tutorial003_02.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_response_model/test_tutorial003_03.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_response_model/test_tutorial003_04.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_response_model/test_tutorial003_05.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_response_model/test_tutorial004.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_response_model/test_tutorial005.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_response_model/test_tutorial006.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_response_status_code/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_response_status_code/test_tutorial001_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_schema_extra_example/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_schema_extra_example/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_schema_extra_example/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_schema_extra_example/test_tutorial003.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_schema_extra_example/test_tutorial004.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_schema_extra_example/test_tutorial005.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_security/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_security/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_security/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_security/test_tutorial003.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_security/test_tutorial004.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_security/test_tutorial005.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_security/test_tutorial006.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_security/test_tutorial007.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_separate_openapi_schemas/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_separate_openapi_schemas/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_separate_openapi_schemas/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_server_sent_events/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_server_sent_events/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_server_sent_events/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_server_sent_events/test_tutorial003.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_server_sent_events/test_tutorial004.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_server_sent_events/test_tutorial005.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_settings/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_settings/test_app01.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_settings/test_app02.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_settings/test_app03.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_settings/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_sql_databases/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_sql_databases/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_sql_databases/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_static_files/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_static_files/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_stream_data/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_stream_data/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_stream_data/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_stream_json_lines/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_stream_json_lines/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_strict_content_type/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_strict_content_type/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_sub_applications/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_sub_applications/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_templates/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_templates/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_templates/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_testing/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_testing/test_main_a.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_testing/test_main_b.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_testing/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_testing/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_testing/test_tutorial003.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_testing/test_tutorial004.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_testing_dependencies/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_testing_dependencies/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_using_request_directly/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_using_request_directly/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_websockets/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_websockets/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_websockets/test_tutorial002.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_websockets/test_tutorial003.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_wsgi/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_tutorial/test_wsgi/test_tutorial001.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_typing_python39.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_union_body.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_union_body_discriminator.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_union_body_discriminator_annotated.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_union_form_normalization.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_union_forms.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_union_inherited_body.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_upload_file_read_position.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_validate_response.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_validate_response_dataclass.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_validate_response_recursive/__init__.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_validate_response_recursive/app.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_validate_response_recursive/test_validate_response_recursive.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_validation_error_context.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_webhooks_security.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_wrapped_method_forward_reference.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_ws_dependencies.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/test_ws_router.py +0 -0
- {fastapi-0.158.1 → fastapi-0.159.0}/tests/utils.py +0 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from typing import Annotated
|
|
2
|
+
|
|
3
|
+
from fastapi import Cookie, FastAPI
|
|
4
|
+
from pydantic import BaseModel
|
|
5
|
+
|
|
6
|
+
app = FastAPI()
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class Preferences(BaseModel):
|
|
10
|
+
theme: str
|
|
11
|
+
locale: str
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@app.get("/items/")
|
|
15
|
+
async def read_items(preferences: Annotated[Preferences | None, Cookie()] = None):
|
|
16
|
+
return preferences
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
from fastapi import Cookie, FastAPI
|
|
2
|
+
from pydantic import BaseModel
|
|
3
|
+
|
|
4
|
+
app = FastAPI()
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class Preferences(BaseModel):
|
|
8
|
+
theme: str
|
|
9
|
+
locale: str
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@app.get("/items/")
|
|
13
|
+
async def read_items(preferences: Preferences | None = Cookie(default=None)):
|
|
14
|
+
return preferences
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from typing import Annotated
|
|
2
|
+
|
|
3
|
+
from fastapi import FastAPI, Header
|
|
4
|
+
from pydantic import BaseModel
|
|
5
|
+
|
|
6
|
+
app = FastAPI()
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class ClientHeaders(BaseModel):
|
|
10
|
+
x_client_name: str
|
|
11
|
+
x_client_version: str
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@app.get("/items/")
|
|
15
|
+
async def read_items(client: Annotated[ClientHeaders | None, Header()] = None):
|
|
16
|
+
return client
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
from fastapi import FastAPI, Header
|
|
2
|
+
from pydantic import BaseModel
|
|
3
|
+
|
|
4
|
+
app = FastAPI()
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class ClientHeaders(BaseModel):
|
|
8
|
+
x_client_name: str
|
|
9
|
+
x_client_version: str
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@app.get("/items/")
|
|
13
|
+
async def read_items(client: ClientHeaders | None = Header(default=None)):
|
|
14
|
+
return client
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
from datetime import date
|
|
2
|
+
from typing import Annotated
|
|
3
|
+
|
|
4
|
+
from fastapi import FastAPI, Query
|
|
5
|
+
from pydantic import BaseModel
|
|
6
|
+
|
|
7
|
+
app = FastAPI()
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class DateRange(BaseModel):
|
|
11
|
+
start: date
|
|
12
|
+
end: date
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@app.get("/items/")
|
|
16
|
+
async def read_items(
|
|
17
|
+
limit: int = 10,
|
|
18
|
+
date_range: Annotated[DateRange | None, Query()] = None,
|
|
19
|
+
):
|
|
20
|
+
return {"limit": limit, "date_range": date_range}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
from datetime import date
|
|
2
|
+
|
|
3
|
+
from fastapi import FastAPI, Query
|
|
4
|
+
from pydantic import BaseModel
|
|
5
|
+
|
|
6
|
+
app = FastAPI()
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class DateRange(BaseModel):
|
|
10
|
+
start: date
|
|
11
|
+
end: date
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@app.get("/items/")
|
|
15
|
+
async def read_items(
|
|
16
|
+
limit: int = 10,
|
|
17
|
+
date_range: DateRange | None = Query(default=None),
|
|
18
|
+
):
|
|
19
|
+
return {"limit": limit, "date_range": date_range}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
from typing import Annotated
|
|
2
|
+
|
|
3
|
+
from fastapi import FastAPI, Form
|
|
4
|
+
from pydantic import BaseModel
|
|
5
|
+
|
|
6
|
+
app = FastAPI()
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class Profile(BaseModel):
|
|
10
|
+
name: str
|
|
11
|
+
age: int
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@app.post("/profiles/")
|
|
15
|
+
async def create_profile(
|
|
16
|
+
token: Annotated[str, Form()],
|
|
17
|
+
profile: Annotated[Profile | None, Form()] = None,
|
|
18
|
+
):
|
|
19
|
+
return {"token": token, "profile": profile}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from fastapi import FastAPI, Form
|
|
2
|
+
from pydantic import BaseModel
|
|
3
|
+
|
|
4
|
+
app = FastAPI()
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class Profile(BaseModel):
|
|
8
|
+
name: str
|
|
9
|
+
age: int
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@app.post("/profiles/")
|
|
13
|
+
async def create_profile(
|
|
14
|
+
token: str = Form(),
|
|
15
|
+
profile: Profile | None = Form(default=None),
|
|
16
|
+
):
|
|
17
|
+
return {"token": token, "profile": profile}
|
|
@@ -68,7 +68,7 @@ from fastapi.dependencies.models import (
|
|
|
68
68
|
from fastapi.exceptions import DependencyScopeError
|
|
69
69
|
from fastapi.logger import logger
|
|
70
70
|
from fastapi.security.oauth2 import SecurityScopes
|
|
71
|
-
from fastapi.types import DependencyCacheKey
|
|
71
|
+
from fastapi.types import DependencyCacheKey, UnionType
|
|
72
72
|
from fastapi.utils import create_model_field, get_path_param_names
|
|
73
73
|
from pydantic import (
|
|
74
74
|
AliasChoices,
|
|
@@ -163,13 +163,31 @@ def _get_flat_body_params(dependant: Dependant) -> list[ModelField]:
|
|
|
163
163
|
return body_params
|
|
164
164
|
|
|
165
165
|
|
|
166
|
+
def _get_model_type(annotation: Any) -> type[BaseModel] | None:
|
|
167
|
+
if get_origin(annotation) in (Union, UnionType):
|
|
168
|
+
args = get_args(annotation)
|
|
169
|
+
if len(args) == 2 and type(None) in args:
|
|
170
|
+
annotation = next(arg for arg in args if arg is not type(None))
|
|
171
|
+
if lenient_issubclass(annotation, BaseModel):
|
|
172
|
+
return annotation
|
|
173
|
+
return None
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
def _get_param_model(field: ModelField) -> type[BaseModel] | None:
|
|
177
|
+
annotation = field.field_info.annotation
|
|
178
|
+
if isinstance(field.field_info, (params.Query, params.Header, params.Cookie)):
|
|
179
|
+
annotation = _get_model_type(annotation)
|
|
180
|
+
if lenient_issubclass(annotation, BaseModel) and not _is_json_field(field):
|
|
181
|
+
return annotation
|
|
182
|
+
return None
|
|
183
|
+
|
|
184
|
+
|
|
166
185
|
def _get_flat_fields_from_params(fields: Sequence[ModelField]) -> list[ModelField]:
|
|
167
186
|
flat_fields: list[ModelField] = []
|
|
168
187
|
for field in fields:
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
flat_fields.extend(get_cached_model_fields(field.field_info.annotation))
|
|
188
|
+
model = _get_form_model(field) or _get_param_model(field)
|
|
189
|
+
if model is not None:
|
|
190
|
+
flat_fields.extend(get_cached_model_fields(model))
|
|
173
191
|
else:
|
|
174
192
|
flat_fields.append(field)
|
|
175
193
|
return flat_fields
|
|
@@ -207,7 +225,7 @@ def _get_request_param_names(
|
|
|
207
225
|
for field in fields:
|
|
208
226
|
model_fields = (
|
|
209
227
|
[field]
|
|
210
|
-
if location == "form" and
|
|
228
|
+
if location == "form" and _get_form_model(field) is None
|
|
211
229
|
else _get_flat_fields_from_params([field])
|
|
212
230
|
)
|
|
213
231
|
for param in model_fields:
|
|
@@ -638,7 +656,7 @@ def analyze_param(
|
|
|
638
656
|
assert (
|
|
639
657
|
is_scalar_field(field)
|
|
640
658
|
or field_annotation_is_scalar_sequence(field.field_info.annotation)
|
|
641
|
-
or
|
|
659
|
+
or _get_model_type(field.field_info.annotation) is not None
|
|
642
660
|
), f"Query parameter {param_name!r} must be one of the supported types"
|
|
643
661
|
|
|
644
662
|
return ParamDetails(type_annotation=type_annotation, depends=depends, field=field)
|
|
@@ -900,10 +918,10 @@ def _get_multidict_value(
|
|
|
900
918
|
|
|
901
919
|
def _request_param_model_to_args(
|
|
902
920
|
model_field: ModelField,
|
|
921
|
+
model: type[BaseModel],
|
|
903
922
|
received_params: Mapping[str, Any],
|
|
904
923
|
known_param_names: set[str],
|
|
905
924
|
) -> tuple[Any, list[Any]]:
|
|
906
|
-
model = cast(type[BaseModel], model_field.field_info.annotation)
|
|
907
925
|
fields_to_extract = get_cached_model_fields(model)
|
|
908
926
|
default_convert_underscores = getattr(
|
|
909
927
|
model_field.field_info, "convert_underscores", True
|
|
@@ -960,8 +978,14 @@ def _request_param_model_to_args(
|
|
|
960
978
|
field_info = model_field.field_info
|
|
961
979
|
assert isinstance(field_info, params.Param), "Params must be subclasses of Param"
|
|
962
980
|
loc: tuple[str, ...] = (field_info.in_.value,)
|
|
981
|
+
value = params_to_process
|
|
982
|
+
if field_info.annotation is not model and not (
|
|
983
|
+
own_names.intersection(received_params)
|
|
984
|
+
or (model.model_config.get("extra") in ("allow", "forbid") and value)
|
|
985
|
+
):
|
|
986
|
+
value = Undefined
|
|
963
987
|
v_, errors_ = _validate_value_with_model_field(
|
|
964
|
-
field=model_field, value=
|
|
988
|
+
field=model_field, value=value, values={}, loc=loc
|
|
965
989
|
)
|
|
966
990
|
if header_aliases and model.model_config.get("loc_by_alias", True):
|
|
967
991
|
# Report the header names without changing model aliases or schema.
|
|
@@ -989,11 +1013,9 @@ def request_params_to_args(
|
|
|
989
1013
|
if known_param_names is None:
|
|
990
1014
|
known_param_names = set()
|
|
991
1015
|
for field in fields:
|
|
992
|
-
if
|
|
993
|
-
field.field_info.annotation, BaseModel
|
|
994
|
-
) and not _is_json_field(field):
|
|
1016
|
+
if (model := _get_param_model(field)) is not None:
|
|
995
1017
|
v_, errors_ = _request_param_model_to_args(
|
|
996
|
-
field, received_params, known_param_names
|
|
1018
|
+
field, model, received_params, known_param_names
|
|
997
1019
|
)
|
|
998
1020
|
else:
|
|
999
1021
|
aliases = _get_param_aliases(field)
|
|
@@ -1018,8 +1040,6 @@ def request_params_to_args(
|
|
|
1018
1040
|
|
|
1019
1041
|
def is_union_of_base_models(field_type: Any) -> bool:
|
|
1020
1042
|
"""Check if field type is a Union where all members are BaseModel subclasses."""
|
|
1021
|
-
from fastapi.types import UnionType
|
|
1022
|
-
|
|
1023
1043
|
origin = get_origin(field_type)
|
|
1024
1044
|
|
|
1025
1045
|
# Check if it's a Union type (covers both typing.Union and types.UnionType in Python 3.10+)
|
|
@@ -1078,13 +1098,14 @@ def _normalize_form_model(value: Any, *, model: type[BaseModel]) -> Any:
|
|
|
1078
1098
|
return value
|
|
1079
1099
|
|
|
1080
1100
|
|
|
1081
|
-
def
|
|
1082
|
-
|
|
1083
|
-
isinstance(field.field_info, params.Form)
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1101
|
+
def _get_form_model(field: ModelField) -> type[BaseModel] | None:
|
|
1102
|
+
if (
|
|
1103
|
+
not isinstance(field.field_info, params.Form)
|
|
1104
|
+
or field.field_info.embed
|
|
1105
|
+
or _is_json_field(field)
|
|
1106
|
+
):
|
|
1107
|
+
return None
|
|
1108
|
+
return _get_model_type(field.field_info.annotation)
|
|
1088
1109
|
|
|
1089
1110
|
|
|
1090
1111
|
def _should_embed_body_fields(fields: list[ModelField]) -> bool:
|
|
@@ -1098,8 +1119,8 @@ def _should_embed_body_fields(fields: list[ModelField]) -> bool:
|
|
|
1098
1119
|
return True
|
|
1099
1120
|
first_field = fields[0]
|
|
1100
1121
|
# Dependencies can use the same parameter name for different form models.
|
|
1101
|
-
if
|
|
1102
|
-
|
|
1122
|
+
if _get_form_model(first_field) is not None and any(
|
|
1123
|
+
_get_form_model(field) is None
|
|
1103
1124
|
or field.field_info.annotation is not first_field.field_info.annotation
|
|
1104
1125
|
for field in fields[1:]
|
|
1105
1126
|
):
|
|
@@ -1112,6 +1133,7 @@ def _should_embed_body_fields(fields: list[ModelField]) -> bool:
|
|
|
1112
1133
|
if (
|
|
1113
1134
|
isinstance(first_field.field_info, params.Form)
|
|
1114
1135
|
and not lenient_issubclass(first_field.field_info.annotation, BaseModel)
|
|
1136
|
+
and _get_form_model(first_field) is None
|
|
1115
1137
|
and not is_union_of_base_models(first_field.field_info.annotation)
|
|
1116
1138
|
):
|
|
1117
1139
|
return True
|
|
@@ -1201,6 +1223,32 @@ async def _extract_form_body(
|
|
|
1201
1223
|
yield alias, value, field
|
|
1202
1224
|
|
|
1203
1225
|
|
|
1226
|
+
async def _extract_form_model(
|
|
1227
|
+
field: ModelField,
|
|
1228
|
+
model: type[BaseModel],
|
|
1229
|
+
received_body: FormData,
|
|
1230
|
+
known_param_names: set[str] | None,
|
|
1231
|
+
) -> Any:
|
|
1232
|
+
model_fields = get_cached_model_fields(model)
|
|
1233
|
+
if field.field_info.annotation is not model:
|
|
1234
|
+
# Check raw keys before empty fields are removed or checkboxes inferred.
|
|
1235
|
+
own_names = {
|
|
1236
|
+
alias for item in model_fields for alias, _ in _get_param_aliases(item)
|
|
1237
|
+
}
|
|
1238
|
+
supplied = own_names.intersection(received_body)
|
|
1239
|
+
extras = received_body.keys() - (known_param_names or own_names)
|
|
1240
|
+
if not supplied and (
|
|
1241
|
+
model.model_config.get("extra") not in ("allow", "forbid") or not extras
|
|
1242
|
+
):
|
|
1243
|
+
return Undefined
|
|
1244
|
+
return {
|
|
1245
|
+
alias: item
|
|
1246
|
+
async for alias, item, _ in _extract_form_body(
|
|
1247
|
+
model_fields, received_body, known_param_names
|
|
1248
|
+
)
|
|
1249
|
+
}
|
|
1250
|
+
|
|
1251
|
+
|
|
1204
1252
|
async def request_body_to_args(
|
|
1205
1253
|
body_fields: list[ModelField],
|
|
1206
1254
|
received_body: Any,
|
|
@@ -1214,21 +1262,16 @@ async def request_body_to_args(
|
|
|
1214
1262
|
len(body_fields) == 1
|
|
1215
1263
|
and not embed_body_fields
|
|
1216
1264
|
and not _should_embed_body_fields(body_fields)
|
|
1265
|
+
and _get_form_model(body_fields[0]) is None
|
|
1217
1266
|
)
|
|
1218
1267
|
first_field = body_fields[0]
|
|
1219
1268
|
body_to_process = received_body
|
|
1220
1269
|
form_values: dict[str, tuple[str, Any]] = {}
|
|
1221
1270
|
|
|
1222
|
-
fields_to_extract = [field for field in body_fields if not _is_form_model(field)]
|
|
1223
|
-
|
|
1224
|
-
if (
|
|
1225
|
-
single_not_embedded_field
|
|
1226
|
-
and lenient_issubclass(first_field.field_info.annotation, BaseModel)
|
|
1227
|
-
and isinstance(received_body, FormData)
|
|
1228
|
-
):
|
|
1229
|
-
fields_to_extract = get_cached_model_fields(first_field.field_info.annotation)
|
|
1230
|
-
|
|
1231
1271
|
if isinstance(received_body, FormData):
|
|
1272
|
+
fields_to_extract = [
|
|
1273
|
+
field for field in body_fields if _get_form_model(field) is None
|
|
1274
|
+
]
|
|
1232
1275
|
if single_not_embedded_field and is_union_of_base_models(
|
|
1233
1276
|
first_field.field_info.annotation
|
|
1234
1277
|
):
|
|
@@ -1239,9 +1282,6 @@ async def request_body_to_args(
|
|
|
1239
1282
|
async for alias, value, field in _extract_form_body(
|
|
1240
1283
|
fields_to_extract,
|
|
1241
1284
|
received_body,
|
|
1242
|
-
known_param_names
|
|
1243
|
-
if single_not_embedded_field and _is_form_model(first_field)
|
|
1244
|
-
else None,
|
|
1245
1285
|
):
|
|
1246
1286
|
if single_not_embedded_field:
|
|
1247
1287
|
body_to_process[alias] = value
|
|
@@ -1259,18 +1299,14 @@ async def request_body_to_args(
|
|
|
1259
1299
|
aliases = [alias for alias, _ in _get_param_aliases(field)]
|
|
1260
1300
|
loc = ("body", aliases[0])
|
|
1261
1301
|
value = Undefined
|
|
1262
|
-
if
|
|
1302
|
+
if (
|
|
1303
|
+
isinstance(received_body, FormData)
|
|
1304
|
+
and (model := _get_form_model(field)) is not None
|
|
1305
|
+
):
|
|
1263
1306
|
# Extract each model independently from the original form values.
|
|
1264
|
-
value =
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
get_cached_model_fields(
|
|
1268
|
-
cast(type[BaseModel], field.field_info.annotation)
|
|
1269
|
-
),
|
|
1270
|
-
received_body,
|
|
1271
|
-
known_param_names,
|
|
1272
|
-
)
|
|
1273
|
-
}
|
|
1307
|
+
value = await _extract_form_model(
|
|
1308
|
+
field, model, received_body, known_param_names
|
|
1309
|
+
)
|
|
1274
1310
|
loc = ("body",)
|
|
1275
1311
|
elif isinstance(received_body, FormData):
|
|
1276
1312
|
alias, value = form_values.get(field.name, (aliases[0], Undefined))
|
|
@@ -1298,6 +1334,69 @@ async def request_body_to_args(
|
|
|
1298
1334
|
return values, errors
|
|
1299
1335
|
|
|
1300
1336
|
|
|
1337
|
+
def _apply_form_model_optionality(
|
|
1338
|
+
body_params: list[ModelField], schema: dict[str, Any]
|
|
1339
|
+
) -> None:
|
|
1340
|
+
required: set[str] = set()
|
|
1341
|
+
conditions: list[dict[str, Any]] = []
|
|
1342
|
+
for field in body_params:
|
|
1343
|
+
model = _get_form_model(field)
|
|
1344
|
+
model_fields = get_cached_model_fields(model) if model is not None else [field]
|
|
1345
|
+
aliases = [
|
|
1346
|
+
[alias for alias, _ in _get_param_aliases(item)] for item in model_fields
|
|
1347
|
+
]
|
|
1348
|
+
if model is None or field.field_info.annotation is model:
|
|
1349
|
+
required.update(
|
|
1350
|
+
names[0]
|
|
1351
|
+
for names, item in zip(aliases, model_fields, strict=True)
|
|
1352
|
+
if item.field_info.is_required()
|
|
1353
|
+
)
|
|
1354
|
+
continue
|
|
1355
|
+
|
|
1356
|
+
required_names = []
|
|
1357
|
+
required_choices = []
|
|
1358
|
+
for names, item in zip(aliases, model_fields, strict=True):
|
|
1359
|
+
if item.field_info.is_required():
|
|
1360
|
+
if len(names) == 1:
|
|
1361
|
+
required_names.append(names[0])
|
|
1362
|
+
else:
|
|
1363
|
+
required_choices.append(
|
|
1364
|
+
{"anyOf": [{"required": [name]} for name in names]}
|
|
1365
|
+
)
|
|
1366
|
+
requirements: dict[str, Any] = {}
|
|
1367
|
+
if required_names:
|
|
1368
|
+
requirements["required"] = required_names
|
|
1369
|
+
if required_choices:
|
|
1370
|
+
requirements["allOf"] = required_choices
|
|
1371
|
+
if field.field_info.is_required():
|
|
1372
|
+
required.update(required_names)
|
|
1373
|
+
conditions.extend(required_choices)
|
|
1374
|
+
if requirements:
|
|
1375
|
+
continue
|
|
1376
|
+
elif not requirements:
|
|
1377
|
+
continue
|
|
1378
|
+
|
|
1379
|
+
# An optional group is either absent or has all its required fields.
|
|
1380
|
+
names = list(dict.fromkeys(name for choices in aliases for name in choices))
|
|
1381
|
+
absent: dict[str, Any] = {}
|
|
1382
|
+
if names:
|
|
1383
|
+
absent["not"] = {"anyOf": [{"required": [name]} for name in names]}
|
|
1384
|
+
if model.model_config.get("extra") == "allow":
|
|
1385
|
+
absent["properties"] = {
|
|
1386
|
+
name: {} for name in schema["properties"] if name not in names
|
|
1387
|
+
}
|
|
1388
|
+
absent["additionalProperties"] = False
|
|
1389
|
+
if field.field_info.is_required():
|
|
1390
|
+
conditions.append({"not": absent})
|
|
1391
|
+
else:
|
|
1392
|
+
conditions.append({"anyOf": [absent, requirements]})
|
|
1393
|
+
schema.pop("required", None)
|
|
1394
|
+
if required:
|
|
1395
|
+
schema["required"] = [name for name in schema["properties"] if name in required]
|
|
1396
|
+
if conditions:
|
|
1397
|
+
schema["allOf"] = conditions
|
|
1398
|
+
|
|
1399
|
+
|
|
1301
1400
|
def _get_body_field(
|
|
1302
1401
|
*, body_params: list[ModelField], name: str, embed_body_fields: bool
|
|
1303
1402
|
) -> ModelField | None:
|
|
@@ -1314,18 +1413,22 @@ def _get_body_field(
|
|
|
1314
1413
|
if not body_params:
|
|
1315
1414
|
return None
|
|
1316
1415
|
first_param = body_params[0]
|
|
1317
|
-
|
|
1416
|
+
has_nullable_form_model = any(
|
|
1417
|
+
(model := _get_form_model(field)) is not None
|
|
1418
|
+
and field.field_info.annotation is not model
|
|
1419
|
+
for field in body_params
|
|
1420
|
+
)
|
|
1421
|
+
if not embed_body_fields and not has_nullable_form_model:
|
|
1318
1422
|
return first_param
|
|
1319
1423
|
model_name = "Body_" + name
|
|
1320
1424
|
fields = body_params
|
|
1321
1425
|
config: ConfigDict | None = None
|
|
1322
|
-
if any(
|
|
1426
|
+
if any(_get_form_model(field) is not None for field in body_params):
|
|
1323
1427
|
fields_by_alias: dict[str, ModelField] = {}
|
|
1324
1428
|
config = {}
|
|
1325
1429
|
for field in body_params:
|
|
1326
1430
|
model_fields = [field]
|
|
1327
|
-
if
|
|
1328
|
-
model = cast(type[BaseModel], field.field_info.annotation)
|
|
1431
|
+
if (model := _get_form_model(field)) is not None:
|
|
1329
1432
|
model_fields = get_cached_model_fields(model)
|
|
1330
1433
|
extra = model.model_config.get("extra")
|
|
1331
1434
|
if extra in ("allow", "forbid") and config.get("extra") != "forbid":
|
|
@@ -1351,7 +1454,15 @@ def _get_body_field(
|
|
|
1351
1454
|
field_info=field_info,
|
|
1352
1455
|
)
|
|
1353
1456
|
fields = list(fields_by_alias.values())
|
|
1457
|
+
if has_nullable_form_model:
|
|
1458
|
+
config["json_schema_extra"] = partial(
|
|
1459
|
+
_apply_form_model_optionality, body_params
|
|
1460
|
+
)
|
|
1354
1461
|
BodyModel = create_body_model(fields=fields, model_name=model_name, config=config)
|
|
1462
|
+
if not embed_body_fields:
|
|
1463
|
+
field_info = copy(first_param.field_info)
|
|
1464
|
+
field_info.annotation = BodyModel
|
|
1465
|
+
return ModelField(name=first_param.name, field_info=field_info)
|
|
1355
1466
|
required = any(True for f in body_params if f.field_info.is_required())
|
|
1356
1467
|
BodyFieldInfo_kwargs: dict[str, Any] = {
|
|
1357
1468
|
"annotation": BodyModel,
|
|
@@ -27,6 +27,7 @@ from fastapi.dependencies.models import (
|
|
|
27
27
|
from fastapi.dependencies.utils import (
|
|
28
28
|
_get_flat_fields_from_params,
|
|
29
29
|
_get_param_aliases,
|
|
30
|
+
_get_param_model,
|
|
30
31
|
get_flat_params,
|
|
31
32
|
)
|
|
32
33
|
from fastapi.encoders import jsonable_encoder
|
|
@@ -175,6 +176,12 @@ def _get_openapi_operation_parameters(
|
|
|
175
176
|
for parent in param_group:
|
|
176
177
|
if not getattr(parent.field_info, "include_in_schema", True):
|
|
177
178
|
continue
|
|
179
|
+
model = _get_param_model(parent)
|
|
180
|
+
optional_model = (
|
|
181
|
+
model is not None
|
|
182
|
+
and parent.field_info.annotation is not model
|
|
183
|
+
and not parent.field_info.is_required()
|
|
184
|
+
)
|
|
178
185
|
for param in _get_flat_fields_from_params([parent]):
|
|
179
186
|
field_info = param.field_info
|
|
180
187
|
convert_underscores = param_type == ParamTypes.header and getattr(
|
|
@@ -196,7 +203,7 @@ def _get_openapi_operation_parameters(
|
|
|
196
203
|
parameter = {
|
|
197
204
|
"name": name,
|
|
198
205
|
"in": param_type.value,
|
|
199
|
-
"required": param.field_info.is_required(),
|
|
206
|
+
"required": param.field_info.is_required() and not optional_model,
|
|
200
207
|
"schema": param_schema,
|
|
201
208
|
}
|
|
202
209
|
if field_info.description:
|