fastapi 0.116.1__tar.gz → 0.116.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of fastapi might be problematic. Click here for more details.
- {fastapi-0.116.1 → fastapi-0.116.2}/PKG-INFO +28 -28
- {fastapi-0.116.1 → fastapi-0.116.2}/README.md +26 -26
- fastapi-0.116.2/docs_src/app_testing/tutorial004.py +43 -0
- fastapi-0.116.2/docs_src/behind_a_proxy/tutorial001_01.py +8 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/handling_errors/tutorial005.py +2 -2
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/security/tutorial005.py +3 -2
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/security/tutorial005_an.py +3 -2
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/security/tutorial005_an_py310.py +3 -2
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/security/tutorial005_an_py39.py +3 -2
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/security/tutorial005_py310.py +3 -2
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/security/tutorial005_py39.py +3 -2
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/__init__.py +1 -1
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/exception_handlers.py +2 -2
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/openapi/utils.py +1 -2
- {fastapi-0.116.1 → fastapi-0.116.2}/pyproject.toml +2 -2
- {fastapi-0.116.1 → fastapi-0.116.2}/requirements-docs-tests.txt +2 -2
- {fastapi-0.116.1 → fastapi-0.116.2}/requirements-docs.txt +3 -3
- {fastapi-0.116.1 → fastapi-0.116.2}/requirements-github-actions.txt +1 -1
- {fastapi-0.116.1 → fastapi-0.116.2}/requirements-tests.txt +1 -1
- fastapi-0.116.2/requirements-translations.txt +2 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/scripts/mkdocs_hooks.py +1 -1
- {fastapi-0.116.1 → fastapi-0.116.2}/scripts/people.py +2 -1
- fastapi-0.116.2/scripts/translate.py +370 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_enforce_once_required_parameter.py +1 -1
- fastapi-0.116.2/tests/test_tutorial/test_behind_a_proxy/test_tutorial001_01.py +21 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_custom_request_and_route/test_tutorial002.py +5 -3
- fastapi-0.116.2/tests/test_tutorial/test_testing/test_tutorial004.py +5 -0
- fastapi-0.116.1/requirements-translations.txt +0 -1
- fastapi-0.116.1/scripts/translate.py +0 -162
- {fastapi-0.116.1 → fastapi-0.116.2}/LICENSE +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs/en/docs/img/favicon.png +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/additional_responses/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/additional_responses/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/additional_responses/tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/additional_responses/tutorial004.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/additional_status_codes/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/additional_status_codes/tutorial001_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/additional_status_codes/tutorial001_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/additional_status_codes/tutorial001_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/additional_status_codes/tutorial001_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/advanced_middleware/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/advanced_middleware/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/advanced_middleware/tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/app_testing/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/app_testing/app_b/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/app_testing/app_b/main.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/app_testing/app_b/test_main.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/app_testing/app_b_an/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/app_testing/app_b_an/main.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/app_testing/app_b_an/test_main.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/app_testing/app_b_an_py310/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/app_testing/app_b_an_py310/main.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/app_testing/app_b_an_py310/test_main.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/app_testing/app_b_an_py39/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/app_testing/app_b_an_py39/main.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/app_testing/app_b_an_py39/test_main.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/app_testing/app_b_py310/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/app_testing/app_b_py310/main.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/app_testing/app_b_py310/test_main.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/app_testing/main.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/app_testing/test_main.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/app_testing/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/app_testing/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/app_testing/tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/async_tests/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/async_tests/main.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/async_tests/test_main.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/background_tasks/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/background_tasks/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/background_tasks/tutorial002_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/background_tasks/tutorial002_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/background_tasks/tutorial002_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/background_tasks/tutorial002_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/behind_a_proxy/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/behind_a_proxy/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/behind_a_proxy/tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/behind_a_proxy/tutorial004.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/bigger_applications/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/bigger_applications/app/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/bigger_applications/app/dependencies.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/bigger_applications/app/internal/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/bigger_applications/app/internal/admin.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/bigger_applications/app/main.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/bigger_applications/app/routers/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/bigger_applications/app/routers/items.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/bigger_applications/app/routers/users.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/bigger_applications/app_an/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/bigger_applications/app_an/dependencies.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/bigger_applications/app_an/internal/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/bigger_applications/app_an/internal/admin.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/bigger_applications/app_an/main.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/bigger_applications/app_an/routers/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/bigger_applications/app_an/routers/items.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/bigger_applications/app_an/routers/users.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/bigger_applications/app_an_py39/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/bigger_applications/app_an_py39/dependencies.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/bigger_applications/app_an_py39/internal/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/bigger_applications/app_an_py39/internal/admin.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/bigger_applications/app_an_py39/main.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/bigger_applications/app_an_py39/routers/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/bigger_applications/app_an_py39/routers/items.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/bigger_applications/app_an_py39/routers/users.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body/tutorial001_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body/tutorial002_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body/tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body/tutorial003_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body/tutorial004.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body/tutorial004_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_fields/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_fields/tutorial001_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_fields/tutorial001_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_fields/tutorial001_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_fields/tutorial001_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_multiple_params/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_multiple_params/tutorial001_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_multiple_params/tutorial001_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_multiple_params/tutorial001_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_multiple_params/tutorial001_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_multiple_params/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_multiple_params/tutorial002_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_multiple_params/tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_multiple_params/tutorial003_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_multiple_params/tutorial003_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_multiple_params/tutorial003_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_multiple_params/tutorial003_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_multiple_params/tutorial004.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_multiple_params/tutorial004_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_multiple_params/tutorial004_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_multiple_params/tutorial004_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_multiple_params/tutorial004_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_multiple_params/tutorial005.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_multiple_params/tutorial005_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_multiple_params/tutorial005_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_multiple_params/tutorial005_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_multiple_params/tutorial005_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_nested_models/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_nested_models/tutorial001_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_nested_models/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_nested_models/tutorial002_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_nested_models/tutorial002_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_nested_models/tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_nested_models/tutorial003_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_nested_models/tutorial003_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_nested_models/tutorial004.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_nested_models/tutorial004_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_nested_models/tutorial004_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_nested_models/tutorial005.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_nested_models/tutorial005_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_nested_models/tutorial005_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_nested_models/tutorial006.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_nested_models/tutorial006_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_nested_models/tutorial006_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_nested_models/tutorial007.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_nested_models/tutorial007_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_nested_models/tutorial007_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_nested_models/tutorial008.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_nested_models/tutorial008_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_nested_models/tutorial009.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_nested_models/tutorial009_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_updates/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_updates/tutorial001_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_updates/tutorial001_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_updates/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_updates/tutorial002_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/body_updates/tutorial002_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/conditional_openapi/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/configure_swagger_ui/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/configure_swagger_ui/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/configure_swagger_ui/tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/cookie_param_models/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/cookie_param_models/tutorial001_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/cookie_param_models/tutorial001_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/cookie_param_models/tutorial001_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/cookie_param_models/tutorial001_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/cookie_param_models/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/cookie_param_models/tutorial002_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/cookie_param_models/tutorial002_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/cookie_param_models/tutorial002_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/cookie_param_models/tutorial002_pv1.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/cookie_param_models/tutorial002_pv1_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/cookie_param_models/tutorial002_pv1_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/cookie_param_models/tutorial002_pv1_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/cookie_param_models/tutorial002_pv1_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/cookie_param_models/tutorial002_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/cookie_params/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/cookie_params/tutorial001_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/cookie_params/tutorial001_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/cookie_params/tutorial001_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/cookie_params/tutorial001_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/cors/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/custom_docs_ui/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/custom_docs_ui/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/custom_request_and_route/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/custom_request_and_route/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/custom_request_and_route/tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/custom_response/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/custom_response/tutorial001b.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/custom_response/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/custom_response/tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/custom_response/tutorial004.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/custom_response/tutorial005.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/custom_response/tutorial006.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/custom_response/tutorial006b.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/custom_response/tutorial006c.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/custom_response/tutorial007.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/custom_response/tutorial008.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/custom_response/tutorial009.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/custom_response/tutorial009b.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/custom_response/tutorial009c.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/custom_response/tutorial010.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dataclasses/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dataclasses/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dataclasses/tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/debugging/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial001_02_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial001_02_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial001_02_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial001_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial001_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial001_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial001_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial002_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial002_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial002_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial002_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial003_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial003_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial003_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial003_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial004.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial004_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial004_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial004_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial004_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial005.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial005_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial005_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial005_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial005_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial006.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial006_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial006_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial007.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial008.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial008_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial008_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial008b.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial008b_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial008b_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial008c.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial008c_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial008c_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial008d.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial008d_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial008d_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial009.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial010.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial011.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial011_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial011_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial012.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial012_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependencies/tutorial012_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependency_testing/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependency_testing/tutorial001_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependency_testing/tutorial001_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependency_testing/tutorial001_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/dependency_testing/tutorial001_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/encoder/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/encoder/tutorial001_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/events/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/events/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/events/tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/extending_openapi/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/extra_data_types/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/extra_data_types/tutorial001_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/extra_data_types/tutorial001_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/extra_data_types/tutorial001_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/extra_data_types/tutorial001_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/extra_models/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/extra_models/tutorial001_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/extra_models/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/extra_models/tutorial002_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/extra_models/tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/extra_models/tutorial003_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/extra_models/tutorial004.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/extra_models/tutorial004_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/extra_models/tutorial005.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/extra_models/tutorial005_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/first_steps/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/first_steps/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/first_steps/tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/generate_clients/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/generate_clients/tutorial001_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/generate_clients/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/generate_clients/tutorial002_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/generate_clients/tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/generate_clients/tutorial003_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/generate_clients/tutorial004.js +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/generate_clients/tutorial004.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/graphql/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/handling_errors/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/handling_errors/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/handling_errors/tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/handling_errors/tutorial004.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/handling_errors/tutorial006.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_param_models/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_param_models/tutorial001_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_param_models/tutorial001_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_param_models/tutorial001_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_param_models/tutorial001_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_param_models/tutorial001_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_param_models/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_param_models/tutorial002_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_param_models/tutorial002_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_param_models/tutorial002_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_param_models/tutorial002_pv1.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_param_models/tutorial002_pv1_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_param_models/tutorial002_pv1_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_param_models/tutorial002_pv1_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_param_models/tutorial002_pv1_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_param_models/tutorial002_pv1_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_param_models/tutorial002_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_param_models/tutorial002_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_param_models/tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_param_models/tutorial003_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_param_models/tutorial003_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_param_models/tutorial003_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_param_models/tutorial003_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_param_models/tutorial003_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_params/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_params/tutorial001_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_params/tutorial001_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_params/tutorial001_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_params/tutorial001_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_params/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_params/tutorial002_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_params/tutorial002_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_params/tutorial002_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_params/tutorial002_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_params/tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_params/tutorial003_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_params/tutorial003_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_params/tutorial003_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_params/tutorial003_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/header_params/tutorial003_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/metadata/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/metadata/tutorial001_1.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/metadata/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/metadata/tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/metadata/tutorial004.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/middleware/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/openapi_callbacks/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/openapi_webhooks/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_operation_advanced_configuration/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_operation_advanced_configuration/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_operation_advanced_configuration/tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_operation_advanced_configuration/tutorial004.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_operation_advanced_configuration/tutorial005.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_operation_advanced_configuration/tutorial006.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_operation_advanced_configuration/tutorial007.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_operation_advanced_configuration/tutorial007_pv1.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_operation_configuration/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_operation_configuration/tutorial001_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_operation_configuration/tutorial001_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_operation_configuration/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_operation_configuration/tutorial002_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_operation_configuration/tutorial002_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_operation_configuration/tutorial002b.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_operation_configuration/tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_operation_configuration/tutorial003_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_operation_configuration/tutorial003_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_operation_configuration/tutorial004.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_operation_configuration/tutorial004_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_operation_configuration/tutorial004_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_operation_configuration/tutorial005.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_operation_configuration/tutorial005_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_operation_configuration/tutorial005_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_operation_configuration/tutorial006.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_params/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_params/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_params/tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_params/tutorial003b.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_params/tutorial004.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_params/tutorial005.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_params_numeric_validations/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_params_numeric_validations/tutorial001_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_params_numeric_validations/tutorial001_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_params_numeric_validations/tutorial001_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_params_numeric_validations/tutorial001_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_params_numeric_validations/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_params_numeric_validations/tutorial002_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_params_numeric_validations/tutorial002_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_params_numeric_validations/tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_params_numeric_validations/tutorial003_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_params_numeric_validations/tutorial003_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_params_numeric_validations/tutorial004.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_params_numeric_validations/tutorial004_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_params_numeric_validations/tutorial004_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_params_numeric_validations/tutorial005.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_params_numeric_validations/tutorial005_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_params_numeric_validations/tutorial005_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_params_numeric_validations/tutorial006.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_params_numeric_validations/tutorial006_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/path_params_numeric_validations/tutorial006_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/python_types/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/python_types/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/python_types/tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/python_types/tutorial004.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/python_types/tutorial005.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/python_types/tutorial006.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/python_types/tutorial006_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/python_types/tutorial007.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/python_types/tutorial007_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/python_types/tutorial008.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/python_types/tutorial008_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/python_types/tutorial008b.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/python_types/tutorial008b_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/python_types/tutorial009.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/python_types/tutorial009_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/python_types/tutorial009b.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/python_types/tutorial009c.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/python_types/tutorial009c_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/python_types/tutorial010.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/python_types/tutorial011.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/python_types/tutorial011_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/python_types/tutorial011_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/python_types/tutorial012.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/python_types/tutorial013.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/python_types/tutorial013_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_param_models/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_param_models/tutorial001_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_param_models/tutorial001_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_param_models/tutorial001_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_param_models/tutorial001_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_param_models/tutorial001_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_param_models/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_param_models/tutorial002_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_param_models/tutorial002_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_param_models/tutorial002_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_param_models/tutorial002_pv1.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_param_models/tutorial002_pv1_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_param_models/tutorial002_pv1_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_param_models/tutorial002_pv1_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_param_models/tutorial002_pv1_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_param_models/tutorial002_pv1_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_param_models/tutorial002_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_param_models/tutorial002_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params/tutorial002_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params/tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params/tutorial003_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params/tutorial004.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params/tutorial004_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params/tutorial005.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params/tutorial006.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params/tutorial006_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params/tutorial006b.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial001_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial002_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial002_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial002_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial003_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial003_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial003_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial003_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial004.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial004_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial004_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial004_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial004_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial004_regex_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial005.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial005_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial005_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial006.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial006_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial006_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial006c.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial006c_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial006c_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial006c_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial006c_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial007.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial007_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial007_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial007_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial007_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial008.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial008_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial008_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial008_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial008_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial009.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial009_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial009_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial009_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial009_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial010.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial010_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial010_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial010_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial010_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial011.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial011_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial011_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial011_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial011_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial011_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial012.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial012_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial012_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial012_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial013.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial013_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial013_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial014.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial014_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial014_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial014_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial014_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial015_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial015_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/query_params_str_validations/tutorial015_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/request_files/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/request_files/tutorial001_02.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/request_files/tutorial001_02_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/request_files/tutorial001_02_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/request_files/tutorial001_02_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/request_files/tutorial001_02_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/request_files/tutorial001_03.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/request_files/tutorial001_03_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/request_files/tutorial001_03_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/request_files/tutorial001_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/request_files/tutorial001_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/request_files/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/request_files/tutorial002_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/request_files/tutorial002_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/request_files/tutorial002_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/request_files/tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/request_files/tutorial003_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/request_files/tutorial003_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/request_files/tutorial003_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/request_form_models/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/request_form_models/tutorial001_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/request_form_models/tutorial001_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/request_form_models/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/request_form_models/tutorial002_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/request_form_models/tutorial002_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/request_form_models/tutorial002_pv1.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/request_form_models/tutorial002_pv1_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/request_form_models/tutorial002_pv1_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/request_forms/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/request_forms/tutorial001_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/request_forms/tutorial001_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/request_forms_and_files/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/request_forms_and_files/tutorial001_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/request_forms_and_files/tutorial001_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/response_change_status_code/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/response_cookies/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/response_cookies/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/response_directly/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/response_directly/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/response_headers/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/response_headers/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/response_model/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/response_model/tutorial001_01.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/response_model/tutorial001_01_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/response_model/tutorial001_01_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/response_model/tutorial001_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/response_model/tutorial001_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/response_model/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/response_model/tutorial002_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/response_model/tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/response_model/tutorial003_01.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/response_model/tutorial003_01_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/response_model/tutorial003_02.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/response_model/tutorial003_03.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/response_model/tutorial003_04.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/response_model/tutorial003_04_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/response_model/tutorial003_05.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/response_model/tutorial003_05_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/response_model/tutorial003_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/response_model/tutorial004.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/response_model/tutorial004_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/response_model/tutorial004_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/response_model/tutorial005.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/response_model/tutorial005_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/response_model/tutorial006.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/response_model/tutorial006_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/response_status_code/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/response_status_code/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/schema_extra_example/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/schema_extra_example/tutorial001_pv1.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/schema_extra_example/tutorial001_pv1_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/schema_extra_example/tutorial001_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/schema_extra_example/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/schema_extra_example/tutorial002_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/schema_extra_example/tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/schema_extra_example/tutorial003_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/schema_extra_example/tutorial003_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/schema_extra_example/tutorial003_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/schema_extra_example/tutorial003_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/schema_extra_example/tutorial004.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/schema_extra_example/tutorial004_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/schema_extra_example/tutorial004_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/schema_extra_example/tutorial004_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/schema_extra_example/tutorial004_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/schema_extra_example/tutorial005.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/schema_extra_example/tutorial005_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/schema_extra_example/tutorial005_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/schema_extra_example/tutorial005_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/schema_extra_example/tutorial005_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/security/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/security/tutorial001_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/security/tutorial001_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/security/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/security/tutorial002_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/security/tutorial002_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/security/tutorial002_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/security/tutorial002_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/security/tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/security/tutorial003_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/security/tutorial003_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/security/tutorial003_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/security/tutorial003_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/security/tutorial004.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/security/tutorial004_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/security/tutorial004_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/security/tutorial004_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/security/tutorial004_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/security/tutorial006.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/security/tutorial006_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/security/tutorial006_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/security/tutorial007.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/security/tutorial007_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/security/tutorial007_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/separate_openapi_schemas/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/separate_openapi_schemas/tutorial001_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/separate_openapi_schemas/tutorial001_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/separate_openapi_schemas/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/separate_openapi_schemas/tutorial002_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/separate_openapi_schemas/tutorial002_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/settings/app01/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/settings/app01/config.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/settings/app01/main.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/settings/app02/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/settings/app02/config.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/settings/app02/main.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/settings/app02/test_main.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/settings/app02_an/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/settings/app02_an/config.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/settings/app02_an/main.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/settings/app02_an/test_main.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/settings/app02_an_py39/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/settings/app02_an_py39/config.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/settings/app02_an_py39/main.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/settings/app02_an_py39/test_main.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/settings/app03/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/settings/app03/config.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/settings/app03/main.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/settings/app03_an/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/settings/app03_an/config.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/settings/app03_an/config_pv1.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/settings/app03_an/main.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/settings/app03_an_py39/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/settings/app03_an_py39/config.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/settings/app03_an_py39/main.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/settings/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/settings/tutorial001_pv1.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/sql_databases/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/sql_databases/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/sql_databases/tutorial001_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/sql_databases/tutorial001_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/sql_databases/tutorial001_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/sql_databases/tutorial001_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/sql_databases/tutorial001_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/sql_databases/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/sql_databases/tutorial002_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/sql_databases/tutorial002_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/sql_databases/tutorial002_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/sql_databases/tutorial002_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/sql_databases/tutorial002_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/static_files/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/sub_applications/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/templates/static/styles.css +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/templates/templates/item.html +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/templates/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/using_request_directly/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/websockets/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/websockets/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/websockets/tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/websockets/tutorial002_an.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/websockets/tutorial002_an_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/websockets/tutorial002_an_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/websockets/tutorial002_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/websockets/tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/websockets/tutorial003_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/docs_src/wsgi/tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/__main__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/_compat.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/applications.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/background.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/cli.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/concurrency.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/datastructures.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/dependencies/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/dependencies/models.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/dependencies/utils.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/encoders.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/exceptions.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/logger.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/middleware/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/middleware/cors.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/middleware/gzip.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/middleware/httpsredirect.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/middleware/trustedhost.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/middleware/wsgi.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/openapi/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/openapi/constants.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/openapi/docs.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/openapi/models.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/param_functions.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/params.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/py.typed +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/requests.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/responses.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/routing.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/security/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/security/api_key.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/security/base.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/security/http.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/security/oauth2.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/security/open_id_connect_url.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/security/utils.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/staticfiles.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/templating.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/testclient.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/types.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/utils.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/fastapi/websockets.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/pdm_build.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/requirements-docs-insiders.txt +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/requirements.txt +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/scripts/contributors.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/scripts/deploy_docs_status.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/scripts/docs.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/scripts/format.sh +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/scripts/label_approved.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/scripts/lint.sh +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/scripts/notify_translations.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/scripts/playwright/cookie_param_models/image01.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/scripts/playwright/header_param_models/image01.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/scripts/playwright/query_param_models/image01.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/scripts/playwright/request_form_models/image01.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/scripts/playwright/separate_openapi_schemas/image01.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/scripts/playwright/separate_openapi_schemas/image02.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/scripts/playwright/separate_openapi_schemas/image03.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/scripts/playwright/separate_openapi_schemas/image04.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/scripts/playwright/separate_openapi_schemas/image05.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/scripts/playwright/sql_databases/image01.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/scripts/playwright/sql_databases/image02.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/scripts/sponsors.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/scripts/test-cov-html.sh +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/scripts/test.sh +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/scripts/topic_repos.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/main.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_additional_properties.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_additional_properties_bool.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_additional_response_extra.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_additional_responses_bad.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_additional_responses_custom_model_in_callback.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_additional_responses_custom_validationerror.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_additional_responses_default_validationerror.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_additional_responses_response_class.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_additional_responses_router.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_allow_inf_nan_in_enforcing.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_ambiguous_params.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_annotated.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_application.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_callable_endpoint.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_compat.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_computed_fields.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_custom_middleware_exception.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_custom_route_class.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_custom_schema_fields.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_custom_swagger_ui_redirect.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_datastructures.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_datetime_custom_encoder.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_default_response_class.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_default_response_class_router.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_dependency_cache.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_dependency_class.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_dependency_contextmanager.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_dependency_contextvars.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_dependency_duplicates.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_dependency_normal_exceptions.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_dependency_overrides.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_dependency_security_overrides.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_deprecated_openapi_prefix.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_duplicate_models_openapi.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_empty_router.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_exception_handlers.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_extra_routes.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_fastapi_cli.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_filter_pydantic_sub_model/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_filter_pydantic_sub_model/app_pv1.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_filter_pydantic_sub_model/test_filter_pydantic_sub_model_pv1.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_filter_pydantic_sub_model_pv2.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_forms_from_non_typing_sequences.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_forms_single_model.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_forms_single_param.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_generate_unique_id_function.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_generic_parameterless_depends.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_get_request_body.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_http_connection_injection.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_include_route.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_include_router_defaults_overrides.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_infer_param_optionality.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_inherited_custom_class.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_invalid_path_param.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_invalid_sequence_param.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_jsonable_encoder.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_local_docs.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_modules_same_name_body/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_modules_same_name_body/app/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_modules_same_name_body/app/a.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_modules_same_name_body/app/b.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_modules_same_name_body/app/main.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_modules_same_name_body/test_main.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_multi_body_errors.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_multi_query_errors.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_multipart_installation.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_no_swagger_ui_redirect.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_openapi_examples.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_openapi_model_description_trim_on_formfeed.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_openapi_query_parameter_extension.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_openapi_route_extensions.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_openapi_separate_input_output_schemas.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_openapi_servers.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_operations_signatures.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_orjson_response_class.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_param_class.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_param_in_path_and_dependency.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_param_include_in_schema.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_params_repr.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_path.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_put_no_body.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_query.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_read_with_orm_mode.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_regex_deprecated_body.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_regex_deprecated_params.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_repeated_cookie_headers.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_repeated_dependency_schema.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_repeated_parameter_alias.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_reponse_set_reponse_code_empty.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_request_body_parameters_media_type.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_required_noneable.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_response_by_alias.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_response_change_status_code.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_response_class_no_mediatype.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_response_code_no_body.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_response_model_as_return_annotation.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_response_model_data_filter.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_response_model_data_filter_no_inheritance.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_response_model_include_exclude.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_response_model_invalid.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_response_model_sub_types.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_route_scope.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_router_events.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_router_prefix_with_template.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_router_redirect_slashes.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_schema_extra_examples.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_security_api_key_cookie.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_security_api_key_cookie_description.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_security_api_key_cookie_optional.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_security_api_key_header.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_security_api_key_header_description.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_security_api_key_header_optional.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_security_api_key_query.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_security_api_key_query_description.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_security_api_key_query_optional.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_security_http_base.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_security_http_base_description.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_security_http_base_optional.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_security_http_basic_optional.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_security_http_basic_realm.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_security_http_basic_realm_description.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_security_http_bearer.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_security_http_bearer_description.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_security_http_bearer_optional.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_security_http_digest.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_security_http_digest_description.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_security_http_digest_optional.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_security_oauth2.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_security_oauth2_authorization_code_bearer.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_security_oauth2_authorization_code_bearer_description.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_security_oauth2_optional.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_security_oauth2_optional_description.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_security_oauth2_password_bearer_optional.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_security_oauth2_password_bearer_optional_description.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_security_openid_connect.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_security_openid_connect_description.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_security_openid_connect_optional.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_serialize_response.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_serialize_response_dataclass.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_serialize_response_model.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_skip_defaults.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_starlette_exception.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_starlette_urlconvertors.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_sub_callbacks.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_swagger_ui_init_oauth.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tuples.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_additional_responses/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_additional_responses/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_additional_responses/test_tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_additional_responses/test_tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_additional_responses/test_tutorial004.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_additional_status_codes/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_additional_status_codes/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_advanced_middleware/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_advanced_middleware/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_advanced_middleware/test_tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_advanced_middleware/test_tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_async_tests/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_async_tests/test_main.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_background_tasks/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_background_tasks/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_background_tasks/test_tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_behind_a_proxy/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_behind_a_proxy/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_behind_a_proxy/test_tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_behind_a_proxy/test_tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_behind_a_proxy/test_tutorial004.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_bigger_applications/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_bigger_applications/test_main.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_body/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_body/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_body_fields/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_body_fields/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_body_multiple_params/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_body_multiple_params/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_body_multiple_params/test_tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_body_nested_models/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_body_nested_models/test_tutorial009.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_body_updates/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_body_updates/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_conditional_openapi/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_conditional_openapi/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_configure_swagger_ui/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_configure_swagger_ui/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_configure_swagger_ui/test_tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_configure_swagger_ui/test_tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_cookie_param_models/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_cookie_param_models/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_cookie_param_models/test_tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_cookie_params/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_cookie_params/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_cors/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_cors/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_custom_docs_ui/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_custom_docs_ui/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_custom_docs_ui/test_tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_custom_request_and_route/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_custom_request_and_route/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_custom_request_and_route/test_tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_custom_response/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_custom_response/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_custom_response/test_tutorial001b.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_custom_response/test_tutorial004.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_custom_response/test_tutorial005.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_custom_response/test_tutorial006.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_custom_response/test_tutorial006b.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_custom_response/test_tutorial006c.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_custom_response/test_tutorial007.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_custom_response/test_tutorial008.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_custom_response/test_tutorial009.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_custom_response/test_tutorial009b.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_custom_response/test_tutorial009c.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_dataclasses/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_dataclasses/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_dataclasses/test_tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_dataclasses/test_tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_dependencies/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_dependencies/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_dependencies/test_tutorial004.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_dependencies/test_tutorial006.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_dependencies/test_tutorial008b.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_dependencies/test_tutorial008c.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_dependencies/test_tutorial008d.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_dependencies/test_tutorial012.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_events/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_events/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_events/test_tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_events/test_tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_extending_openapi/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_extending_openapi/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_extra_data_types/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_extra_data_types/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_extra_models/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_extra_models/test_tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_extra_models/test_tutorial004.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_extra_models/test_tutorial005.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_first_steps/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_first_steps/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_generate_clients/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_generate_clients/test_tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_handling_errors/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_handling_errors/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_handling_errors/test_tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_handling_errors/test_tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_handling_errors/test_tutorial004.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_handling_errors/test_tutorial005.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_handling_errors/test_tutorial006.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_header_param_models/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_header_param_models/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_header_param_models/test_tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_header_param_models/test_tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_header_params/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_header_params/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_header_params/test_tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_header_params/test_tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_metadata/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_metadata/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_metadata/test_tutorial001_1.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_metadata/test_tutorial004.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_openapi_callbacks/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_openapi_callbacks/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_openapi_webhooks/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_openapi_webhooks/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_path_operation_advanced_configurations/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial004.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial005.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial006.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial007.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial007_pv1.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_path_operation_configurations/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_path_operation_configurations/test_tutorial002b.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_path_operation_configurations/test_tutorial005.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_path_operation_configurations/test_tutorial006.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_path_params/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_path_params/test_tutorial004.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_path_params/test_tutorial005.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_query_param_models/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_query_param_models/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_query_param_models/test_tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_query_params/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_query_params/test_tutorial005.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_query_params/test_tutorial006.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_query_params_str_validations/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_query_params_str_validations/test_tutorial010.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_query_params_str_validations/test_tutorial011.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_query_params_str_validations/test_tutorial012.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_query_params_str_validations/test_tutorial013.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_query_params_str_validations/test_tutorial014.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_query_params_str_validations/test_tutorial015.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_request_files/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_request_files/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_request_files/test_tutorial001_02.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_request_files/test_tutorial001_03.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_request_files/test_tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_request_files/test_tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_request_form_models/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_request_form_models/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_request_form_models/test_tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_request_form_models/test_tutorial002_pv1.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_request_forms/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_request_forms/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_request_forms_and_files/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_request_forms_and_files/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_response_change_status_code/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_response_change_status_code/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_response_cookies/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_response_cookies/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_response_cookies/test_tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_response_headers/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_response_headers/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_response_headers/test_tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_response_model/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_response_model/test_tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_response_model/test_tutorial003_01.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_response_model/test_tutorial003_02.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_response_model/test_tutorial003_03.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_response_model/test_tutorial003_04.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_response_model/test_tutorial003_04_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_response_model/test_tutorial003_05.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_response_model/test_tutorial003_py310.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_response_model/test_tutorial004.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_response_model/test_tutorial005.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_response_model/test_tutorial006.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_schema_extra_example/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_schema_extra_example/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_schema_extra_example/test_tutorial001_pv1.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_schema_extra_example/test_tutorial004.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_schema_extra_example/test_tutorial005.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_security/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_security/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_security/test_tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_security/test_tutorial005.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_security/test_tutorial006.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_separate_openapi_schemas/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_separate_openapi_schemas/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_separate_openapi_schemas/test_tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_settings/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_settings/test_app02.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_settings/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_sql_databases/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_sql_databases/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_sql_databases/test_tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_sub_applications/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_sub_applications/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_templates/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_templates/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_testing/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_testing/test_main.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_testing/test_main_b.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_testing/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_testing/test_tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_testing/test_tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_testing_dependencies/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_testing_dependencies/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_websockets/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_websockets/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_websockets/test_tutorial002.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_websockets/test_tutorial003.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_websockets/test_tutorial003_py39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_wsgi/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_tutorial/test_wsgi/test_tutorial001.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_typing_python39.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_union_body.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_union_forms.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_union_inherited_body.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_validate_response.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_validate_response_dataclass.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_validate_response_recursive/__init__.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_validate_response_recursive/app.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_validate_response_recursive/test_validate_response_recursive.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_webhooks_security.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_ws_dependencies.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/test_ws_router.py +0 -0
- {fastapi-0.116.1 → fastapi-0.116.2}/tests/utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: fastapi
|
|
3
|
-
Version: 0.116.
|
|
3
|
+
Version: 0.116.2
|
|
4
4
|
Summary: FastAPI framework, high performance, easy to learn, fast to code, ready for production
|
|
5
5
|
Author-Email: =?utf-8?q?Sebasti=C3=A1n_Ram=C3=ADrez?= <tiangolo@gmail.com>
|
|
6
6
|
Classifier: Intended Audience :: Information Technology
|
|
@@ -38,7 +38,7 @@ Project-URL: Repository, https://github.com/fastapi/fastapi
|
|
|
38
38
|
Project-URL: Issues, https://github.com/fastapi/fastapi/issues
|
|
39
39
|
Project-URL: Changelog, https://fastapi.tiangolo.com/release-notes/
|
|
40
40
|
Requires-Python: >=3.8
|
|
41
|
-
Requires-Dist: starlette<0.
|
|
41
|
+
Requires-Dist: starlette<0.49.0,>=0.40.0
|
|
42
42
|
Requires-Dist: pydantic!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.7.4
|
|
43
43
|
Requires-Dist: typing-extensions>=4.8.0
|
|
44
44
|
Provides-Extra: standard
|
|
@@ -114,12 +114,11 @@ The key features are:
|
|
|
114
114
|
|
|
115
115
|
<small>* estimation based on tests on an internal development team, building production applications.</small>
|
|
116
116
|
|
|
117
|
-
## Sponsors
|
|
117
|
+
## Sponsors { #sponsors }
|
|
118
118
|
|
|
119
119
|
<!-- sponsors -->
|
|
120
120
|
|
|
121
121
|
<a href="https://blockbee.io?ref=fastapi" target="_blank" title="BlockBee Cryptocurrency Payment Gateway"><img src="https://fastapi.tiangolo.com/img/sponsors/blockbee.png"></a>
|
|
122
|
-
<a href="https://platform.sh/try-it-now/?utm_source=fastapi-signup&utm_medium=banner&utm_campaign=FastAPI-signup-June-2023" target="_blank" title="Build, run and scale your apps on a modern, reliable, and secure PaaS."><img src="https://fastapi.tiangolo.com/img/sponsors/platform-sh.png"></a>
|
|
123
122
|
<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>
|
|
124
123
|
<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>
|
|
125
124
|
<a href="https://zuplo.link/fastapi-gh" target="_blank" title="Zuplo: Deploy, Secure, Document, and Monetize your FastAPI"><img src="https://fastapi.tiangolo.com/img/sponsors/zuplo.png"></a>
|
|
@@ -127,7 +126,8 @@ The key features are:
|
|
|
127
126
|
<a href="https://docs.render.com/deploy-fastapi?utm_source=deploydoc&utm_medium=referral&utm_campaign=fastapi" target="_blank" title="Deploy & scale any full-stack web app on Render. Focus on building apps, not infra."><img src="https://fastapi.tiangolo.com/img/sponsors/render.svg"></a>
|
|
128
127
|
<a href="https://www.coderabbit.ai/?utm_source=fastapi&utm_medium=badge&utm_campaign=fastapi" target="_blank" title="Cut Code Review Time & Bugs in Half with CodeRabbit"><img src="https://fastapi.tiangolo.com/img/sponsors/coderabbit.png"></a>
|
|
129
128
|
<a href="https://subtotal.com/?utm_source=fastapi&utm_medium=sponsorship&utm_campaign=open-source" target="_blank" title="The Gold Standard in Retail Account Linking"><img src="https://fastapi.tiangolo.com/img/sponsors/subtotal.svg"></a>
|
|
130
|
-
<a href="https://
|
|
129
|
+
<a href="https://docs.railway.com/guides/fastapi?utm_medium=integration&utm_source=docs&utm_campaign=fastapi" target="_blank" title="Deploy enterprise applications at startup speed"><img src="https://fastapi.tiangolo.com/img/sponsors/railway.png"></a>
|
|
130
|
+
<a href="https://databento.com/?utm_source=fastapi&utm_medium=sponsor&utm_content=display" target="_blank" title="Pay as you go for market data"><img src="https://fastapi.tiangolo.com/img/sponsors/databento.svg"></a>
|
|
131
131
|
<a href="https://speakeasy.com/editor?utm_source=fastapi+repo&utm_medium=github+sponsorship" target="_blank" title="SDKs for your API | Speakeasy"><img src="https://fastapi.tiangolo.com/img/sponsors/speakeasy.png"></a>
|
|
132
132
|
<a href="https://www.svix.com/" target="_blank" title="Svix - Webhooks as a service"><img src="https://fastapi.tiangolo.com/img/sponsors/svix.svg"></a>
|
|
133
133
|
<a href="https://www.stainlessapi.com/?utm_source=fastapi&utm_medium=referral" target="_blank" title="Stainless | Generate best-in-class SDKs"><img src="https://fastapi.tiangolo.com/img/sponsors/stainless.png"></a>
|
|
@@ -139,7 +139,7 @@ The key features are:
|
|
|
139
139
|
|
|
140
140
|
<a href="https://fastapi.tiangolo.com/fastapi-people/#sponsors" class="external-link" target="_blank">Other sponsors</a>
|
|
141
141
|
|
|
142
|
-
## Opinions
|
|
142
|
+
## Opinions { #opinions }
|
|
143
143
|
|
|
144
144
|
"_[...] I'm using **FastAPI** a ton these days. [...] I'm actually planning to use it for all of my team's **ML services at Microsoft**. Some of them are getting integrated into the core **Windows** product and some **Office** products._"
|
|
145
145
|
|
|
@@ -161,7 +161,7 @@ The key features are:
|
|
|
161
161
|
|
|
162
162
|
"_I’m over the moon excited about **FastAPI**. It’s so fun!_"
|
|
163
163
|
|
|
164
|
-
<div style="text-align: right; margin-right: 10%;">Brian Okken - <strong><a href="https://pythonbytes.fm/episodes/show/123/time-to-right-the-py-wrongs?time_in_sec=855" target="_blank">Python Bytes</a> podcast host</strong> <a href="https://
|
|
164
|
+
<div style="text-align: right; margin-right: 10%;">Brian Okken - <strong><a href="https://pythonbytes.fm/episodes/show/123/time-to-right-the-py-wrongs?time_in_sec=855" target="_blank">Python Bytes</a> podcast host</strong> <a href="https://x.com/brianokken/status/1112220079972728832" target="_blank"><small>(ref)</small></a></div>
|
|
165
165
|
|
|
166
166
|
---
|
|
167
167
|
|
|
@@ -175,7 +175,7 @@ The key features are:
|
|
|
175
175
|
|
|
176
176
|
"_We've switched over to **FastAPI** for our **APIs** [...] I think you'll like it [...]_"
|
|
177
177
|
|
|
178
|
-
<div style="text-align: right; margin-right: 10%;">Ines Montani - Matthew Honnibal - <strong><a href="https://explosion.ai" target="_blank">Explosion AI</a> founders - <a href="https://spacy.io" target="_blank">spaCy</a> creators</strong> <a href="https://
|
|
178
|
+
<div style="text-align: right; margin-right: 10%;">Ines Montani - Matthew Honnibal - <strong><a href="https://explosion.ai" target="_blank">Explosion AI</a> founders - <a href="https://spacy.io" target="_blank">spaCy</a> creators</strong> <a href="https://x.com/_inesmontani/status/1144173225322143744" target="_blank"><small>(ref)</small></a> - <a href="https://x.com/honnibal/status/1144031421859655680" target="_blank"><small>(ref)</small></a></div>
|
|
179
179
|
|
|
180
180
|
---
|
|
181
181
|
|
|
@@ -185,7 +185,7 @@ The key features are:
|
|
|
185
185
|
|
|
186
186
|
---
|
|
187
187
|
|
|
188
|
-
## **Typer**, the FastAPI of CLIs
|
|
188
|
+
## **Typer**, the FastAPI of CLIs { #typer-the-fastapi-of-clis }
|
|
189
189
|
|
|
190
190
|
<a href="https://typer.tiangolo.com" target="_blank"><img src="https://typer.tiangolo.com/img/logo-margin/logo-margin-vector.svg" style="width: 20%;"></a>
|
|
191
191
|
|
|
@@ -193,14 +193,14 @@ If you are building a <abbr title="Command Line Interface">CLI</abbr> app to be
|
|
|
193
193
|
|
|
194
194
|
**Typer** is FastAPI's little sibling. And it's intended to be the **FastAPI of CLIs**. ⌨️ 🚀
|
|
195
195
|
|
|
196
|
-
## Requirements
|
|
196
|
+
## Requirements { #requirements }
|
|
197
197
|
|
|
198
198
|
FastAPI stands on the shoulders of giants:
|
|
199
199
|
|
|
200
200
|
* <a href="https://www.starlette.io/" class="external-link" target="_blank">Starlette</a> for the web parts.
|
|
201
201
|
* <a href="https://docs.pydantic.dev/" class="external-link" target="_blank">Pydantic</a> for the data parts.
|
|
202
202
|
|
|
203
|
-
## Installation
|
|
203
|
+
## Installation { #installation }
|
|
204
204
|
|
|
205
205
|
Create and activate a <a href="https://fastapi.tiangolo.com/virtual-environments/" class="external-link" target="_blank">virtual environment</a> and then install FastAPI:
|
|
206
206
|
|
|
@@ -216,9 +216,9 @@ $ pip install "fastapi[standard]"
|
|
|
216
216
|
|
|
217
217
|
**Note**: Make sure you put `"fastapi[standard]"` in quotes to ensure it works in all terminals.
|
|
218
218
|
|
|
219
|
-
## Example
|
|
219
|
+
## Example { #example }
|
|
220
220
|
|
|
221
|
-
### Create it
|
|
221
|
+
### Create it { #create-it }
|
|
222
222
|
|
|
223
223
|
Create a file `main.py` with:
|
|
224
224
|
|
|
@@ -269,7 +269,7 @@ If you don't know, check the _"In a hurry?"_ section about <a href="https://fast
|
|
|
269
269
|
|
|
270
270
|
</details>
|
|
271
271
|
|
|
272
|
-
### Run it
|
|
272
|
+
### Run it { #run-it }
|
|
273
273
|
|
|
274
274
|
Run the server with:
|
|
275
275
|
|
|
@@ -311,7 +311,7 @@ You can read more about it in the <a href="https://fastapi.tiangolo.com/fastapi-
|
|
|
311
311
|
|
|
312
312
|
</details>
|
|
313
313
|
|
|
314
|
-
### Check it
|
|
314
|
+
### Check it { #check-it }
|
|
315
315
|
|
|
316
316
|
Open your browser at <a href="http://127.0.0.1:8000/items/5?q=somequery" class="external-link" target="_blank">http://127.0.0.1:8000/items/5?q=somequery</a>.
|
|
317
317
|
|
|
@@ -328,7 +328,7 @@ You already created an API that:
|
|
|
328
328
|
* The _path_ `/items/{item_id}` has a _path parameter_ `item_id` that should be an `int`.
|
|
329
329
|
* The _path_ `/items/{item_id}` has an optional `str` _query parameter_ `q`.
|
|
330
330
|
|
|
331
|
-
### Interactive API docs
|
|
331
|
+
### Interactive API docs { #interactive-api-docs }
|
|
332
332
|
|
|
333
333
|
Now go to <a href="http://127.0.0.1:8000/docs" class="external-link" target="_blank">http://127.0.0.1:8000/docs</a>.
|
|
334
334
|
|
|
@@ -336,7 +336,7 @@ You will see the automatic interactive API documentation (provided by <a href="h
|
|
|
336
336
|
|
|
337
337
|

|
|
338
338
|
|
|
339
|
-
### Alternative API docs
|
|
339
|
+
### Alternative API docs { #alternative-api-docs }
|
|
340
340
|
|
|
341
341
|
And now, go to <a href="http://127.0.0.1:8000/redoc" class="external-link" target="_blank">http://127.0.0.1:8000/redoc</a>.
|
|
342
342
|
|
|
@@ -344,7 +344,7 @@ You will see the alternative automatic documentation (provided by <a href="https
|
|
|
344
344
|
|
|
345
345
|

|
|
346
346
|
|
|
347
|
-
## Example upgrade
|
|
347
|
+
## Example upgrade { #example-upgrade }
|
|
348
348
|
|
|
349
349
|
Now modify the file `main.py` to receive a body from a `PUT` request.
|
|
350
350
|
|
|
@@ -382,7 +382,7 @@ def update_item(item_id: int, item: Item):
|
|
|
382
382
|
|
|
383
383
|
The `fastapi dev` server should reload automatically.
|
|
384
384
|
|
|
385
|
-
### Interactive API docs upgrade
|
|
385
|
+
### Interactive API docs upgrade { #interactive-api-docs-upgrade }
|
|
386
386
|
|
|
387
387
|
Now go to <a href="http://127.0.0.1:8000/docs" class="external-link" target="_blank">http://127.0.0.1:8000/docs</a>.
|
|
388
388
|
|
|
@@ -398,7 +398,7 @@ Now go to <a href="http://127.0.0.1:8000/docs" class="external-link" target="_bl
|
|
|
398
398
|
|
|
399
399
|

|
|
400
400
|
|
|
401
|
-
### Alternative API docs upgrade
|
|
401
|
+
### Alternative API docs upgrade { #alternative-api-docs-upgrade }
|
|
402
402
|
|
|
403
403
|
And now, go to <a href="http://127.0.0.1:8000/redoc" class="external-link" target="_blank">http://127.0.0.1:8000/redoc</a>.
|
|
404
404
|
|
|
@@ -406,7 +406,7 @@ And now, go to <a href="http://127.0.0.1:8000/redoc" class="external-link" targe
|
|
|
406
406
|
|
|
407
407
|

|
|
408
408
|
|
|
409
|
-
### Recap
|
|
409
|
+
### Recap { #recap }
|
|
410
410
|
|
|
411
411
|
In summary, you declare **once** the types of parameters, body, etc. as function parameters.
|
|
412
412
|
|
|
@@ -518,17 +518,17 @@ For a more complete example including more features, see the <a href="https://fa
|
|
|
518
518
|
* **Cookie Sessions**
|
|
519
519
|
* ...and more.
|
|
520
520
|
|
|
521
|
-
## Performance
|
|
521
|
+
## Performance { #performance }
|
|
522
522
|
|
|
523
523
|
Independent TechEmpower benchmarks show **FastAPI** applications running under Uvicorn as <a href="https://www.techempower.com/benchmarks/#section=test&runid=7464e520-0dc2-473d-bd34-dbdfd7e85911&hw=ph&test=query&l=zijzen-7" class="external-link" target="_blank">one of the fastest Python frameworks available</a>, only below Starlette and Uvicorn themselves (used internally by FastAPI). (*)
|
|
524
524
|
|
|
525
525
|
To understand more about it, see the section <a href="https://fastapi.tiangolo.com/benchmarks/" class="internal-link" target="_blank">Benchmarks</a>.
|
|
526
526
|
|
|
527
|
-
## Dependencies
|
|
527
|
+
## Dependencies { #dependencies }
|
|
528
528
|
|
|
529
529
|
FastAPI depends on Pydantic and Starlette.
|
|
530
530
|
|
|
531
|
-
### `standard` Dependencies
|
|
531
|
+
### `standard` Dependencies { #standard-dependencies }
|
|
532
532
|
|
|
533
533
|
When you install FastAPI with `pip install "fastapi[standard]"` it comes with the `standard` group of optional dependencies:
|
|
534
534
|
|
|
@@ -548,15 +548,15 @@ Used by FastAPI:
|
|
|
548
548
|
* `fastapi-cli[standard]` - to provide the `fastapi` command.
|
|
549
549
|
* This includes `fastapi-cloud-cli`, which allows you to deploy your FastAPI application to <a href="https://fastapicloud.com" class="external-link" target="_blank">FastAPI Cloud</a>.
|
|
550
550
|
|
|
551
|
-
### Without `standard` Dependencies
|
|
551
|
+
### Without `standard` Dependencies { #without-standard-dependencies }
|
|
552
552
|
|
|
553
553
|
If you don't want to include the `standard` optional dependencies, you can install with `pip install fastapi` instead of `pip install "fastapi[standard]"`.
|
|
554
554
|
|
|
555
|
-
### Without `fastapi-cloud-cli`
|
|
555
|
+
### Without `fastapi-cloud-cli` { #without-fastapi-cloud-cli }
|
|
556
556
|
|
|
557
557
|
If you want to install FastAPI with the standard dependencies but without the `fastapi-cloud-cli`, you can install with `pip install "fastapi[standard-no-fastapi-cloud-cli]"`.
|
|
558
558
|
|
|
559
|
-
### Additional Optional Dependencies
|
|
559
|
+
### Additional Optional Dependencies { #additional-optional-dependencies }
|
|
560
560
|
|
|
561
561
|
There are some additional dependencies you might want to install.
|
|
562
562
|
|
|
@@ -570,6 +570,6 @@ Additional optional FastAPI dependencies:
|
|
|
570
570
|
* <a href="https://github.com/ijl/orjson" target="_blank"><code>orjson</code></a> - Required if you want to use `ORJSONResponse`.
|
|
571
571
|
* <a href="https://github.com/esnme/ultrajson" target="_blank"><code>ujson</code></a> - Required if you want to use `UJSONResponse`.
|
|
572
572
|
|
|
573
|
-
## License
|
|
573
|
+
## License { #license }
|
|
574
574
|
|
|
575
575
|
This project is licensed under the terms of the MIT license.
|
|
@@ -42,12 +42,11 @@ The key features are:
|
|
|
42
42
|
|
|
43
43
|
<small>* estimation based on tests on an internal development team, building production applications.</small>
|
|
44
44
|
|
|
45
|
-
## Sponsors
|
|
45
|
+
## Sponsors { #sponsors }
|
|
46
46
|
|
|
47
47
|
<!-- sponsors -->
|
|
48
48
|
|
|
49
49
|
<a href="https://blockbee.io?ref=fastapi" target="_blank" title="BlockBee Cryptocurrency Payment Gateway"><img src="https://fastapi.tiangolo.com/img/sponsors/blockbee.png"></a>
|
|
50
|
-
<a href="https://platform.sh/try-it-now/?utm_source=fastapi-signup&utm_medium=banner&utm_campaign=FastAPI-signup-June-2023" target="_blank" title="Build, run and scale your apps on a modern, reliable, and secure PaaS."><img src="https://fastapi.tiangolo.com/img/sponsors/platform-sh.png"></a>
|
|
51
50
|
<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>
|
|
52
51
|
<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>
|
|
53
52
|
<a href="https://zuplo.link/fastapi-gh" target="_blank" title="Zuplo: Deploy, Secure, Document, and Monetize your FastAPI"><img src="https://fastapi.tiangolo.com/img/sponsors/zuplo.png"></a>
|
|
@@ -55,7 +54,8 @@ The key features are:
|
|
|
55
54
|
<a href="https://docs.render.com/deploy-fastapi?utm_source=deploydoc&utm_medium=referral&utm_campaign=fastapi" target="_blank" title="Deploy & scale any full-stack web app on Render. Focus on building apps, not infra."><img src="https://fastapi.tiangolo.com/img/sponsors/render.svg"></a>
|
|
56
55
|
<a href="https://www.coderabbit.ai/?utm_source=fastapi&utm_medium=badge&utm_campaign=fastapi" target="_blank" title="Cut Code Review Time & Bugs in Half with CodeRabbit"><img src="https://fastapi.tiangolo.com/img/sponsors/coderabbit.png"></a>
|
|
57
56
|
<a href="https://subtotal.com/?utm_source=fastapi&utm_medium=sponsorship&utm_campaign=open-source" target="_blank" title="The Gold Standard in Retail Account Linking"><img src="https://fastapi.tiangolo.com/img/sponsors/subtotal.svg"></a>
|
|
58
|
-
<a href="https://
|
|
57
|
+
<a href="https://docs.railway.com/guides/fastapi?utm_medium=integration&utm_source=docs&utm_campaign=fastapi" target="_blank" title="Deploy enterprise applications at startup speed"><img src="https://fastapi.tiangolo.com/img/sponsors/railway.png"></a>
|
|
58
|
+
<a href="https://databento.com/?utm_source=fastapi&utm_medium=sponsor&utm_content=display" target="_blank" title="Pay as you go for market data"><img src="https://fastapi.tiangolo.com/img/sponsors/databento.svg"></a>
|
|
59
59
|
<a href="https://speakeasy.com/editor?utm_source=fastapi+repo&utm_medium=github+sponsorship" target="_blank" title="SDKs for your API | Speakeasy"><img src="https://fastapi.tiangolo.com/img/sponsors/speakeasy.png"></a>
|
|
60
60
|
<a href="https://www.svix.com/" target="_blank" title="Svix - Webhooks as a service"><img src="https://fastapi.tiangolo.com/img/sponsors/svix.svg"></a>
|
|
61
61
|
<a href="https://www.stainlessapi.com/?utm_source=fastapi&utm_medium=referral" target="_blank" title="Stainless | Generate best-in-class SDKs"><img src="https://fastapi.tiangolo.com/img/sponsors/stainless.png"></a>
|
|
@@ -67,7 +67,7 @@ The key features are:
|
|
|
67
67
|
|
|
68
68
|
<a href="https://fastapi.tiangolo.com/fastapi-people/#sponsors" class="external-link" target="_blank">Other sponsors</a>
|
|
69
69
|
|
|
70
|
-
## Opinions
|
|
70
|
+
## Opinions { #opinions }
|
|
71
71
|
|
|
72
72
|
"_[...] I'm using **FastAPI** a ton these days. [...] I'm actually planning to use it for all of my team's **ML services at Microsoft**. Some of them are getting integrated into the core **Windows** product and some **Office** products._"
|
|
73
73
|
|
|
@@ -89,7 +89,7 @@ The key features are:
|
|
|
89
89
|
|
|
90
90
|
"_I’m over the moon excited about **FastAPI**. It’s so fun!_"
|
|
91
91
|
|
|
92
|
-
<div style="text-align: right; margin-right: 10%;">Brian Okken - <strong><a href="https://pythonbytes.fm/episodes/show/123/time-to-right-the-py-wrongs?time_in_sec=855" target="_blank">Python Bytes</a> podcast host</strong> <a href="https://
|
|
92
|
+
<div style="text-align: right; margin-right: 10%;">Brian Okken - <strong><a href="https://pythonbytes.fm/episodes/show/123/time-to-right-the-py-wrongs?time_in_sec=855" target="_blank">Python Bytes</a> podcast host</strong> <a href="https://x.com/brianokken/status/1112220079972728832" target="_blank"><small>(ref)</small></a></div>
|
|
93
93
|
|
|
94
94
|
---
|
|
95
95
|
|
|
@@ -103,7 +103,7 @@ The key features are:
|
|
|
103
103
|
|
|
104
104
|
"_We've switched over to **FastAPI** for our **APIs** [...] I think you'll like it [...]_"
|
|
105
105
|
|
|
106
|
-
<div style="text-align: right; margin-right: 10%;">Ines Montani - Matthew Honnibal - <strong><a href="https://explosion.ai" target="_blank">Explosion AI</a> founders - <a href="https://spacy.io" target="_blank">spaCy</a> creators</strong> <a href="https://
|
|
106
|
+
<div style="text-align: right; margin-right: 10%;">Ines Montani - Matthew Honnibal - <strong><a href="https://explosion.ai" target="_blank">Explosion AI</a> founders - <a href="https://spacy.io" target="_blank">spaCy</a> creators</strong> <a href="https://x.com/_inesmontani/status/1144173225322143744" target="_blank"><small>(ref)</small></a> - <a href="https://x.com/honnibal/status/1144031421859655680" target="_blank"><small>(ref)</small></a></div>
|
|
107
107
|
|
|
108
108
|
---
|
|
109
109
|
|
|
@@ -113,7 +113,7 @@ The key features are:
|
|
|
113
113
|
|
|
114
114
|
---
|
|
115
115
|
|
|
116
|
-
## **Typer**, the FastAPI of CLIs
|
|
116
|
+
## **Typer**, the FastAPI of CLIs { #typer-the-fastapi-of-clis }
|
|
117
117
|
|
|
118
118
|
<a href="https://typer.tiangolo.com" target="_blank"><img src="https://typer.tiangolo.com/img/logo-margin/logo-margin-vector.svg" style="width: 20%;"></a>
|
|
119
119
|
|
|
@@ -121,14 +121,14 @@ If you are building a <abbr title="Command Line Interface">CLI</abbr> app to be
|
|
|
121
121
|
|
|
122
122
|
**Typer** is FastAPI's little sibling. And it's intended to be the **FastAPI of CLIs**. ⌨️ 🚀
|
|
123
123
|
|
|
124
|
-
## Requirements
|
|
124
|
+
## Requirements { #requirements }
|
|
125
125
|
|
|
126
126
|
FastAPI stands on the shoulders of giants:
|
|
127
127
|
|
|
128
128
|
* <a href="https://www.starlette.io/" class="external-link" target="_blank">Starlette</a> for the web parts.
|
|
129
129
|
* <a href="https://docs.pydantic.dev/" class="external-link" target="_blank">Pydantic</a> for the data parts.
|
|
130
130
|
|
|
131
|
-
## Installation
|
|
131
|
+
## Installation { #installation }
|
|
132
132
|
|
|
133
133
|
Create and activate a <a href="https://fastapi.tiangolo.com/virtual-environments/" class="external-link" target="_blank">virtual environment</a> and then install FastAPI:
|
|
134
134
|
|
|
@@ -144,9 +144,9 @@ $ pip install "fastapi[standard]"
|
|
|
144
144
|
|
|
145
145
|
**Note**: Make sure you put `"fastapi[standard]"` in quotes to ensure it works in all terminals.
|
|
146
146
|
|
|
147
|
-
## Example
|
|
147
|
+
## Example { #example }
|
|
148
148
|
|
|
149
|
-
### Create it
|
|
149
|
+
### Create it { #create-it }
|
|
150
150
|
|
|
151
151
|
Create a file `main.py` with:
|
|
152
152
|
|
|
@@ -197,7 +197,7 @@ If you don't know, check the _"In a hurry?"_ section about <a href="https://fast
|
|
|
197
197
|
|
|
198
198
|
</details>
|
|
199
199
|
|
|
200
|
-
### Run it
|
|
200
|
+
### Run it { #run-it }
|
|
201
201
|
|
|
202
202
|
Run the server with:
|
|
203
203
|
|
|
@@ -239,7 +239,7 @@ You can read more about it in the <a href="https://fastapi.tiangolo.com/fastapi-
|
|
|
239
239
|
|
|
240
240
|
</details>
|
|
241
241
|
|
|
242
|
-
### Check it
|
|
242
|
+
### Check it { #check-it }
|
|
243
243
|
|
|
244
244
|
Open your browser at <a href="http://127.0.0.1:8000/items/5?q=somequery" class="external-link" target="_blank">http://127.0.0.1:8000/items/5?q=somequery</a>.
|
|
245
245
|
|
|
@@ -256,7 +256,7 @@ You already created an API that:
|
|
|
256
256
|
* The _path_ `/items/{item_id}` has a _path parameter_ `item_id` that should be an `int`.
|
|
257
257
|
* The _path_ `/items/{item_id}` has an optional `str` _query parameter_ `q`.
|
|
258
258
|
|
|
259
|
-
### Interactive API docs
|
|
259
|
+
### Interactive API docs { #interactive-api-docs }
|
|
260
260
|
|
|
261
261
|
Now go to <a href="http://127.0.0.1:8000/docs" class="external-link" target="_blank">http://127.0.0.1:8000/docs</a>.
|
|
262
262
|
|
|
@@ -264,7 +264,7 @@ You will see the automatic interactive API documentation (provided by <a href="h
|
|
|
264
264
|
|
|
265
265
|

|
|
266
266
|
|
|
267
|
-
### Alternative API docs
|
|
267
|
+
### Alternative API docs { #alternative-api-docs }
|
|
268
268
|
|
|
269
269
|
And now, go to <a href="http://127.0.0.1:8000/redoc" class="external-link" target="_blank">http://127.0.0.1:8000/redoc</a>.
|
|
270
270
|
|
|
@@ -272,7 +272,7 @@ You will see the alternative automatic documentation (provided by <a href="https
|
|
|
272
272
|
|
|
273
273
|

|
|
274
274
|
|
|
275
|
-
## Example upgrade
|
|
275
|
+
## Example upgrade { #example-upgrade }
|
|
276
276
|
|
|
277
277
|
Now modify the file `main.py` to receive a body from a `PUT` request.
|
|
278
278
|
|
|
@@ -310,7 +310,7 @@ def update_item(item_id: int, item: Item):
|
|
|
310
310
|
|
|
311
311
|
The `fastapi dev` server should reload automatically.
|
|
312
312
|
|
|
313
|
-
### Interactive API docs upgrade
|
|
313
|
+
### Interactive API docs upgrade { #interactive-api-docs-upgrade }
|
|
314
314
|
|
|
315
315
|
Now go to <a href="http://127.0.0.1:8000/docs" class="external-link" target="_blank">http://127.0.0.1:8000/docs</a>.
|
|
316
316
|
|
|
@@ -326,7 +326,7 @@ Now go to <a href="http://127.0.0.1:8000/docs" class="external-link" target="_bl
|
|
|
326
326
|
|
|
327
327
|

|
|
328
328
|
|
|
329
|
-
### Alternative API docs upgrade
|
|
329
|
+
### Alternative API docs upgrade { #alternative-api-docs-upgrade }
|
|
330
330
|
|
|
331
331
|
And now, go to <a href="http://127.0.0.1:8000/redoc" class="external-link" target="_blank">http://127.0.0.1:8000/redoc</a>.
|
|
332
332
|
|
|
@@ -334,7 +334,7 @@ And now, go to <a href="http://127.0.0.1:8000/redoc" class="external-link" targe
|
|
|
334
334
|
|
|
335
335
|

|
|
336
336
|
|
|
337
|
-
### Recap
|
|
337
|
+
### Recap { #recap }
|
|
338
338
|
|
|
339
339
|
In summary, you declare **once** the types of parameters, body, etc. as function parameters.
|
|
340
340
|
|
|
@@ -446,17 +446,17 @@ For a more complete example including more features, see the <a href="https://fa
|
|
|
446
446
|
* **Cookie Sessions**
|
|
447
447
|
* ...and more.
|
|
448
448
|
|
|
449
|
-
## Performance
|
|
449
|
+
## Performance { #performance }
|
|
450
450
|
|
|
451
451
|
Independent TechEmpower benchmarks show **FastAPI** applications running under Uvicorn as <a href="https://www.techempower.com/benchmarks/#section=test&runid=7464e520-0dc2-473d-bd34-dbdfd7e85911&hw=ph&test=query&l=zijzen-7" class="external-link" target="_blank">one of the fastest Python frameworks available</a>, only below Starlette and Uvicorn themselves (used internally by FastAPI). (*)
|
|
452
452
|
|
|
453
453
|
To understand more about it, see the section <a href="https://fastapi.tiangolo.com/benchmarks/" class="internal-link" target="_blank">Benchmarks</a>.
|
|
454
454
|
|
|
455
|
-
## Dependencies
|
|
455
|
+
## Dependencies { #dependencies }
|
|
456
456
|
|
|
457
457
|
FastAPI depends on Pydantic and Starlette.
|
|
458
458
|
|
|
459
|
-
### `standard` Dependencies
|
|
459
|
+
### `standard` Dependencies { #standard-dependencies }
|
|
460
460
|
|
|
461
461
|
When you install FastAPI with `pip install "fastapi[standard]"` it comes with the `standard` group of optional dependencies:
|
|
462
462
|
|
|
@@ -476,15 +476,15 @@ Used by FastAPI:
|
|
|
476
476
|
* `fastapi-cli[standard]` - to provide the `fastapi` command.
|
|
477
477
|
* This includes `fastapi-cloud-cli`, which allows you to deploy your FastAPI application to <a href="https://fastapicloud.com" class="external-link" target="_blank">FastAPI Cloud</a>.
|
|
478
478
|
|
|
479
|
-
### Without `standard` Dependencies
|
|
479
|
+
### Without `standard` Dependencies { #without-standard-dependencies }
|
|
480
480
|
|
|
481
481
|
If you don't want to include the `standard` optional dependencies, you can install with `pip install fastapi` instead of `pip install "fastapi[standard]"`.
|
|
482
482
|
|
|
483
|
-
### Without `fastapi-cloud-cli`
|
|
483
|
+
### Without `fastapi-cloud-cli` { #without-fastapi-cloud-cli }
|
|
484
484
|
|
|
485
485
|
If you want to install FastAPI with the standard dependencies but without the `fastapi-cloud-cli`, you can install with `pip install "fastapi[standard-no-fastapi-cloud-cli]"`.
|
|
486
486
|
|
|
487
|
-
### Additional Optional Dependencies
|
|
487
|
+
### Additional Optional Dependencies { #additional-optional-dependencies }
|
|
488
488
|
|
|
489
489
|
There are some additional dependencies you might want to install.
|
|
490
490
|
|
|
@@ -498,6 +498,6 @@ Additional optional FastAPI dependencies:
|
|
|
498
498
|
* <a href="https://github.com/ijl/orjson" target="_blank"><code>orjson</code></a> - Required if you want to use `ORJSONResponse`.
|
|
499
499
|
* <a href="https://github.com/esnme/ultrajson" target="_blank"><code>ujson</code></a> - Required if you want to use `UJSONResponse`.
|
|
500
500
|
|
|
501
|
-
## License
|
|
501
|
+
## License { #license }
|
|
502
502
|
|
|
503
503
|
This project is licensed under the terms of the MIT license.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
from contextlib import asynccontextmanager
|
|
2
|
+
|
|
3
|
+
from fastapi import FastAPI
|
|
4
|
+
from fastapi.testclient import TestClient
|
|
5
|
+
|
|
6
|
+
items = {}
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@asynccontextmanager
|
|
10
|
+
async def lifespan(app: FastAPI):
|
|
11
|
+
items["foo"] = {"name": "Fighters"}
|
|
12
|
+
items["bar"] = {"name": "Tenders"}
|
|
13
|
+
yield
|
|
14
|
+
# clean up items
|
|
15
|
+
items.clear()
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
app = FastAPI(lifespan=lifespan)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
@app.get("/items/{item_id}")
|
|
22
|
+
async def read_items(item_id: str):
|
|
23
|
+
return items[item_id]
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def test_read_items():
|
|
27
|
+
# Before the lifespan starts, "items" is still empty
|
|
28
|
+
assert items == {}
|
|
29
|
+
|
|
30
|
+
with TestClient(app) as client:
|
|
31
|
+
# Inside the "with TestClient" block, the lifespan starts and items added
|
|
32
|
+
assert items == {"foo": {"name": "Fighters"}, "bar": {"name": "Tenders"}}
|
|
33
|
+
|
|
34
|
+
response = client.get("/items/foo")
|
|
35
|
+
assert response.status_code == 200
|
|
36
|
+
assert response.json() == {"name": "Fighters"}
|
|
37
|
+
|
|
38
|
+
# After the requests is done, the items are still there
|
|
39
|
+
assert items == {"foo": {"name": "Fighters"}, "bar": {"name": "Tenders"}}
|
|
40
|
+
|
|
41
|
+
# The end of the "with TestClient" block simulates terminating the app, so
|
|
42
|
+
# the lifespan ends and items are cleaned up
|
|
43
|
+
assert items == {}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from fastapi import FastAPI, Request
|
|
1
|
+
from fastapi import FastAPI, Request
|
|
2
2
|
from fastapi.encoders import jsonable_encoder
|
|
3
3
|
from fastapi.exceptions import RequestValidationError
|
|
4
4
|
from fastapi.responses import JSONResponse
|
|
@@ -10,7 +10,7 @@ app = FastAPI()
|
|
|
10
10
|
@app.exception_handler(RequestValidationError)
|
|
11
11
|
async def validation_exception_handler(request: Request, exc: RequestValidationError):
|
|
12
12
|
return JSONResponse(
|
|
13
|
-
status_code=
|
|
13
|
+
status_code=422,
|
|
14
14
|
content=jsonable_encoder({"detail": exc.errors(), "body": exc.body}),
|
|
15
15
|
)
|
|
16
16
|
|
|
@@ -119,7 +119,8 @@ async def get_current_user(
|
|
|
119
119
|
username: str = payload.get("sub")
|
|
120
120
|
if username is None:
|
|
121
121
|
raise credentials_exception
|
|
122
|
-
|
|
122
|
+
scope: str = payload.get("scope", "")
|
|
123
|
+
token_scopes = scope.split(" ")
|
|
123
124
|
token_data = TokenData(scopes=token_scopes, username=username)
|
|
124
125
|
except (InvalidTokenError, ValidationError):
|
|
125
126
|
raise credentials_exception
|
|
@@ -153,7 +154,7 @@ async def login_for_access_token(
|
|
|
153
154
|
raise HTTPException(status_code=400, detail="Incorrect username or password")
|
|
154
155
|
access_token_expires = timedelta(minutes=ACCESS_TOKEN_EXPIRE_MINUTES)
|
|
155
156
|
access_token = create_access_token(
|
|
156
|
-
data={"sub": user.username, "
|
|
157
|
+
data={"sub": user.username, "scope": " ".join(form_data.scopes)},
|
|
157
158
|
expires_delta=access_token_expires,
|
|
158
159
|
)
|
|
159
160
|
return Token(access_token=access_token, token_type="bearer")
|
|
@@ -120,7 +120,8 @@ async def get_current_user(
|
|
|
120
120
|
username = payload.get("sub")
|
|
121
121
|
if username is None:
|
|
122
122
|
raise credentials_exception
|
|
123
|
-
|
|
123
|
+
scope: str = payload.get("scope", "")
|
|
124
|
+
token_scopes = scope.split(" ")
|
|
124
125
|
token_data = TokenData(scopes=token_scopes, username=username)
|
|
125
126
|
except (InvalidTokenError, ValidationError):
|
|
126
127
|
raise credentials_exception
|
|
@@ -154,7 +155,7 @@ async def login_for_access_token(
|
|
|
154
155
|
raise HTTPException(status_code=400, detail="Incorrect username or password")
|
|
155
156
|
access_token_expires = timedelta(minutes=ACCESS_TOKEN_EXPIRE_MINUTES)
|
|
156
157
|
access_token = create_access_token(
|
|
157
|
-
data={"sub": user.username, "
|
|
158
|
+
data={"sub": user.username, "scope": " ".join(form_data.scopes)},
|
|
158
159
|
expires_delta=access_token_expires,
|
|
159
160
|
)
|
|
160
161
|
return Token(access_token=access_token, token_type="bearer")
|
|
@@ -119,7 +119,8 @@ async def get_current_user(
|
|
|
119
119
|
username = payload.get("sub")
|
|
120
120
|
if username is None:
|
|
121
121
|
raise credentials_exception
|
|
122
|
-
|
|
122
|
+
scope: str = payload.get("scope", "")
|
|
123
|
+
token_scopes = scope.split(" ")
|
|
123
124
|
token_data = TokenData(scopes=token_scopes, username=username)
|
|
124
125
|
except (InvalidTokenError, ValidationError):
|
|
125
126
|
raise credentials_exception
|
|
@@ -153,7 +154,7 @@ async def login_for_access_token(
|
|
|
153
154
|
raise HTTPException(status_code=400, detail="Incorrect username or password")
|
|
154
155
|
access_token_expires = timedelta(minutes=ACCESS_TOKEN_EXPIRE_MINUTES)
|
|
155
156
|
access_token = create_access_token(
|
|
156
|
-
data={"sub": user.username, "
|
|
157
|
+
data={"sub": user.username, "scope": " ".join(form_data.scopes)},
|
|
157
158
|
expires_delta=access_token_expires,
|
|
158
159
|
)
|
|
159
160
|
return Token(access_token=access_token, token_type="bearer")
|
|
@@ -119,7 +119,8 @@ async def get_current_user(
|
|
|
119
119
|
username = payload.get("sub")
|
|
120
120
|
if username is None:
|
|
121
121
|
raise credentials_exception
|
|
122
|
-
|
|
122
|
+
scope: str = payload.get("scope", "")
|
|
123
|
+
token_scopes = scope.split(" ")
|
|
123
124
|
token_data = TokenData(scopes=token_scopes, username=username)
|
|
124
125
|
except (InvalidTokenError, ValidationError):
|
|
125
126
|
raise credentials_exception
|
|
@@ -153,7 +154,7 @@ async def login_for_access_token(
|
|
|
153
154
|
raise HTTPException(status_code=400, detail="Incorrect username or password")
|
|
154
155
|
access_token_expires = timedelta(minutes=ACCESS_TOKEN_EXPIRE_MINUTES)
|
|
155
156
|
access_token = create_access_token(
|
|
156
|
-
data={"sub": user.username, "
|
|
157
|
+
data={"sub": user.username, "scope": " ".join(form_data.scopes)},
|
|
157
158
|
expires_delta=access_token_expires,
|
|
158
159
|
)
|
|
159
160
|
return Token(access_token=access_token, token_type="bearer")
|
|
@@ -118,7 +118,8 @@ async def get_current_user(
|
|
|
118
118
|
username: str = payload.get("sub")
|
|
119
119
|
if username is None:
|
|
120
120
|
raise credentials_exception
|
|
121
|
-
|
|
121
|
+
scope: str = payload.get("scope", "")
|
|
122
|
+
token_scopes = scope.split(" ")
|
|
122
123
|
token_data = TokenData(scopes=token_scopes, username=username)
|
|
123
124
|
except (InvalidTokenError, ValidationError):
|
|
124
125
|
raise credentials_exception
|
|
@@ -152,7 +153,7 @@ async def login_for_access_token(
|
|
|
152
153
|
raise HTTPException(status_code=400, detail="Incorrect username or password")
|
|
153
154
|
access_token_expires = timedelta(minutes=ACCESS_TOKEN_EXPIRE_MINUTES)
|
|
154
155
|
access_token = create_access_token(
|
|
155
|
-
data={"sub": user.username, "
|
|
156
|
+
data={"sub": user.username, "scope": " ".join(form_data.scopes)},
|
|
156
157
|
expires_delta=access_token_expires,
|
|
157
158
|
)
|
|
158
159
|
return Token(access_token=access_token, token_type="bearer")
|
|
@@ -119,7 +119,8 @@ async def get_current_user(
|
|
|
119
119
|
username: str = payload.get("sub")
|
|
120
120
|
if username is None:
|
|
121
121
|
raise credentials_exception
|
|
122
|
-
|
|
122
|
+
scope: str = payload.get("scope", "")
|
|
123
|
+
token_scopes = scope.split(" ")
|
|
123
124
|
token_data = TokenData(scopes=token_scopes, username=username)
|
|
124
125
|
except (InvalidTokenError, ValidationError):
|
|
125
126
|
raise credentials_exception
|
|
@@ -153,7 +154,7 @@ async def login_for_access_token(
|
|
|
153
154
|
raise HTTPException(status_code=400, detail="Incorrect username or password")
|
|
154
155
|
access_token_expires = timedelta(minutes=ACCESS_TOKEN_EXPIRE_MINUTES)
|
|
155
156
|
access_token = create_access_token(
|
|
156
|
-
data={"sub": user.username, "
|
|
157
|
+
data={"sub": user.username, "scope": " ".join(form_data.scopes)},
|
|
157
158
|
expires_delta=access_token_expires,
|
|
158
159
|
)
|
|
159
160
|
return Token(access_token=access_token, token_type="bearer")
|