fastapi 0.112.2__tar.gz → 0.112.3__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.
Potentially problematic release.
This version of fastapi might be problematic. Click here for more details.
- {fastapi-0.112.2 → fastapi-0.112.3}/PKG-INFO +3 -4
- {fastapi-0.112.2 → fastapi-0.112.3}/README.md +2 -3
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/async_tests/test_main.py +4 -2
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/middleware/tutorial001.py +2 -2
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_params_numeric_validations/tutorial006.py +2 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_params_numeric_validations/tutorial006_an.py +2 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_params_numeric_validations/tutorial006_an_py39.py +2 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/__init__.py +1 -1
- fastapi-0.112.3/fastapi/dependencies/models.py +37 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/dependencies/utils.py +74 -56
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/routing.py +24 -15
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/utils.py +3 -6
- {fastapi-0.112.2 → fastapi-0.112.3}/pyproject.toml +1 -1
- {fastapi-0.112.2 → fastapi-0.112.3}/requirements-docs.txt +1 -1
- {fastapi-0.112.2 → fastapi-0.112.3}/requirements-tests.txt +1 -1
- fastapi-0.112.2/fastapi/dependencies/models.py +0 -58
- {fastapi-0.112.2 → fastapi-0.112.3}/LICENSE +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs/en/docs/img/favicon.png +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/additional_responses/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/additional_responses/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/additional_responses/tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/additional_responses/tutorial004.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/additional_status_codes/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/additional_status_codes/tutorial001_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/additional_status_codes/tutorial001_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/additional_status_codes/tutorial001_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/additional_status_codes/tutorial001_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/advanced_middleware/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/advanced_middleware/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/advanced_middleware/tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/app_testing/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/app_testing/app_b/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/app_testing/app_b/main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/app_testing/app_b/test_main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/app_testing/app_b_an/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/app_testing/app_b_an/main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/app_testing/app_b_an/test_main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/app_testing/app_b_an_py310/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/app_testing/app_b_an_py310/main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/app_testing/app_b_an_py310/test_main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/app_testing/app_b_an_py39/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/app_testing/app_b_an_py39/main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/app_testing/app_b_an_py39/test_main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/app_testing/app_b_py310/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/app_testing/app_b_py310/main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/app_testing/app_b_py310/test_main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/app_testing/main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/app_testing/test_main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/app_testing/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/app_testing/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/app_testing/tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/async_sql_databases/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/async_tests/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/async_tests/main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/background_tasks/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/background_tasks/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/background_tasks/tutorial002_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/background_tasks/tutorial002_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/background_tasks/tutorial002_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/background_tasks/tutorial002_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/behind_a_proxy/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/behind_a_proxy/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/behind_a_proxy/tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/behind_a_proxy/tutorial004.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/bigger_applications/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/bigger_applications/app/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/bigger_applications/app/dependencies.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/bigger_applications/app/internal/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/bigger_applications/app/internal/admin.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/bigger_applications/app/main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/bigger_applications/app/routers/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/bigger_applications/app/routers/items.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/bigger_applications/app/routers/users.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/bigger_applications/app_an/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/bigger_applications/app_an/dependencies.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/bigger_applications/app_an/internal/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/bigger_applications/app_an/internal/admin.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/bigger_applications/app_an/main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/bigger_applications/app_an/routers/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/bigger_applications/app_an/routers/items.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/bigger_applications/app_an/routers/users.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/bigger_applications/app_an_py39/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/bigger_applications/app_an_py39/dependencies.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/bigger_applications/app_an_py39/internal/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/bigger_applications/app_an_py39/internal/admin.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/bigger_applications/app_an_py39/main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/bigger_applications/app_an_py39/routers/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/bigger_applications/app_an_py39/routers/items.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/bigger_applications/app_an_py39/routers/users.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body/tutorial001_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body/tutorial002_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body/tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body/tutorial003_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body/tutorial004.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body/tutorial004_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_fields/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_fields/tutorial001_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_fields/tutorial001_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_fields/tutorial001_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_fields/tutorial001_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_multiple_params/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_multiple_params/tutorial001_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_multiple_params/tutorial001_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_multiple_params/tutorial001_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_multiple_params/tutorial001_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_multiple_params/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_multiple_params/tutorial002_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_multiple_params/tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_multiple_params/tutorial003_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_multiple_params/tutorial003_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_multiple_params/tutorial003_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_multiple_params/tutorial003_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_multiple_params/tutorial004.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_multiple_params/tutorial004_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_multiple_params/tutorial004_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_multiple_params/tutorial004_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_multiple_params/tutorial004_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_multiple_params/tutorial005.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_multiple_params/tutorial005_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_multiple_params/tutorial005_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_multiple_params/tutorial005_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_multiple_params/tutorial005_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_nested_models/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_nested_models/tutorial001_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_nested_models/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_nested_models/tutorial002_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_nested_models/tutorial002_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_nested_models/tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_nested_models/tutorial003_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_nested_models/tutorial003_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_nested_models/tutorial004.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_nested_models/tutorial004_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_nested_models/tutorial004_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_nested_models/tutorial005.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_nested_models/tutorial005_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_nested_models/tutorial005_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_nested_models/tutorial006.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_nested_models/tutorial006_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_nested_models/tutorial006_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_nested_models/tutorial007.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_nested_models/tutorial007_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_nested_models/tutorial007_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_nested_models/tutorial008.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_nested_models/tutorial008_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_nested_models/tutorial009.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_nested_models/tutorial009_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_updates/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_updates/tutorial001_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_updates/tutorial001_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_updates/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_updates/tutorial002_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/body_updates/tutorial002_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/conditional_openapi/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/configure_swagger_ui/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/configure_swagger_ui/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/configure_swagger_ui/tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/cookie_params/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/cookie_params/tutorial001_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/cookie_params/tutorial001_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/cookie_params/tutorial001_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/cookie_params/tutorial001_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/cors/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/custom_docs_ui/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/custom_docs_ui/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/custom_request_and_route/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/custom_request_and_route/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/custom_request_and_route/tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/custom_response/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/custom_response/tutorial001b.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/custom_response/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/custom_response/tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/custom_response/tutorial004.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/custom_response/tutorial005.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/custom_response/tutorial006.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/custom_response/tutorial006b.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/custom_response/tutorial006c.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/custom_response/tutorial007.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/custom_response/tutorial008.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/custom_response/tutorial009.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/custom_response/tutorial009b.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/custom_response/tutorial009c.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/custom_response/tutorial010.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dataclasses/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dataclasses/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dataclasses/tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/debugging/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial001_02_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial001_02_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial001_02_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial001_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial001_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial001_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial001_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial002_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial002_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial002_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial002_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial003_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial003_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial003_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial003_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial004.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial004_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial004_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial004_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial004_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial005.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial005_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial005_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial005_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial005_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial006.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial006_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial006_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial007.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial008.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial008_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial008_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial008b.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial008b_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial008b_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial008c.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial008c_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial008c_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial008d.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial008d_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial008d_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial009.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial010.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial011.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial011_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial011_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial012.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial012_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependencies/tutorial012_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependency_testing/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependency_testing/tutorial001_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependency_testing/tutorial001_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependency_testing/tutorial001_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/dependency_testing/tutorial001_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/encoder/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/encoder/tutorial001_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/events/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/events/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/events/tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/extending_openapi/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/extra_data_types/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/extra_data_types/tutorial001_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/extra_data_types/tutorial001_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/extra_data_types/tutorial001_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/extra_data_types/tutorial001_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/extra_models/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/extra_models/tutorial001_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/extra_models/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/extra_models/tutorial002_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/extra_models/tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/extra_models/tutorial003_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/extra_models/tutorial004.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/extra_models/tutorial004_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/extra_models/tutorial005.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/extra_models/tutorial005_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/first_steps/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/first_steps/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/first_steps/tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/generate_clients/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/generate_clients/tutorial001_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/generate_clients/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/generate_clients/tutorial002_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/generate_clients/tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/generate_clients/tutorial003_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/generate_clients/tutorial004.js +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/generate_clients/tutorial004.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/graphql/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/handling_errors/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/handling_errors/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/handling_errors/tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/handling_errors/tutorial004.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/handling_errors/tutorial005.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/handling_errors/tutorial006.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/header_params/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/header_params/tutorial001_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/header_params/tutorial001_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/header_params/tutorial001_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/header_params/tutorial001_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/header_params/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/header_params/tutorial002_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/header_params/tutorial002_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/header_params/tutorial002_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/header_params/tutorial002_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/header_params/tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/header_params/tutorial003_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/header_params/tutorial003_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/header_params/tutorial003_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/header_params/tutorial003_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/header_params/tutorial003_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/metadata/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/metadata/tutorial001_1.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/metadata/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/metadata/tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/metadata/tutorial004.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/nosql_databases/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/openapi_callbacks/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/openapi_webhooks/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_operation_advanced_configuration/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_operation_advanced_configuration/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_operation_advanced_configuration/tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_operation_advanced_configuration/tutorial004.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_operation_advanced_configuration/tutorial005.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_operation_advanced_configuration/tutorial006.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_operation_advanced_configuration/tutorial007.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_operation_advanced_configuration/tutorial007_pv1.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_operation_configuration/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_operation_configuration/tutorial001_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_operation_configuration/tutorial001_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_operation_configuration/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_operation_configuration/tutorial002_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_operation_configuration/tutorial002_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_operation_configuration/tutorial002b.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_operation_configuration/tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_operation_configuration/tutorial003_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_operation_configuration/tutorial003_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_operation_configuration/tutorial004.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_operation_configuration/tutorial004_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_operation_configuration/tutorial004_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_operation_configuration/tutorial005.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_operation_configuration/tutorial005_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_operation_configuration/tutorial005_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_operation_configuration/tutorial006.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_params/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_params/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_params/tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_params/tutorial003b.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_params/tutorial004.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_params/tutorial005.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_params_numeric_validations/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_params_numeric_validations/tutorial001_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_params_numeric_validations/tutorial001_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_params_numeric_validations/tutorial001_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_params_numeric_validations/tutorial001_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_params_numeric_validations/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_params_numeric_validations/tutorial002_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_params_numeric_validations/tutorial002_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_params_numeric_validations/tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_params_numeric_validations/tutorial003_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_params_numeric_validations/tutorial003_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_params_numeric_validations/tutorial004.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_params_numeric_validations/tutorial004_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_params_numeric_validations/tutorial004_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_params_numeric_validations/tutorial005.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_params_numeric_validations/tutorial005_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/path_params_numeric_validations/tutorial005_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/python_types/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/python_types/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/python_types/tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/python_types/tutorial004.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/python_types/tutorial005.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/python_types/tutorial006.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/python_types/tutorial006_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/python_types/tutorial007.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/python_types/tutorial007_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/python_types/tutorial008.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/python_types/tutorial008_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/python_types/tutorial008b.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/python_types/tutorial008b_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/python_types/tutorial009.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/python_types/tutorial009_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/python_types/tutorial009b.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/python_types/tutorial009c.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/python_types/tutorial009c_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/python_types/tutorial010.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/python_types/tutorial011.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/python_types/tutorial011_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/python_types/tutorial011_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/python_types/tutorial012.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/python_types/tutorial013.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/python_types/tutorial013_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params/tutorial002_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params/tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params/tutorial003_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params/tutorial004.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params/tutorial004_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params/tutorial005.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params/tutorial006.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params/tutorial006_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params/tutorial006b.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial001_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial002_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial002_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial002_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial003_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial003_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial003_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial003_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial004.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial004_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial004_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial004_an_py310_regex.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial004_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial004_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial005.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial005_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial005_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial006.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial006_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial006_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial006b.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial006b_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial006b_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial006c.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial006c_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial006c_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial006c_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial006c_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial006d.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial006d_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial006d_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial007.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial007_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial007_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial007_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial007_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial008.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial008_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial008_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial008_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial008_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial009.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial009_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial009_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial009_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial009_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial010.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial010_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial010_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial010_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial010_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial011.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial011_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial011_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial011_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial011_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial011_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial012.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial012_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial012_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial012_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial013.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial013_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial013_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial014.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial014_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial014_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial014_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/query_params_str_validations/tutorial014_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/request_files/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/request_files/tutorial001_02.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/request_files/tutorial001_02_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/request_files/tutorial001_02_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/request_files/tutorial001_02_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/request_files/tutorial001_02_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/request_files/tutorial001_03.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/request_files/tutorial001_03_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/request_files/tutorial001_03_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/request_files/tutorial001_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/request_files/tutorial001_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/request_files/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/request_files/tutorial002_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/request_files/tutorial002_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/request_files/tutorial002_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/request_files/tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/request_files/tutorial003_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/request_files/tutorial003_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/request_files/tutorial003_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/request_forms/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/request_forms/tutorial001_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/request_forms/tutorial001_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/request_forms_and_files/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/request_forms_and_files/tutorial001_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/request_forms_and_files/tutorial001_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/response_change_status_code/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/response_cookies/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/response_cookies/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/response_directly/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/response_directly/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/response_headers/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/response_headers/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/response_model/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/response_model/tutorial001_01.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/response_model/tutorial001_01_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/response_model/tutorial001_01_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/response_model/tutorial001_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/response_model/tutorial001_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/response_model/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/response_model/tutorial002_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/response_model/tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/response_model/tutorial003_01.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/response_model/tutorial003_01_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/response_model/tutorial003_02.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/response_model/tutorial003_03.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/response_model/tutorial003_04.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/response_model/tutorial003_04_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/response_model/tutorial003_05.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/response_model/tutorial003_05_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/response_model/tutorial003_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/response_model/tutorial004.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/response_model/tutorial004_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/response_model/tutorial004_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/response_model/tutorial005.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/response_model/tutorial005_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/response_model/tutorial006.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/response_model/tutorial006_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/response_status_code/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/response_status_code/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/schema_extra_example/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/schema_extra_example/tutorial001_pv1.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/schema_extra_example/tutorial001_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/schema_extra_example/tutorial001_py310_pv1.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/schema_extra_example/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/schema_extra_example/tutorial002_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/schema_extra_example/tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/schema_extra_example/tutorial003_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/schema_extra_example/tutorial003_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/schema_extra_example/tutorial003_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/schema_extra_example/tutorial003_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/schema_extra_example/tutorial004.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/schema_extra_example/tutorial004_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/schema_extra_example/tutorial004_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/schema_extra_example/tutorial004_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/schema_extra_example/tutorial004_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/schema_extra_example/tutorial005.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/schema_extra_example/tutorial005_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/schema_extra_example/tutorial005_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/schema_extra_example/tutorial005_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/schema_extra_example/tutorial005_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/security/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/security/tutorial001_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/security/tutorial001_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/security/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/security/tutorial002_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/security/tutorial002_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/security/tutorial002_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/security/tutorial002_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/security/tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/security/tutorial003_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/security/tutorial003_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/security/tutorial003_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/security/tutorial003_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/security/tutorial004.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/security/tutorial004_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/security/tutorial004_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/security/tutorial004_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/security/tutorial004_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/security/tutorial005.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/security/tutorial005_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/security/tutorial005_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/security/tutorial005_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/security/tutorial005_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/security/tutorial005_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/security/tutorial006.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/security/tutorial006_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/security/tutorial006_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/security/tutorial007.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/security/tutorial007_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/security/tutorial007_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/separate_openapi_schemas/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/separate_openapi_schemas/tutorial001_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/separate_openapi_schemas/tutorial001_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/separate_openapi_schemas/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/separate_openapi_schemas/tutorial002_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/separate_openapi_schemas/tutorial002_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/settings/app01/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/settings/app01/config.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/settings/app01/main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/settings/app02/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/settings/app02/config.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/settings/app02/main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/settings/app02/test_main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/settings/app02_an/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/settings/app02_an/config.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/settings/app02_an/main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/settings/app02_an/test_main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/settings/app02_an_py39/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/settings/app02_an_py39/config.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/settings/app02_an_py39/main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/settings/app02_an_py39/test_main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/settings/app03/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/settings/app03/config.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/settings/app03/main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/settings/app03_an/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/settings/app03_an/config.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/settings/app03_an/config_pv1.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/settings/app03_an/main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/settings/app03_an_py39/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/settings/app03_an_py39/config.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/settings/app03_an_py39/main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/settings/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/settings/tutorial001_pv1.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/sql_databases/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/sql_databases/sql_app/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/sql_databases/sql_app/alt_main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/sql_databases/sql_app/crud.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/sql_databases/sql_app/database.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/sql_databases/sql_app/main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/sql_databases/sql_app/models.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/sql_databases/sql_app/schemas.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/sql_databases/sql_app/tests/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/sql_databases/sql_app/tests/test_sql_app.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/sql_databases/sql_app_py310/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/sql_databases/sql_app_py310/alt_main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/sql_databases/sql_app_py310/crud.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/sql_databases/sql_app_py310/database.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/sql_databases/sql_app_py310/main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/sql_databases/sql_app_py310/models.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/sql_databases/sql_app_py310/schemas.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/sql_databases/sql_app_py310/tests/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/sql_databases/sql_app_py310/tests/test_sql_app.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/sql_databases/sql_app_py39/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/sql_databases/sql_app_py39/alt_main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/sql_databases/sql_app_py39/crud.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/sql_databases/sql_app_py39/database.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/sql_databases/sql_app_py39/main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/sql_databases/sql_app_py39/models.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/sql_databases/sql_app_py39/schemas.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/sql_databases/sql_app_py39/tests/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/sql_databases/sql_app_py39/tests/test_sql_app.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/sql_databases_peewee/sql_app/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/sql_databases_peewee/sql_app/crud.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/sql_databases_peewee/sql_app/database.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/sql_databases_peewee/sql_app/main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/sql_databases_peewee/sql_app/models.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/sql_databases_peewee/sql_app/schemas.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/static_files/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/sub_applications/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/templates/static/styles.css +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/templates/templates/item.html +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/templates/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/using_request_directly/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/websockets/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/websockets/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/websockets/tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/websockets/tutorial002_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/websockets/tutorial002_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/websockets/tutorial002_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/websockets/tutorial002_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/websockets/tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/websockets/tutorial003_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/docs_src/wsgi/tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/__main__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/_compat.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/applications.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/background.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/cli.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/concurrency.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/datastructures.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/dependencies/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/encoders.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/exception_handlers.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/exceptions.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/logger.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/middleware/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/middleware/cors.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/middleware/gzip.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/middleware/httpsredirect.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/middleware/trustedhost.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/middleware/wsgi.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/openapi/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/openapi/constants.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/openapi/docs.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/openapi/models.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/openapi/utils.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/param_functions.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/params.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/py.typed +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/requests.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/responses.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/security/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/security/api_key.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/security/base.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/security/http.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/security/oauth2.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/security/open_id_connect_url.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/security/utils.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/staticfiles.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/templating.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/testclient.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/types.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/fastapi/websockets.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/pdm_build.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/requirements-docs-insiders.txt +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/requirements-docs-tests.txt +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/requirements-github-actions.txt +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/requirements.txt +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/scripts/deploy_docs_status.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/scripts/docs.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/scripts/format.sh +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/scripts/lint.sh +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/scripts/mkdocs_hooks.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/scripts/playwright/separate_openapi_schemas/image01.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/scripts/playwright/separate_openapi_schemas/image02.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/scripts/playwright/separate_openapi_schemas/image03.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/scripts/playwright/separate_openapi_schemas/image04.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/scripts/playwright/separate_openapi_schemas/image05.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/scripts/test-cov-html.sh +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/scripts/test.sh +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_additional_properties.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_additional_properties_bool.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_additional_response_extra.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_additional_responses_bad.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_additional_responses_custom_model_in_callback.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_additional_responses_custom_validationerror.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_additional_responses_default_validationerror.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_additional_responses_response_class.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_additional_responses_router.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_allow_inf_nan_in_enforcing.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_ambiguous_params.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_annotated.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_application.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_callable_endpoint.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_compat.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_computed_fields.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_custom_middleware_exception.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_custom_route_class.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_custom_schema_fields.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_custom_swagger_ui_redirect.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_datastructures.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_datetime_custom_encoder.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_default_response_class.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_default_response_class_router.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_dependency_cache.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_dependency_class.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_dependency_contextmanager.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_dependency_contextvars.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_dependency_duplicates.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_dependency_normal_exceptions.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_dependency_overrides.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_dependency_security_overrides.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_deprecated_openapi_prefix.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_duplicate_models_openapi.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_empty_router.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_enforce_once_required_parameter.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_exception_handlers.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_extra_routes.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_fastapi_cli.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_filter_pydantic_sub_model/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_filter_pydantic_sub_model/app_pv1.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_filter_pydantic_sub_model/test_filter_pydantic_sub_model_pv1.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_filter_pydantic_sub_model_pv2.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_forms_from_non_typing_sequences.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_generate_unique_id_function.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_generic_parameterless_depends.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_get_request_body.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_http_connection_injection.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_include_route.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_include_router_defaults_overrides.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_infer_param_optionality.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_inherited_custom_class.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_invalid_path_param.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_invalid_sequence_param.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_jsonable_encoder.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_local_docs.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_modules_same_name_body/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_modules_same_name_body/app/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_modules_same_name_body/app/a.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_modules_same_name_body/app/b.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_modules_same_name_body/app/main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_modules_same_name_body/test_main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_multi_body_errors.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_multi_query_errors.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_multipart_installation.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_no_swagger_ui_redirect.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_openapi_examples.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_openapi_query_parameter_extension.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_openapi_route_extensions.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_openapi_separate_input_output_schemas.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_openapi_servers.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_operations_signatures.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_orjson_response_class.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_param_class.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_param_in_path_and_dependency.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_param_include_in_schema.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_params_repr.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_path.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_put_no_body.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_query.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_read_with_orm_mode.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_regex_deprecated_body.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_regex_deprecated_params.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_repeated_cookie_headers.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_repeated_dependency_schema.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_repeated_parameter_alias.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_reponse_set_reponse_code_empty.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_request_body_parameters_media_type.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_required_noneable.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_response_by_alias.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_response_change_status_code.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_response_class_no_mediatype.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_response_code_no_body.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_response_model_as_return_annotation.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_response_model_data_filter.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_response_model_data_filter_no_inheritance.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_response_model_include_exclude.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_response_model_invalid.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_response_model_sub_types.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_route_scope.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_router_events.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_router_prefix_with_template.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_router_redirect_slashes.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_schema_extra_examples.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_security_api_key_cookie.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_security_api_key_cookie_description.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_security_api_key_cookie_optional.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_security_api_key_header.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_security_api_key_header_description.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_security_api_key_header_optional.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_security_api_key_query.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_security_api_key_query_description.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_security_api_key_query_optional.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_security_http_base.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_security_http_base_description.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_security_http_base_optional.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_security_http_basic_optional.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_security_http_basic_realm.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_security_http_basic_realm_description.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_security_http_bearer.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_security_http_bearer_description.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_security_http_bearer_optional.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_security_http_digest.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_security_http_digest_description.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_security_http_digest_optional.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_security_oauth2.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_security_oauth2_authorization_code_bearer.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_security_oauth2_authorization_code_bearer_description.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_security_oauth2_optional.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_security_oauth2_optional_description.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_security_oauth2_password_bearer_optional.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_security_oauth2_password_bearer_optional_description.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_security_openid_connect.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_security_openid_connect_description.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_security_openid_connect_optional.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_serialize_response.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_serialize_response_dataclass.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_serialize_response_model.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_skip_defaults.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_starlette_exception.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_starlette_urlconvertors.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_sub_callbacks.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_swagger_ui_init_oauth.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tuples.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_additional_responses/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_additional_responses/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_additional_responses/test_tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_additional_responses/test_tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_additional_responses/test_tutorial004.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_additional_status_codes/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_additional_status_codes/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_additional_status_codes/test_tutorial001_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_additional_status_codes/test_tutorial001_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_additional_status_codes/test_tutorial001_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_additional_status_codes/test_tutorial001_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_advanced_middleware/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_advanced_middleware/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_advanced_middleware/test_tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_advanced_middleware/test_tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_async_sql_databases/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_async_sql_databases/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_async_tests/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_async_tests/test_main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_background_tasks/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_background_tasks/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_background_tasks/test_tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_background_tasks/test_tutorial002_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_background_tasks/test_tutorial002_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_background_tasks/test_tutorial002_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_background_tasks/test_tutorial002_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_behind_a_proxy/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_behind_a_proxy/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_behind_a_proxy/test_tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_behind_a_proxy/test_tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_behind_a_proxy/test_tutorial004.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_bigger_applications/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_bigger_applications/test_main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_bigger_applications/test_main_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_bigger_applications/test_main_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_body/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_body/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_body/test_tutorial001_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_body_fields/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_body_fields/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_body_fields/test_tutorial001_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_body_fields/test_tutorial001_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_body_fields/test_tutorial001_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_body_fields/test_tutorial001_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_body_multiple_params/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_body_multiple_params/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_body_multiple_params/test_tutorial001_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_body_multiple_params/test_tutorial001_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_body_multiple_params/test_tutorial001_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_body_multiple_params/test_tutorial001_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_body_multiple_params/test_tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_body_multiple_params/test_tutorial003_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_body_multiple_params/test_tutorial003_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_body_multiple_params/test_tutorial003_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_body_multiple_params/test_tutorial003_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_body_nested_models/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_body_nested_models/test_tutorial009.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_body_nested_models/test_tutorial009_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_body_updates/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_body_updates/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_body_updates/test_tutorial001_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_body_updates/test_tutorial001_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_conditional_openapi/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_conditional_openapi/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_configure_swagger_ui/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_configure_swagger_ui/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_configure_swagger_ui/test_tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_configure_swagger_ui/test_tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_cookie_params/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_cookie_params/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_cookie_params/test_tutorial001_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_cookie_params/test_tutorial001_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_cookie_params/test_tutorial001_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_cookie_params/test_tutorial001_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_cors/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_cors/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_custom_docs_ui/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_custom_docs_ui/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_custom_docs_ui/test_tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_custom_request_and_route/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_custom_request_and_route/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_custom_request_and_route/test_tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_custom_request_and_route/test_tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_custom_response/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_custom_response/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_custom_response/test_tutorial001b.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_custom_response/test_tutorial004.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_custom_response/test_tutorial005.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_custom_response/test_tutorial006.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_custom_response/test_tutorial006b.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_custom_response/test_tutorial006c.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_custom_response/test_tutorial007.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_custom_response/test_tutorial008.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_custom_response/test_tutorial009.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_custom_response/test_tutorial009b.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_custom_response/test_tutorial009c.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_dataclasses/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_dataclasses/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_dataclasses/test_tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_dataclasses/test_tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_dependencies/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_dependencies/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_dependencies/test_tutorial001_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_dependencies/test_tutorial001_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_dependencies/test_tutorial001_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_dependencies/test_tutorial001_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_dependencies/test_tutorial004.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_dependencies/test_tutorial004_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_dependencies/test_tutorial004_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_dependencies/test_tutorial004_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_dependencies/test_tutorial004_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_dependencies/test_tutorial006.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_dependencies/test_tutorial006_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_dependencies/test_tutorial006_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_dependencies/test_tutorial008b.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_dependencies/test_tutorial008b_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_dependencies/test_tutorial008b_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_dependencies/test_tutorial008c.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_dependencies/test_tutorial008c_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_dependencies/test_tutorial008c_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_dependencies/test_tutorial008d.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_dependencies/test_tutorial008d_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_dependencies/test_tutorial008d_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_dependencies/test_tutorial012.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_dependencies/test_tutorial012_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_dependencies/test_tutorial012_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_events/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_events/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_events/test_tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_events/test_tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_extending_openapi/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_extending_openapi/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_extra_data_types/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_extra_data_types/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_extra_data_types/test_tutorial001_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_extra_data_types/test_tutorial001_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_extra_data_types/test_tutorial001_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_extra_data_types/test_tutorial001_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_extra_models/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_extra_models/test_tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_extra_models/test_tutorial003_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_extra_models/test_tutorial004.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_extra_models/test_tutorial004_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_extra_models/test_tutorial005.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_extra_models/test_tutorial005_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_first_steps/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_first_steps/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_generate_clients/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_generate_clients/test_tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_handling_errors/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_handling_errors/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_handling_errors/test_tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_handling_errors/test_tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_handling_errors/test_tutorial004.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_handling_errors/test_tutorial005.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_handling_errors/test_tutorial006.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_header_params/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_header_params/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_header_params/test_tutorial001_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_header_params/test_tutorial001_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_header_params/test_tutorial001_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_header_params/test_tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_header_params/test_tutorial002_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_header_params/test_tutorial002_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_header_params/test_tutorial002_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_header_params/test_tutorial002_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_header_params/test_tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_header_params/test_tutorial003_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_header_params/test_tutorial003_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_header_params/test_tutorial003_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_header_params/test_tutorial003_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_metadata/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_metadata/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_metadata/test_tutorial001_1.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_metadata/test_tutorial004.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_openapi_callbacks/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_openapi_callbacks/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_openapi_webhooks/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_openapi_webhooks/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_path_operation_advanced_configurations/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial004.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial005.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial006.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial007.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial007_pv1.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_path_operation_configurations/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_path_operation_configurations/test_tutorial002b.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_path_operation_configurations/test_tutorial005.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_path_operation_configurations/test_tutorial005_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_path_operation_configurations/test_tutorial005_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_path_operation_configurations/test_tutorial006.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_path_params/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_path_params/test_tutorial004.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_path_params/test_tutorial005.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_query_params/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_query_params/test_tutorial005.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_query_params/test_tutorial006.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_query_params/test_tutorial006_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_query_params_str_validations/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_query_params_str_validations/test_tutorial010.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_query_params_str_validations/test_tutorial010_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_query_params_str_validations/test_tutorial010_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_query_params_str_validations/test_tutorial010_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_query_params_str_validations/test_tutorial010_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_query_params_str_validations/test_tutorial011.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_query_params_str_validations/test_tutorial011_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_query_params_str_validations/test_tutorial011_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_query_params_str_validations/test_tutorial011_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_query_params_str_validations/test_tutorial011_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_query_params_str_validations/test_tutorial011_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_query_params_str_validations/test_tutorial012.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_query_params_str_validations/test_tutorial012_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_query_params_str_validations/test_tutorial012_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_query_params_str_validations/test_tutorial012_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_query_params_str_validations/test_tutorial013.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_query_params_str_validations/test_tutorial013_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_query_params_str_validations/test_tutorial013_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_query_params_str_validations/test_tutorial014.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_query_params_str_validations/test_tutorial014_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_query_params_str_validations/test_tutorial014_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_query_params_str_validations/test_tutorial014_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_query_params_str_validations/test_tutorial014_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_request_files/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_request_files/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_request_files/test_tutorial001_02.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_request_files/test_tutorial001_02_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_request_files/test_tutorial001_02_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_request_files/test_tutorial001_02_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_request_files/test_tutorial001_02_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_request_files/test_tutorial001_03.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_request_files/test_tutorial001_03_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_request_files/test_tutorial001_03_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_request_files/test_tutorial001_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_request_files/test_tutorial001_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_request_files/test_tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_request_files/test_tutorial002_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_request_files/test_tutorial002_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_request_files/test_tutorial002_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_request_files/test_tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_request_files/test_tutorial003_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_request_files/test_tutorial003_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_request_files/test_tutorial003_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_request_forms/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_request_forms/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_request_forms/test_tutorial001_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_request_forms/test_tutorial001_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_request_forms_and_files/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_request_forms_and_files/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_request_forms_and_files/test_tutorial001_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_request_forms_and_files/test_tutorial001_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_response_change_status_code/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_response_change_status_code/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_response_cookies/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_response_cookies/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_response_cookies/test_tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_response_headers/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_response_headers/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_response_headers/test_tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_response_model/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_response_model/test_tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_response_model/test_tutorial003_01.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_response_model/test_tutorial003_01_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_response_model/test_tutorial003_02.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_response_model/test_tutorial003_03.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_response_model/test_tutorial003_04.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_response_model/test_tutorial003_04_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_response_model/test_tutorial003_05.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_response_model/test_tutorial003_05_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_response_model/test_tutorial003_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_response_model/test_tutorial004.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_response_model/test_tutorial004_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_response_model/test_tutorial004_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_response_model/test_tutorial005.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_response_model/test_tutorial005_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_response_model/test_tutorial006.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_response_model/test_tutorial006_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_schema_extra_example/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_schema_extra_example/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_schema_extra_example/test_tutorial001_pv1.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_schema_extra_example/test_tutorial001_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_schema_extra_example/test_tutorial001_py310_pv1.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_schema_extra_example/test_tutorial004.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_schema_extra_example/test_tutorial004_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_schema_extra_example/test_tutorial004_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_schema_extra_example/test_tutorial004_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_schema_extra_example/test_tutorial004_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_schema_extra_example/test_tutorial005.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_schema_extra_example/test_tutorial005_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_schema_extra_example/test_tutorial005_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_schema_extra_example/test_tutorial005_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_schema_extra_example/test_tutorial005_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_security/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_security/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_security/test_tutorial001_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_security/test_tutorial001_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_security/test_tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_security/test_tutorial003_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_security/test_tutorial003_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_security/test_tutorial003_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_security/test_tutorial003_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_security/test_tutorial005.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_security/test_tutorial005_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_security/test_tutorial005_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_security/test_tutorial005_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_security/test_tutorial005_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_security/test_tutorial005_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_security/test_tutorial006.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_security/test_tutorial006_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_security/test_tutorial006_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_separate_openapi_schemas/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_separate_openapi_schemas/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_separate_openapi_schemas/test_tutorial001_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_separate_openapi_schemas/test_tutorial001_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_separate_openapi_schemas/test_tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_separate_openapi_schemas/test_tutorial002_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_separate_openapi_schemas/test_tutorial002_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_settings/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_settings/test_app02.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_settings/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_settings/test_tutorial001_pv1.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_sql_databases/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_sql_databases/test_sql_databases.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_sql_databases/test_sql_databases_middleware.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_sql_databases/test_sql_databases_middleware_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_sql_databases/test_sql_databases_middleware_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_sql_databases/test_sql_databases_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_sql_databases/test_sql_databases_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_sql_databases/test_testing_databases.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_sql_databases/test_testing_databases_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_sql_databases/test_testing_databases_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_sub_applications/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_sub_applications/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_templates/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_templates/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_testing/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_testing/test_main.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_testing/test_main_b.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_testing/test_main_b_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_testing/test_main_b_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_testing/test_main_b_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_testing/test_main_b_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_testing/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_testing/test_tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_testing/test_tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_testing_dependencies/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_testing_dependencies/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_testing_dependencies/test_tutorial001_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_testing_dependencies/test_tutorial001_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_testing_dependencies/test_tutorial001_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_testing_dependencies/test_tutorial001_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_websockets/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_websockets/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_websockets/test_tutorial002.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_websockets/test_tutorial002_an.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_websockets/test_tutorial002_an_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_websockets/test_tutorial002_an_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_websockets/test_tutorial002_py310.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_websockets/test_tutorial003.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_websockets/test_tutorial003_py39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_wsgi/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_tutorial/test_wsgi/test_tutorial001.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_typing_python39.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_union_body.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_union_inherited_body.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_validate_response.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_validate_response_dataclass.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_validate_response_recursive/__init__.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_validate_response_recursive/app_pv1.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_validate_response_recursive/app_pv2.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_validate_response_recursive/test_validate_response_recursive_pv1.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_validate_response_recursive/test_validate_response_recursive_pv2.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_webhooks_security.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_ws_dependencies.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/test_ws_router.py +0 -0
- {fastapi-0.112.2 → fastapi-0.112.3}/tests/utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: fastapi
|
|
3
|
-
Version: 0.112.
|
|
3
|
+
Version: 0.112.3
|
|
4
4
|
Summary: FastAPI framework, high performance, easy to learn, fast to code, ready for production
|
|
5
5
|
Author-Email: =?utf-8?q?Sebasti=C3=A1n_Ram=C3=ADrez?= <tiangolo@gmail.com>
|
|
6
6
|
Classifier: Intended Audience :: Information Technology
|
|
@@ -115,9 +115,8 @@ The key features are:
|
|
|
115
115
|
<a href="https://bump.sh/fastapi?utm_source=fastapi&utm_medium=referral&utm_campaign=sponsor" target="_blank" title="Automate FastAPI documentation generation with Bump.sh"><img src="https://fastapi.tiangolo.com/img/sponsors/bump-sh.svg"></a>
|
|
116
116
|
<a href="https://github.com/scalar/scalar/?utm_source=fastapi&utm_medium=website&utm_campaign=main-badge" target="_blank" title="Scalar: Beautiful Open-Source API References from Swagger/OpenAPI files"><img src="https://fastapi.tiangolo.com/img/sponsors/scalar.svg"></a>
|
|
117
117
|
<a href="https://www.propelauth.com/?utm_source=fastapi&utm_campaign=1223&utm_medium=mainbadge" target="_blank" title="Auth, user management and more for your B2B product"><img src="https://fastapi.tiangolo.com/img/sponsors/propelauth.png"></a>
|
|
118
|
-
<a href="https://docs.withcoherence.com/
|
|
118
|
+
<a href="https://docs.withcoherence.com/coherence-templates/full-stack-template/#fastapi?utm_medium=advertising&utm_source=fastapi&utm_campaign=docs" target="_blank" title="Coherence"><img src="https://fastapi.tiangolo.com/img/sponsors/coherence.png"></a>
|
|
119
119
|
<a href="https://www.mongodb.com/developer/languages/python/python-quickstart-fastapi/?utm_campaign=fastapi_framework&utm_source=fastapi_sponsorship&utm_medium=web_referral" target="_blank" title="Simplify Full Stack Development with FastAPI & MongoDB"><img src="https://fastapi.tiangolo.com/img/sponsors/mongodb.png"></a>
|
|
120
|
-
<a href="https://konghq.com/products/kong-konnect?utm_medium=referral&utm_source=github&utm_campaign=platform&utm_content=fast-api" target="_blank" title="Kong Konnect - API management platform"><img src="https://fastapi.tiangolo.com/img/sponsors/kong.png"></a>
|
|
121
120
|
<a href="https://zuplo.link/fastapi-gh" target="_blank" title="Zuplo: Scale, Protect, Document, and Monetize your FastAPI"><img src="https://fastapi.tiangolo.com/img/sponsors/zuplo.png"></a>
|
|
122
121
|
<a href="https://fine.dev?ref=fastapibadge" target="_blank" title="Fine's AI FastAPI Workflow: Effortlessly Deploy and Integrate FastAPI into Your Project"><img src="https://fastapi.tiangolo.com/img/sponsors/fine.png"></a>
|
|
123
122
|
<a href="https://liblab.com?utm_source=fastapi" target="_blank" title="liblab - Generate SDKs from FastAPI"><img src="https://fastapi.tiangolo.com/img/sponsors/liblab.png"></a>
|
|
@@ -457,7 +456,7 @@ Coming back to the previous code example, **FastAPI** will:
|
|
|
457
456
|
* Check if there is an optional query parameter named `q` (as in `http://127.0.0.1:8000/items/foo?q=somequery`) for `GET` requests.
|
|
458
457
|
* As the `q` parameter is declared with `= None`, it is optional.
|
|
459
458
|
* Without the `None` it would be required (as is the body in the case with `PUT`).
|
|
460
|
-
* For `PUT` requests to `/items/{item_id}`,
|
|
459
|
+
* For `PUT` requests to `/items/{item_id}`, read the body as JSON:
|
|
461
460
|
* Check that it has a required attribute `name` that should be a `str`.
|
|
462
461
|
* Check that it has a required attribute `price` that has to be a `float`.
|
|
463
462
|
* Check that it has an optional attribute `is_offer`, that should be a `bool`, if present.
|
|
@@ -52,9 +52,8 @@ The key features are:
|
|
|
52
52
|
<a href="https://bump.sh/fastapi?utm_source=fastapi&utm_medium=referral&utm_campaign=sponsor" target="_blank" title="Automate FastAPI documentation generation with Bump.sh"><img src="https://fastapi.tiangolo.com/img/sponsors/bump-sh.svg"></a>
|
|
53
53
|
<a href="https://github.com/scalar/scalar/?utm_source=fastapi&utm_medium=website&utm_campaign=main-badge" target="_blank" title="Scalar: Beautiful Open-Source API References from Swagger/OpenAPI files"><img src="https://fastapi.tiangolo.com/img/sponsors/scalar.svg"></a>
|
|
54
54
|
<a href="https://www.propelauth.com/?utm_source=fastapi&utm_campaign=1223&utm_medium=mainbadge" target="_blank" title="Auth, user management and more for your B2B product"><img src="https://fastapi.tiangolo.com/img/sponsors/propelauth.png"></a>
|
|
55
|
-
<a href="https://docs.withcoherence.com/
|
|
55
|
+
<a href="https://docs.withcoherence.com/coherence-templates/full-stack-template/#fastapi?utm_medium=advertising&utm_source=fastapi&utm_campaign=docs" target="_blank" title="Coherence"><img src="https://fastapi.tiangolo.com/img/sponsors/coherence.png"></a>
|
|
56
56
|
<a href="https://www.mongodb.com/developer/languages/python/python-quickstart-fastapi/?utm_campaign=fastapi_framework&utm_source=fastapi_sponsorship&utm_medium=web_referral" target="_blank" title="Simplify Full Stack Development with FastAPI & MongoDB"><img src="https://fastapi.tiangolo.com/img/sponsors/mongodb.png"></a>
|
|
57
|
-
<a href="https://konghq.com/products/kong-konnect?utm_medium=referral&utm_source=github&utm_campaign=platform&utm_content=fast-api" target="_blank" title="Kong Konnect - API management platform"><img src="https://fastapi.tiangolo.com/img/sponsors/kong.png"></a>
|
|
58
57
|
<a href="https://zuplo.link/fastapi-gh" target="_blank" title="Zuplo: Scale, Protect, Document, and Monetize your FastAPI"><img src="https://fastapi.tiangolo.com/img/sponsors/zuplo.png"></a>
|
|
59
58
|
<a href="https://fine.dev?ref=fastapibadge" target="_blank" title="Fine's AI FastAPI Workflow: Effortlessly Deploy and Integrate FastAPI into Your Project"><img src="https://fastapi.tiangolo.com/img/sponsors/fine.png"></a>
|
|
60
59
|
<a href="https://liblab.com?utm_source=fastapi" target="_blank" title="liblab - Generate SDKs from FastAPI"><img src="https://fastapi.tiangolo.com/img/sponsors/liblab.png"></a>
|
|
@@ -394,7 +393,7 @@ Coming back to the previous code example, **FastAPI** will:
|
|
|
394
393
|
* Check if there is an optional query parameter named `q` (as in `http://127.0.0.1:8000/items/foo?q=somequery`) for `GET` requests.
|
|
395
394
|
* As the `q` parameter is declared with `= None`, it is optional.
|
|
396
395
|
* Without the `None` it would be required (as is the body in the case with `PUT`).
|
|
397
|
-
* For `PUT` requests to `/items/{item_id}`,
|
|
396
|
+
* For `PUT` requests to `/items/{item_id}`, read the body as JSON:
|
|
398
397
|
* Check that it has a required attribute `name` that should be a `str`.
|
|
399
398
|
* Check that it has a required attribute `price` that has to be a `float`.
|
|
400
399
|
* Check that it has an optional attribute `is_offer`, that should be a `bool`, if present.
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import pytest
|
|
2
|
-
from httpx import AsyncClient
|
|
2
|
+
from httpx import ASGITransport, AsyncClient
|
|
3
3
|
|
|
4
4
|
from .main import app
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
@pytest.mark.anyio
|
|
8
8
|
async def test_root():
|
|
9
|
-
async with AsyncClient(
|
|
9
|
+
async with AsyncClient(
|
|
10
|
+
transport=ASGITransport(app=app), base_url="http://test"
|
|
11
|
+
) as ac:
|
|
10
12
|
response = await ac.get("/")
|
|
11
13
|
assert response.status_code == 200
|
|
12
14
|
assert response.json() == {"message": "Tomato"}
|
|
@@ -7,8 +7,8 @@ app = FastAPI()
|
|
|
7
7
|
|
|
8
8
|
@app.middleware("http")
|
|
9
9
|
async def add_process_time_header(request: Request, call_next):
|
|
10
|
-
start_time = time.
|
|
10
|
+
start_time = time.perf_counter()
|
|
11
11
|
response = await call_next(request)
|
|
12
|
-
process_time = time.
|
|
12
|
+
process_time = time.perf_counter() - start_time
|
|
13
13
|
response.headers["X-Process-Time"] = str(process_time)
|
|
14
14
|
return response
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
from dataclasses import dataclass, field
|
|
2
|
+
from typing import Any, Callable, List, Optional, Sequence, Tuple
|
|
3
|
+
|
|
4
|
+
from fastapi._compat import ModelField
|
|
5
|
+
from fastapi.security.base import SecurityBase
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
@dataclass
|
|
9
|
+
class SecurityRequirement:
|
|
10
|
+
security_scheme: SecurityBase
|
|
11
|
+
scopes: Optional[Sequence[str]] = None
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@dataclass
|
|
15
|
+
class Dependant:
|
|
16
|
+
path_params: List[ModelField] = field(default_factory=list)
|
|
17
|
+
query_params: List[ModelField] = field(default_factory=list)
|
|
18
|
+
header_params: List[ModelField] = field(default_factory=list)
|
|
19
|
+
cookie_params: List[ModelField] = field(default_factory=list)
|
|
20
|
+
body_params: List[ModelField] = field(default_factory=list)
|
|
21
|
+
dependencies: List["Dependant"] = field(default_factory=list)
|
|
22
|
+
security_requirements: List[SecurityRequirement] = field(default_factory=list)
|
|
23
|
+
name: Optional[str] = None
|
|
24
|
+
call: Optional[Callable[..., Any]] = None
|
|
25
|
+
request_param_name: Optional[str] = None
|
|
26
|
+
websocket_param_name: Optional[str] = None
|
|
27
|
+
http_connection_param_name: Optional[str] = None
|
|
28
|
+
response_param_name: Optional[str] = None
|
|
29
|
+
background_tasks_param_name: Optional[str] = None
|
|
30
|
+
security_scopes_param_name: Optional[str] = None
|
|
31
|
+
security_scopes: Optional[List[str]] = None
|
|
32
|
+
use_cache: bool = True
|
|
33
|
+
path: Optional[str] = None
|
|
34
|
+
cache_key: Tuple[Optional[Callable[..., Any]], Tuple[str, ...]] = field(init=False)
|
|
35
|
+
|
|
36
|
+
def __post_init__(self) -> None:
|
|
37
|
+
self.cache_key = (self.call, tuple(sorted(set(self.security_scopes or []))))
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import inspect
|
|
2
2
|
from contextlib import AsyncExitStack, contextmanager
|
|
3
3
|
from copy import copy, deepcopy
|
|
4
|
+
from dataclasses import dataclass
|
|
4
5
|
from typing import (
|
|
5
6
|
Any,
|
|
6
7
|
Callable,
|
|
@@ -54,7 +55,7 @@ from fastapi.logger import logger
|
|
|
54
55
|
from fastapi.security.base import SecurityBase
|
|
55
56
|
from fastapi.security.oauth2 import OAuth2, SecurityScopes
|
|
56
57
|
from fastapi.security.open_id_connect_url import OpenIdConnect
|
|
57
|
-
from fastapi.utils import
|
|
58
|
+
from fastapi.utils import create_model_field, get_path_param_names
|
|
58
59
|
from pydantic.fields import FieldInfo
|
|
59
60
|
from starlette.background import BackgroundTasks as StarletteBackgroundTasks
|
|
60
61
|
from starlette.concurrency import run_in_threadpool
|
|
@@ -79,25 +80,23 @@ multipart_incorrect_install_error = (
|
|
|
79
80
|
)
|
|
80
81
|
|
|
81
82
|
|
|
82
|
-
def
|
|
83
|
-
|
|
84
|
-
|
|
83
|
+
def ensure_multipart_is_installed() -> None:
|
|
84
|
+
try:
|
|
85
|
+
# __version__ is available in both multiparts, and can be mocked
|
|
86
|
+
from multipart import __version__ # type: ignore
|
|
87
|
+
|
|
88
|
+
assert __version__
|
|
85
89
|
try:
|
|
86
|
-
#
|
|
87
|
-
from multipart import
|
|
88
|
-
|
|
89
|
-
assert
|
|
90
|
-
try:
|
|
91
|
-
# parse_options_header is only available in the right multipart
|
|
92
|
-
from multipart.multipart import parse_options_header # type: ignore
|
|
93
|
-
|
|
94
|
-
assert parse_options_header
|
|
95
|
-
except ImportError:
|
|
96
|
-
logger.error(multipart_incorrect_install_error)
|
|
97
|
-
raise RuntimeError(multipart_incorrect_install_error) from None
|
|
90
|
+
# parse_options_header is only available in the right multipart
|
|
91
|
+
from multipart.multipart import parse_options_header # type: ignore
|
|
92
|
+
|
|
93
|
+
assert parse_options_header
|
|
98
94
|
except ImportError:
|
|
99
|
-
logger.error(
|
|
100
|
-
raise RuntimeError(
|
|
95
|
+
logger.error(multipart_incorrect_install_error)
|
|
96
|
+
raise RuntimeError(multipart_incorrect_install_error) from None
|
|
97
|
+
except ImportError:
|
|
98
|
+
logger.error(multipart_not_installed_error)
|
|
99
|
+
raise RuntimeError(multipart_not_installed_error) from None
|
|
101
100
|
|
|
102
101
|
|
|
103
102
|
def get_param_sub_dependant(
|
|
@@ -175,7 +174,7 @@ def get_flat_dependant(
|
|
|
175
174
|
header_params=dependant.header_params.copy(),
|
|
176
175
|
cookie_params=dependant.cookie_params.copy(),
|
|
177
176
|
body_params=dependant.body_params.copy(),
|
|
178
|
-
|
|
177
|
+
security_requirements=dependant.security_requirements.copy(),
|
|
179
178
|
use_cache=dependant.use_cache,
|
|
180
179
|
path=dependant.path,
|
|
181
180
|
)
|
|
@@ -258,16 +257,16 @@ def get_dependant(
|
|
|
258
257
|
)
|
|
259
258
|
for param_name, param in signature_params.items():
|
|
260
259
|
is_path_param = param_name in path_param_names
|
|
261
|
-
|
|
260
|
+
param_details = analyze_param(
|
|
262
261
|
param_name=param_name,
|
|
263
262
|
annotation=param.annotation,
|
|
264
263
|
value=param.default,
|
|
265
264
|
is_path_param=is_path_param,
|
|
266
265
|
)
|
|
267
|
-
if depends is not None:
|
|
266
|
+
if param_details.depends is not None:
|
|
268
267
|
sub_dependant = get_param_sub_dependant(
|
|
269
268
|
param_name=param_name,
|
|
270
|
-
depends=depends,
|
|
269
|
+
depends=param_details.depends,
|
|
271
270
|
path=path,
|
|
272
271
|
security_scopes=security_scopes,
|
|
273
272
|
)
|
|
@@ -275,18 +274,18 @@ def get_dependant(
|
|
|
275
274
|
continue
|
|
276
275
|
if add_non_field_param_to_dependency(
|
|
277
276
|
param_name=param_name,
|
|
278
|
-
type_annotation=type_annotation,
|
|
277
|
+
type_annotation=param_details.type_annotation,
|
|
279
278
|
dependant=dependant,
|
|
280
279
|
):
|
|
281
280
|
assert (
|
|
282
|
-
|
|
281
|
+
param_details.field is None
|
|
283
282
|
), f"Cannot specify multiple FastAPI annotations for {param_name!r}"
|
|
284
283
|
continue
|
|
285
|
-
assert
|
|
286
|
-
if is_body_param(param_field=
|
|
287
|
-
dependant.body_params.append(
|
|
284
|
+
assert param_details.field is not None
|
|
285
|
+
if is_body_param(param_field=param_details.field, is_path_param=is_path_param):
|
|
286
|
+
dependant.body_params.append(param_details.field)
|
|
288
287
|
else:
|
|
289
|
-
add_param_to_fields(field=
|
|
288
|
+
add_param_to_fields(field=param_details.field, dependant=dependant)
|
|
290
289
|
return dependant
|
|
291
290
|
|
|
292
291
|
|
|
@@ -314,13 +313,20 @@ def add_non_field_param_to_dependency(
|
|
|
314
313
|
return None
|
|
315
314
|
|
|
316
315
|
|
|
316
|
+
@dataclass
|
|
317
|
+
class ParamDetails:
|
|
318
|
+
type_annotation: Any
|
|
319
|
+
depends: Optional[params.Depends]
|
|
320
|
+
field: Optional[ModelField]
|
|
321
|
+
|
|
322
|
+
|
|
317
323
|
def analyze_param(
|
|
318
324
|
*,
|
|
319
325
|
param_name: str,
|
|
320
326
|
annotation: Any,
|
|
321
327
|
value: Any,
|
|
322
328
|
is_path_param: bool,
|
|
323
|
-
) ->
|
|
329
|
+
) -> ParamDetails:
|
|
324
330
|
field_info = None
|
|
325
331
|
depends = None
|
|
326
332
|
type_annotation: Any = Any
|
|
@@ -328,6 +334,7 @@ def analyze_param(
|
|
|
328
334
|
if annotation is not inspect.Signature.empty:
|
|
329
335
|
use_annotation = annotation
|
|
330
336
|
type_annotation = annotation
|
|
337
|
+
# Extract Annotated info
|
|
331
338
|
if get_origin(use_annotation) is Annotated:
|
|
332
339
|
annotated_args = get_args(annotation)
|
|
333
340
|
type_annotation = annotated_args[0]
|
|
@@ -347,6 +354,7 @@ def analyze_param(
|
|
|
347
354
|
)
|
|
348
355
|
else:
|
|
349
356
|
fastapi_annotation = None
|
|
357
|
+
# Set default for Annotated FieldInfo
|
|
350
358
|
if isinstance(fastapi_annotation, FieldInfo):
|
|
351
359
|
# Copy `field_info` because we mutate `field_info.default` below.
|
|
352
360
|
field_info = copy_field_info(
|
|
@@ -361,9 +369,10 @@ def analyze_param(
|
|
|
361
369
|
field_info.default = value
|
|
362
370
|
else:
|
|
363
371
|
field_info.default = Required
|
|
372
|
+
# Get Annotated Depends
|
|
364
373
|
elif isinstance(fastapi_annotation, params.Depends):
|
|
365
374
|
depends = fastapi_annotation
|
|
366
|
-
|
|
375
|
+
# Get Depends from default value
|
|
367
376
|
if isinstance(value, params.Depends):
|
|
368
377
|
assert depends is None, (
|
|
369
378
|
"Cannot specify `Depends` in `Annotated` and default value"
|
|
@@ -374,6 +383,7 @@ def analyze_param(
|
|
|
374
383
|
f" default value together for {param_name!r}"
|
|
375
384
|
)
|
|
376
385
|
depends = value
|
|
386
|
+
# Get FieldInfo from default value
|
|
377
387
|
elif isinstance(value, FieldInfo):
|
|
378
388
|
assert field_info is None, (
|
|
379
389
|
"Cannot specify FastAPI annotations in `Annotated` and default value"
|
|
@@ -383,11 +393,13 @@ def analyze_param(
|
|
|
383
393
|
if PYDANTIC_V2:
|
|
384
394
|
field_info.annotation = type_annotation
|
|
385
395
|
|
|
396
|
+
# Get Depends from type annotation
|
|
386
397
|
if depends is not None and depends.dependency is None:
|
|
387
398
|
# Copy `depends` before mutating it
|
|
388
399
|
depends = copy(depends)
|
|
389
400
|
depends.dependency = type_annotation
|
|
390
401
|
|
|
402
|
+
# Handle non-param type annotations like Request
|
|
391
403
|
if lenient_issubclass(
|
|
392
404
|
type_annotation,
|
|
393
405
|
(
|
|
@@ -403,6 +415,7 @@ def analyze_param(
|
|
|
403
415
|
assert (
|
|
404
416
|
field_info is None
|
|
405
417
|
), f"Cannot specify FastAPI annotation for type {type_annotation!r}"
|
|
418
|
+
# Handle default assignations, neither field_info nor depends was not found in Annotated nor default value
|
|
406
419
|
elif field_info is None and depends is None:
|
|
407
420
|
default_value = value if value is not inspect.Signature.empty else Required
|
|
408
421
|
if is_path_param:
|
|
@@ -420,7 +433,9 @@ def analyze_param(
|
|
|
420
433
|
field_info = params.Query(annotation=use_annotation, default=default_value)
|
|
421
434
|
|
|
422
435
|
field = None
|
|
436
|
+
# It's a field_info, not a dependency
|
|
423
437
|
if field_info is not None:
|
|
438
|
+
# Handle field_info.in_
|
|
424
439
|
if is_path_param:
|
|
425
440
|
assert isinstance(field_info, params.Path), (
|
|
426
441
|
f"Cannot use `{field_info.__class__.__name__}` for path param"
|
|
@@ -436,12 +451,14 @@ def analyze_param(
|
|
|
436
451
|
field_info,
|
|
437
452
|
param_name,
|
|
438
453
|
)
|
|
454
|
+
if isinstance(field_info, params.Form):
|
|
455
|
+
ensure_multipart_is_installed()
|
|
439
456
|
if not field_info.alias and getattr(field_info, "convert_underscores", None):
|
|
440
457
|
alias = param_name.replace("_", "-")
|
|
441
458
|
else:
|
|
442
459
|
alias = field_info.alias or param_name
|
|
443
460
|
field_info.alias = alias
|
|
444
|
-
field =
|
|
461
|
+
field = create_model_field(
|
|
445
462
|
name=param_name,
|
|
446
463
|
type_=use_annotation_from_field_info,
|
|
447
464
|
default=field_info.default,
|
|
@@ -450,7 +467,7 @@ def analyze_param(
|
|
|
450
467
|
field_info=field_info,
|
|
451
468
|
)
|
|
452
469
|
|
|
453
|
-
return type_annotation, depends, field
|
|
470
|
+
return ParamDetails(type_annotation=type_annotation, depends=depends, field=field)
|
|
454
471
|
|
|
455
472
|
|
|
456
473
|
def is_body_param(*, param_field: ModelField, is_path_param: bool) -> bool:
|
|
@@ -521,6 +538,15 @@ async def solve_generator(
|
|
|
521
538
|
return await stack.enter_async_context(cm)
|
|
522
539
|
|
|
523
540
|
|
|
541
|
+
@dataclass
|
|
542
|
+
class SolvedDependency:
|
|
543
|
+
values: Dict[str, Any]
|
|
544
|
+
errors: List[Any]
|
|
545
|
+
background_tasks: Optional[StarletteBackgroundTasks]
|
|
546
|
+
response: Response
|
|
547
|
+
dependency_cache: Dict[Tuple[Callable[..., Any], Tuple[str]], Any]
|
|
548
|
+
|
|
549
|
+
|
|
524
550
|
async def solve_dependencies(
|
|
525
551
|
*,
|
|
526
552
|
request: Union[Request, WebSocket],
|
|
@@ -531,13 +557,7 @@ async def solve_dependencies(
|
|
|
531
557
|
dependency_overrides_provider: Optional[Any] = None,
|
|
532
558
|
dependency_cache: Optional[Dict[Tuple[Callable[..., Any], Tuple[str]], Any]] = None,
|
|
533
559
|
async_exit_stack: AsyncExitStack,
|
|
534
|
-
) ->
|
|
535
|
-
Dict[str, Any],
|
|
536
|
-
List[Any],
|
|
537
|
-
Optional[StarletteBackgroundTasks],
|
|
538
|
-
Response,
|
|
539
|
-
Dict[Tuple[Callable[..., Any], Tuple[str]], Any],
|
|
540
|
-
]:
|
|
560
|
+
) -> SolvedDependency:
|
|
541
561
|
values: Dict[str, Any] = {}
|
|
542
562
|
errors: List[Any] = []
|
|
543
563
|
if response is None:
|
|
@@ -579,27 +599,21 @@ async def solve_dependencies(
|
|
|
579
599
|
dependency_cache=dependency_cache,
|
|
580
600
|
async_exit_stack=async_exit_stack,
|
|
581
601
|
)
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
_, # the subdependency returns the same response we have
|
|
587
|
-
sub_dependency_cache,
|
|
588
|
-
) = solved_result
|
|
589
|
-
dependency_cache.update(sub_dependency_cache)
|
|
590
|
-
if sub_errors:
|
|
591
|
-
errors.extend(sub_errors)
|
|
602
|
+
background_tasks = solved_result.background_tasks
|
|
603
|
+
dependency_cache.update(solved_result.dependency_cache)
|
|
604
|
+
if solved_result.errors:
|
|
605
|
+
errors.extend(solved_result.errors)
|
|
592
606
|
continue
|
|
593
607
|
if sub_dependant.use_cache and sub_dependant.cache_key in dependency_cache:
|
|
594
608
|
solved = dependency_cache[sub_dependant.cache_key]
|
|
595
609
|
elif is_gen_callable(call) or is_async_gen_callable(call):
|
|
596
610
|
solved = await solve_generator(
|
|
597
|
-
call=call, stack=async_exit_stack, sub_values=
|
|
611
|
+
call=call, stack=async_exit_stack, sub_values=solved_result.values
|
|
598
612
|
)
|
|
599
613
|
elif is_coroutine_callable(call):
|
|
600
|
-
solved = await call(**
|
|
614
|
+
solved = await call(**solved_result.values)
|
|
601
615
|
else:
|
|
602
|
-
solved = await run_in_threadpool(call, **
|
|
616
|
+
solved = await run_in_threadpool(call, **solved_result.values)
|
|
603
617
|
if sub_dependant.name is not None:
|
|
604
618
|
values[sub_dependant.name] = solved
|
|
605
619
|
if sub_dependant.cache_key not in dependency_cache:
|
|
@@ -646,7 +660,13 @@ async def solve_dependencies(
|
|
|
646
660
|
values[dependant.security_scopes_param_name] = SecurityScopes(
|
|
647
661
|
scopes=dependant.security_scopes
|
|
648
662
|
)
|
|
649
|
-
return
|
|
663
|
+
return SolvedDependency(
|
|
664
|
+
values=values,
|
|
665
|
+
errors=errors,
|
|
666
|
+
background_tasks=background_tasks,
|
|
667
|
+
response=response,
|
|
668
|
+
dependency_cache=dependency_cache,
|
|
669
|
+
)
|
|
650
670
|
|
|
651
671
|
|
|
652
672
|
def request_params_to_args(
|
|
@@ -775,7 +795,6 @@ def get_body_field(*, dependant: Dependant, name: str) -> Optional[ModelField]:
|
|
|
775
795
|
embed = getattr(field_info, "embed", None)
|
|
776
796
|
body_param_names_set = {param.name for param in flat_dependant.body_params}
|
|
777
797
|
if len(body_param_names_set) == 1 and not embed:
|
|
778
|
-
check_file_field(first_param)
|
|
779
798
|
return first_param
|
|
780
799
|
# If one field requires to embed, all have to be embedded
|
|
781
800
|
# in case a sub-dependency is evaluated with a single unique body field
|
|
@@ -807,12 +826,11 @@ def get_body_field(*, dependant: Dependant, name: str) -> Optional[ModelField]:
|
|
|
807
826
|
]
|
|
808
827
|
if len(set(body_param_media_types)) == 1:
|
|
809
828
|
BodyFieldInfo_kwargs["media_type"] = body_param_media_types[0]
|
|
810
|
-
final_field =
|
|
829
|
+
final_field = create_model_field(
|
|
811
830
|
name="body",
|
|
812
831
|
type_=BodyModel,
|
|
813
832
|
required=required,
|
|
814
833
|
alias="body",
|
|
815
834
|
field_info=BodyFieldInfo(**BodyFieldInfo_kwargs),
|
|
816
835
|
)
|
|
817
|
-
check_file_field(final_field)
|
|
818
836
|
return final_field
|
|
@@ -49,7 +49,7 @@ from fastapi.exceptions import (
|
|
|
49
49
|
from fastapi.types import DecoratedCallable, IncEx
|
|
50
50
|
from fastapi.utils import (
|
|
51
51
|
create_cloned_field,
|
|
52
|
-
|
|
52
|
+
create_model_field,
|
|
53
53
|
generate_unique_id,
|
|
54
54
|
get_value_or_default,
|
|
55
55
|
is_body_allowed_for_status_code,
|
|
@@ -292,26 +292,34 @@ def get_request_handler(
|
|
|
292
292
|
dependency_overrides_provider=dependency_overrides_provider,
|
|
293
293
|
async_exit_stack=async_exit_stack,
|
|
294
294
|
)
|
|
295
|
-
|
|
295
|
+
errors = solved_result.errors
|
|
296
296
|
if not errors:
|
|
297
297
|
raw_response = await run_endpoint_function(
|
|
298
|
-
dependant=dependant,
|
|
298
|
+
dependant=dependant,
|
|
299
|
+
values=solved_result.values,
|
|
300
|
+
is_coroutine=is_coroutine,
|
|
299
301
|
)
|
|
300
302
|
if isinstance(raw_response, Response):
|
|
301
303
|
if raw_response.background is None:
|
|
302
|
-
raw_response.background = background_tasks
|
|
304
|
+
raw_response.background = solved_result.background_tasks
|
|
303
305
|
response = raw_response
|
|
304
306
|
else:
|
|
305
|
-
response_args: Dict[str, Any] = {
|
|
307
|
+
response_args: Dict[str, Any] = {
|
|
308
|
+
"background": solved_result.background_tasks
|
|
309
|
+
}
|
|
306
310
|
# If status_code was set, use it, otherwise use the default from the
|
|
307
311
|
# response class, in the case of redirect it's 307
|
|
308
312
|
current_status_code = (
|
|
309
|
-
status_code
|
|
313
|
+
status_code
|
|
314
|
+
if status_code
|
|
315
|
+
else solved_result.response.status_code
|
|
310
316
|
)
|
|
311
317
|
if current_status_code is not None:
|
|
312
318
|
response_args["status_code"] = current_status_code
|
|
313
|
-
if
|
|
314
|
-
response_args["status_code"] =
|
|
319
|
+
if solved_result.response.status_code:
|
|
320
|
+
response_args["status_code"] = (
|
|
321
|
+
solved_result.response.status_code
|
|
322
|
+
)
|
|
315
323
|
content = await serialize_response(
|
|
316
324
|
field=response_field,
|
|
317
325
|
response_content=raw_response,
|
|
@@ -326,7 +334,7 @@ def get_request_handler(
|
|
|
326
334
|
response = actual_response_class(content, **response_args)
|
|
327
335
|
if not is_body_allowed_for_status_code(response.status_code):
|
|
328
336
|
response.body = b""
|
|
329
|
-
response.headers.raw.extend(
|
|
337
|
+
response.headers.raw.extend(solved_result.response.headers.raw)
|
|
330
338
|
if errors:
|
|
331
339
|
validation_error = RequestValidationError(
|
|
332
340
|
_normalize_errors(errors), body=body
|
|
@@ -360,11 +368,12 @@ def get_websocket_app(
|
|
|
360
368
|
dependency_overrides_provider=dependency_overrides_provider,
|
|
361
369
|
async_exit_stack=async_exit_stack,
|
|
362
370
|
)
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
371
|
+
if solved_result.errors:
|
|
372
|
+
raise WebSocketRequestValidationError(
|
|
373
|
+
_normalize_errors(solved_result.errors)
|
|
374
|
+
)
|
|
366
375
|
assert dependant.call is not None, "dependant.call must be a function"
|
|
367
|
-
await dependant.call(**values)
|
|
376
|
+
await dependant.call(**solved_result.values)
|
|
368
377
|
|
|
369
378
|
return app
|
|
370
379
|
|
|
@@ -488,7 +497,7 @@ class APIRoute(routing.Route):
|
|
|
488
497
|
status_code
|
|
489
498
|
), f"Status code {status_code} must not have a response body"
|
|
490
499
|
response_name = "Response_" + self.unique_id
|
|
491
|
-
self.response_field =
|
|
500
|
+
self.response_field = create_model_field(
|
|
492
501
|
name=response_name,
|
|
493
502
|
type_=self.response_model,
|
|
494
503
|
mode="serialization",
|
|
@@ -521,7 +530,7 @@ class APIRoute(routing.Route):
|
|
|
521
530
|
additional_status_code
|
|
522
531
|
), f"Status code {additional_status_code} must not have a response body"
|
|
523
532
|
response_name = f"Response_{additional_status_code}_{self.unique_id}"
|
|
524
|
-
response_field =
|
|
533
|
+
response_field = create_model_field(name=response_name, type_=model)
|
|
525
534
|
response_fields[additional_status_code] = response_field
|
|
526
535
|
if response_fields:
|
|
527
536
|
self.response_fields: Dict[Union[int, str], ModelField] = response_fields
|
|
@@ -60,9 +60,9 @@ def get_path_param_names(path: str) -> Set[str]:
|
|
|
60
60
|
return set(re.findall("{(.*?)}", path))
|
|
61
61
|
|
|
62
62
|
|
|
63
|
-
def
|
|
63
|
+
def create_model_field(
|
|
64
64
|
name: str,
|
|
65
|
-
type_:
|
|
65
|
+
type_: Any,
|
|
66
66
|
class_validators: Optional[Dict[str, Validator]] = None,
|
|
67
67
|
default: Optional[Any] = Undefined,
|
|
68
68
|
required: Union[bool, UndefinedType] = Undefined,
|
|
@@ -71,9 +71,6 @@ def create_response_field(
|
|
|
71
71
|
alias: Optional[str] = None,
|
|
72
72
|
mode: Literal["validation", "serialization"] = "validation",
|
|
73
73
|
) -> ModelField:
|
|
74
|
-
"""
|
|
75
|
-
Create a new response field. Raises if type_ is invalid.
|
|
76
|
-
"""
|
|
77
74
|
class_validators = class_validators or {}
|
|
78
75
|
if PYDANTIC_V2:
|
|
79
76
|
field_info = field_info or FieldInfo(
|
|
@@ -135,7 +132,7 @@ def create_cloned_field(
|
|
|
135
132
|
use_type.__fields__[f.name] = create_cloned_field(
|
|
136
133
|
f, cloned_types=cloned_types
|
|
137
134
|
)
|
|
138
|
-
new_field =
|
|
135
|
+
new_field = create_model_field(name=field.name, type_=use_type)
|
|
139
136
|
new_field.has_alias = field.has_alias # type: ignore[attr-defined]
|
|
140
137
|
new_field.alias = field.alias # type: ignore[misc]
|
|
141
138
|
new_field.class_validators = field.class_validators # type: ignore[attr-defined]
|
|
@@ -8,7 +8,7 @@ pyyaml >=5.3.1,<7.0.0
|
|
|
8
8
|
# For Material for MkDocs, Chinese search
|
|
9
9
|
jieba==0.42.1
|
|
10
10
|
# For image processing by Material for MkDocs
|
|
11
|
-
pillow==10.
|
|
11
|
+
pillow==10.4.0
|
|
12
12
|
# For image processing by Material for MkDocs
|
|
13
13
|
cairosvg==2.7.1
|
|
14
14
|
mkdocstrings[python]==0.25.1
|