fastapi 0.115.7__tar.gz → 0.115.8__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.115.7 → fastapi-0.115.8}/PKG-INFO +2 -1
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body/tutorial002.py +1 -1
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body/tutorial002_py310.py +1 -1
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/__init__.py +1 -1
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/security/api_key.py +12 -25
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/security/oauth2.py +2 -2
- {fastapi-0.115.7 → fastapi-0.115.8}/pyproject.toml +3 -1
- {fastapi-0.115.7 → fastapi-0.115.8}/requirements-tests.txt +1 -1
- fastapi-0.115.8/scripts/notify_translations.py +432 -0
- fastapi-0.115.8/scripts/people.py +401 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_security_oauth2.py +17 -8
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_security_oauth2_optional.py +17 -8
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_security_oauth2_optional_description.py +17 -8
- fastapi-0.115.7/tests/test_tutorial/test_body_multiple_params/test_tutorial003_py310.py → fastapi-0.115.8/tests/test_tutorial/test_body_multiple_params/test_tutorial003.py +16 -9
- fastapi-0.115.7/tests/test_tutorial/test_request_files/test_tutorial001_an_py39.py → fastapi-0.115.8/tests/test_tutorial/test_request_files/test_tutorial001.py +13 -10
- fastapi-0.115.7/tests/test_tutorial/test_request_files/test_tutorial001_02_an_py310.py → fastapi-0.115.8/tests/test_tutorial/test_request_files/test_tutorial001_02.py +15 -10
- fastapi-0.115.7/tests/test_tutorial/test_request_files/test_tutorial001_03_an_py39.py → fastapi-0.115.8/tests/test_tutorial/test_request_files/test_tutorial001_03.py +13 -7
- fastapi-0.115.7/tests/test_tutorial/test_request_files/test_tutorial002_py39.py → fastapi-0.115.8/tests/test_tutorial/test_request_files/test_tutorial002.py +14 -21
- fastapi-0.115.7/tests/test_tutorial/test_request_files/test_tutorial003_an_py39.py → fastapi-0.115.8/tests/test_tutorial/test_request_files/test_tutorial003.py +14 -19
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_security/test_tutorial003.py +2 -2
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_security/test_tutorial005.py +2 -2
- fastapi-0.115.7/tests/test_tutorial/test_body_multiple_params/test_tutorial003.py +0 -273
- fastapi-0.115.7/tests/test_tutorial/test_body_multiple_params/test_tutorial003_an.py +0 -273
- fastapi-0.115.7/tests/test_tutorial/test_body_multiple_params/test_tutorial003_an_py310.py +0 -279
- fastapi-0.115.7/tests/test_tutorial/test_body_multiple_params/test_tutorial003_an_py39.py +0 -279
- fastapi-0.115.7/tests/test_tutorial/test_request_files/test_tutorial001.py +0 -229
- fastapi-0.115.7/tests/test_tutorial/test_request_files/test_tutorial001_02.py +0 -208
- fastapi-0.115.7/tests/test_tutorial/test_request_files/test_tutorial001_02_an.py +0 -208
- fastapi-0.115.7/tests/test_tutorial/test_request_files/test_tutorial001_02_an_py39.py +0 -220
- fastapi-0.115.7/tests/test_tutorial/test_request_files/test_tutorial001_02_py310.py +0 -220
- fastapi-0.115.7/tests/test_tutorial/test_request_files/test_tutorial001_03.py +0 -159
- fastapi-0.115.7/tests/test_tutorial/test_request_files/test_tutorial001_03_an.py +0 -159
- fastapi-0.115.7/tests/test_tutorial/test_request_files/test_tutorial001_an.py +0 -218
- fastapi-0.115.7/tests/test_tutorial/test_request_files/test_tutorial002.py +0 -249
- fastapi-0.115.7/tests/test_tutorial/test_request_files/test_tutorial002_an.py +0 -249
- fastapi-0.115.7/tests/test_tutorial/test_request_files/test_tutorial002_an_py39.py +0 -268
- fastapi-0.115.7/tests/test_tutorial/test_request_files/test_tutorial003.py +0 -194
- fastapi-0.115.7/tests/test_tutorial/test_request_files/test_tutorial003_an.py +0 -194
- fastapi-0.115.7/tests/test_tutorial/test_request_files/test_tutorial003_py39.py +0 -222
- {fastapi-0.115.7 → fastapi-0.115.8}/LICENSE +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/README.md +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs/en/docs/img/favicon.png +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/additional_responses/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/additional_responses/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/additional_responses/tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/additional_responses/tutorial004.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/additional_status_codes/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/additional_status_codes/tutorial001_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/additional_status_codes/tutorial001_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/additional_status_codes/tutorial001_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/additional_status_codes/tutorial001_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/advanced_middleware/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/advanced_middleware/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/advanced_middleware/tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/app_testing/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/app_testing/app_b/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/app_testing/app_b/main.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/app_testing/app_b/test_main.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/app_testing/app_b_an/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/app_testing/app_b_an/main.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/app_testing/app_b_an/test_main.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/app_testing/app_b_an_py310/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/app_testing/app_b_an_py310/main.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/app_testing/app_b_an_py310/test_main.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/app_testing/app_b_an_py39/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/app_testing/app_b_an_py39/main.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/app_testing/app_b_an_py39/test_main.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/app_testing/app_b_py310/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/app_testing/app_b_py310/main.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/app_testing/app_b_py310/test_main.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/app_testing/main.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/app_testing/test_main.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/app_testing/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/app_testing/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/app_testing/tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/async_tests/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/async_tests/main.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/async_tests/test_main.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/background_tasks/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/background_tasks/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/background_tasks/tutorial002_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/background_tasks/tutorial002_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/background_tasks/tutorial002_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/background_tasks/tutorial002_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/behind_a_proxy/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/behind_a_proxy/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/behind_a_proxy/tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/behind_a_proxy/tutorial004.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/bigger_applications/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/bigger_applications/app/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/bigger_applications/app/dependencies.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/bigger_applications/app/internal/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/bigger_applications/app/internal/admin.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/bigger_applications/app/main.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/bigger_applications/app/routers/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/bigger_applications/app/routers/items.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/bigger_applications/app/routers/users.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/bigger_applications/app_an/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/bigger_applications/app_an/dependencies.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/bigger_applications/app_an/internal/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/bigger_applications/app_an/internal/admin.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/bigger_applications/app_an/main.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/bigger_applications/app_an/routers/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/bigger_applications/app_an/routers/items.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/bigger_applications/app_an/routers/users.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/bigger_applications/app_an_py39/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/bigger_applications/app_an_py39/dependencies.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/bigger_applications/app_an_py39/internal/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/bigger_applications/app_an_py39/internal/admin.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/bigger_applications/app_an_py39/main.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/bigger_applications/app_an_py39/routers/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/bigger_applications/app_an_py39/routers/items.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/bigger_applications/app_an_py39/routers/users.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body/tutorial001_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body/tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body/tutorial003_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body/tutorial004.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body/tutorial004_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_fields/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_fields/tutorial001_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_fields/tutorial001_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_fields/tutorial001_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_fields/tutorial001_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_multiple_params/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_multiple_params/tutorial001_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_multiple_params/tutorial001_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_multiple_params/tutorial001_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_multiple_params/tutorial001_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_multiple_params/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_multiple_params/tutorial002_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_multiple_params/tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_multiple_params/tutorial003_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_multiple_params/tutorial003_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_multiple_params/tutorial003_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_multiple_params/tutorial003_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_multiple_params/tutorial004.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_multiple_params/tutorial004_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_multiple_params/tutorial004_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_multiple_params/tutorial004_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_multiple_params/tutorial004_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_multiple_params/tutorial005.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_multiple_params/tutorial005_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_multiple_params/tutorial005_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_multiple_params/tutorial005_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_multiple_params/tutorial005_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_nested_models/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_nested_models/tutorial001_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_nested_models/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_nested_models/tutorial002_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_nested_models/tutorial002_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_nested_models/tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_nested_models/tutorial003_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_nested_models/tutorial003_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_nested_models/tutorial004.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_nested_models/tutorial004_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_nested_models/tutorial004_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_nested_models/tutorial005.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_nested_models/tutorial005_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_nested_models/tutorial005_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_nested_models/tutorial006.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_nested_models/tutorial006_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_nested_models/tutorial006_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_nested_models/tutorial007.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_nested_models/tutorial007_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_nested_models/tutorial007_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_nested_models/tutorial008.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_nested_models/tutorial008_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_nested_models/tutorial009.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_nested_models/tutorial009_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_updates/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_updates/tutorial001_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_updates/tutorial001_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_updates/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_updates/tutorial002_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/body_updates/tutorial002_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/conditional_openapi/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/configure_swagger_ui/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/configure_swagger_ui/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/configure_swagger_ui/tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/cookie_param_models/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/cookie_param_models/tutorial001_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/cookie_param_models/tutorial001_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/cookie_param_models/tutorial001_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/cookie_param_models/tutorial001_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/cookie_param_models/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/cookie_param_models/tutorial002_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/cookie_param_models/tutorial002_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/cookie_param_models/tutorial002_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/cookie_param_models/tutorial002_pv1.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/cookie_param_models/tutorial002_pv1_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/cookie_param_models/tutorial002_pv1_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/cookie_param_models/tutorial002_pv1_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/cookie_param_models/tutorial002_pv1_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/cookie_param_models/tutorial002_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/cookie_params/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/cookie_params/tutorial001_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/cookie_params/tutorial001_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/cookie_params/tutorial001_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/cookie_params/tutorial001_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/cors/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/custom_docs_ui/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/custom_docs_ui/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/custom_request_and_route/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/custom_request_and_route/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/custom_request_and_route/tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/custom_response/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/custom_response/tutorial001b.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/custom_response/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/custom_response/tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/custom_response/tutorial004.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/custom_response/tutorial005.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/custom_response/tutorial006.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/custom_response/tutorial006b.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/custom_response/tutorial006c.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/custom_response/tutorial007.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/custom_response/tutorial008.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/custom_response/tutorial009.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/custom_response/tutorial009b.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/custom_response/tutorial009c.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/custom_response/tutorial010.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dataclasses/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dataclasses/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dataclasses/tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/debugging/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial001_02_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial001_02_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial001_02_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial001_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial001_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial001_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial001_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial002_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial002_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial002_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial002_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial003_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial003_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial003_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial003_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial004.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial004_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial004_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial004_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial004_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial005.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial005_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial005_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial005_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial005_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial006.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial006_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial006_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial007.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial008.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial008_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial008_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial008b.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial008b_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial008b_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial008c.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial008c_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial008c_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial008d.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial008d_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial008d_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial009.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial010.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial011.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial011_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial011_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial012.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial012_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependencies/tutorial012_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependency_testing/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependency_testing/tutorial001_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependency_testing/tutorial001_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependency_testing/tutorial001_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/dependency_testing/tutorial001_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/encoder/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/encoder/tutorial001_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/events/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/events/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/events/tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/extending_openapi/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/extra_data_types/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/extra_data_types/tutorial001_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/extra_data_types/tutorial001_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/extra_data_types/tutorial001_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/extra_data_types/tutorial001_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/extra_models/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/extra_models/tutorial001_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/extra_models/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/extra_models/tutorial002_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/extra_models/tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/extra_models/tutorial003_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/extra_models/tutorial004.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/extra_models/tutorial004_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/extra_models/tutorial005.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/extra_models/tutorial005_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/first_steps/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/first_steps/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/first_steps/tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/generate_clients/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/generate_clients/tutorial001_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/generate_clients/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/generate_clients/tutorial002_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/generate_clients/tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/generate_clients/tutorial003_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/generate_clients/tutorial004.js +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/generate_clients/tutorial004.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/graphql/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/handling_errors/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/handling_errors/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/handling_errors/tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/handling_errors/tutorial004.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/handling_errors/tutorial005.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/handling_errors/tutorial006.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/header_param_models/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/header_param_models/tutorial001_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/header_param_models/tutorial001_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/header_param_models/tutorial001_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/header_param_models/tutorial001_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/header_param_models/tutorial001_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/header_param_models/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/header_param_models/tutorial002_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/header_param_models/tutorial002_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/header_param_models/tutorial002_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/header_param_models/tutorial002_pv1.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/header_param_models/tutorial002_pv1_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/header_param_models/tutorial002_pv1_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/header_param_models/tutorial002_pv1_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/header_param_models/tutorial002_pv1_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/header_param_models/tutorial002_pv1_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/header_param_models/tutorial002_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/header_param_models/tutorial002_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/header_params/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/header_params/tutorial001_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/header_params/tutorial001_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/header_params/tutorial001_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/header_params/tutorial001_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/header_params/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/header_params/tutorial002_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/header_params/tutorial002_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/header_params/tutorial002_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/header_params/tutorial002_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/header_params/tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/header_params/tutorial003_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/header_params/tutorial003_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/header_params/tutorial003_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/header_params/tutorial003_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/header_params/tutorial003_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/metadata/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/metadata/tutorial001_1.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/metadata/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/metadata/tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/metadata/tutorial004.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/middleware/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/openapi_callbacks/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/openapi_webhooks/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_operation_advanced_configuration/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_operation_advanced_configuration/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_operation_advanced_configuration/tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_operation_advanced_configuration/tutorial004.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_operation_advanced_configuration/tutorial005.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_operation_advanced_configuration/tutorial006.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_operation_advanced_configuration/tutorial007.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_operation_advanced_configuration/tutorial007_pv1.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_operation_configuration/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_operation_configuration/tutorial001_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_operation_configuration/tutorial001_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_operation_configuration/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_operation_configuration/tutorial002_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_operation_configuration/tutorial002_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_operation_configuration/tutorial002b.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_operation_configuration/tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_operation_configuration/tutorial003_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_operation_configuration/tutorial003_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_operation_configuration/tutorial004.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_operation_configuration/tutorial004_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_operation_configuration/tutorial004_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_operation_configuration/tutorial005.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_operation_configuration/tutorial005_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_operation_configuration/tutorial005_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_operation_configuration/tutorial006.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_params/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_params/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_params/tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_params/tutorial003b.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_params/tutorial004.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_params/tutorial005.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_params_numeric_validations/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_params_numeric_validations/tutorial001_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_params_numeric_validations/tutorial001_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_params_numeric_validations/tutorial001_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_params_numeric_validations/tutorial001_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_params_numeric_validations/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_params_numeric_validations/tutorial002_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_params_numeric_validations/tutorial002_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_params_numeric_validations/tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_params_numeric_validations/tutorial003_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_params_numeric_validations/tutorial003_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_params_numeric_validations/tutorial004.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_params_numeric_validations/tutorial004_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_params_numeric_validations/tutorial004_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_params_numeric_validations/tutorial005.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_params_numeric_validations/tutorial005_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_params_numeric_validations/tutorial005_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_params_numeric_validations/tutorial006.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_params_numeric_validations/tutorial006_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/path_params_numeric_validations/tutorial006_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/python_types/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/python_types/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/python_types/tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/python_types/tutorial004.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/python_types/tutorial005.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/python_types/tutorial006.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/python_types/tutorial006_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/python_types/tutorial007.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/python_types/tutorial007_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/python_types/tutorial008.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/python_types/tutorial008_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/python_types/tutorial008b.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/python_types/tutorial008b_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/python_types/tutorial009.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/python_types/tutorial009_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/python_types/tutorial009b.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/python_types/tutorial009c.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/python_types/tutorial009c_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/python_types/tutorial010.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/python_types/tutorial011.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/python_types/tutorial011_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/python_types/tutorial011_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/python_types/tutorial012.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/python_types/tutorial013.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/python_types/tutorial013_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_param_models/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_param_models/tutorial001_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_param_models/tutorial001_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_param_models/tutorial001_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_param_models/tutorial001_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_param_models/tutorial001_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_param_models/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_param_models/tutorial002_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_param_models/tutorial002_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_param_models/tutorial002_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_param_models/tutorial002_pv1.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_param_models/tutorial002_pv1_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_param_models/tutorial002_pv1_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_param_models/tutorial002_pv1_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_param_models/tutorial002_pv1_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_param_models/tutorial002_pv1_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_param_models/tutorial002_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_param_models/tutorial002_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params/tutorial002_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params/tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params/tutorial003_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params/tutorial004.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params/tutorial004_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params/tutorial005.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params/tutorial006.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params/tutorial006_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params/tutorial006b.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial001_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial002_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial002_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial002_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial003_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial003_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial003_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial003_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial004.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial004_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial004_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial004_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial004_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial004_regex_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial005.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial005_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial005_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial006.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial006_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial006_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial006b.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial006b_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial006b_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial006c.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial006c_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial006c_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial006c_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial006c_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial006d.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial006d_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial006d_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial007.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial007_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial007_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial007_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial007_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial008.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial008_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial008_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial008_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial008_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial009.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial009_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial009_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial009_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial009_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial010.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial010_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial010_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial010_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial010_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial011.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial011_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial011_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial011_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial011_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial011_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial012.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial012_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial012_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial012_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial013.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial013_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial013_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial014.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial014_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial014_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial014_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/query_params_str_validations/tutorial014_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/request_files/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/request_files/tutorial001_02.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/request_files/tutorial001_02_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/request_files/tutorial001_02_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/request_files/tutorial001_02_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/request_files/tutorial001_02_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/request_files/tutorial001_03.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/request_files/tutorial001_03_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/request_files/tutorial001_03_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/request_files/tutorial001_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/request_files/tutorial001_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/request_files/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/request_files/tutorial002_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/request_files/tutorial002_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/request_files/tutorial002_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/request_files/tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/request_files/tutorial003_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/request_files/tutorial003_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/request_files/tutorial003_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/request_form_models/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/request_form_models/tutorial001_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/request_form_models/tutorial001_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/request_form_models/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/request_form_models/tutorial002_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/request_form_models/tutorial002_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/request_form_models/tutorial002_pv1.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/request_form_models/tutorial002_pv1_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/request_form_models/tutorial002_pv1_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/request_forms/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/request_forms/tutorial001_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/request_forms/tutorial001_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/request_forms_and_files/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/request_forms_and_files/tutorial001_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/request_forms_and_files/tutorial001_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/response_change_status_code/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/response_cookies/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/response_cookies/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/response_directly/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/response_directly/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/response_headers/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/response_headers/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/response_model/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/response_model/tutorial001_01.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/response_model/tutorial001_01_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/response_model/tutorial001_01_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/response_model/tutorial001_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/response_model/tutorial001_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/response_model/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/response_model/tutorial002_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/response_model/tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/response_model/tutorial003_01.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/response_model/tutorial003_01_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/response_model/tutorial003_02.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/response_model/tutorial003_03.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/response_model/tutorial003_04.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/response_model/tutorial003_04_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/response_model/tutorial003_05.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/response_model/tutorial003_05_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/response_model/tutorial003_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/response_model/tutorial004.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/response_model/tutorial004_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/response_model/tutorial004_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/response_model/tutorial005.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/response_model/tutorial005_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/response_model/tutorial006.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/response_model/tutorial006_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/response_status_code/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/response_status_code/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/schema_extra_example/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/schema_extra_example/tutorial001_pv1.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/schema_extra_example/tutorial001_pv1_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/schema_extra_example/tutorial001_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/schema_extra_example/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/schema_extra_example/tutorial002_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/schema_extra_example/tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/schema_extra_example/tutorial003_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/schema_extra_example/tutorial003_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/schema_extra_example/tutorial003_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/schema_extra_example/tutorial003_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/schema_extra_example/tutorial004.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/schema_extra_example/tutorial004_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/schema_extra_example/tutorial004_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/schema_extra_example/tutorial004_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/schema_extra_example/tutorial004_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/schema_extra_example/tutorial005.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/schema_extra_example/tutorial005_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/schema_extra_example/tutorial005_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/schema_extra_example/tutorial005_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/schema_extra_example/tutorial005_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/security/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/security/tutorial001_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/security/tutorial001_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/security/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/security/tutorial002_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/security/tutorial002_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/security/tutorial002_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/security/tutorial002_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/security/tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/security/tutorial003_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/security/tutorial003_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/security/tutorial003_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/security/tutorial003_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/security/tutorial004.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/security/tutorial004_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/security/tutorial004_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/security/tutorial004_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/security/tutorial004_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/security/tutorial005.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/security/tutorial005_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/security/tutorial005_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/security/tutorial005_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/security/tutorial005_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/security/tutorial005_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/security/tutorial006.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/security/tutorial006_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/security/tutorial006_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/security/tutorial007.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/security/tutorial007_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/security/tutorial007_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/separate_openapi_schemas/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/separate_openapi_schemas/tutorial001_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/separate_openapi_schemas/tutorial001_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/separate_openapi_schemas/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/separate_openapi_schemas/tutorial002_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/separate_openapi_schemas/tutorial002_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/settings/app01/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/settings/app01/config.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/settings/app01/main.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/settings/app02/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/settings/app02/config.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/settings/app02/main.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/settings/app02/test_main.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/settings/app02_an/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/settings/app02_an/config.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/settings/app02_an/main.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/settings/app02_an/test_main.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/settings/app02_an_py39/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/settings/app02_an_py39/config.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/settings/app02_an_py39/main.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/settings/app02_an_py39/test_main.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/settings/app03/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/settings/app03/config.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/settings/app03/main.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/settings/app03_an/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/settings/app03_an/config.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/settings/app03_an/config_pv1.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/settings/app03_an/main.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/settings/app03_an_py39/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/settings/app03_an_py39/config.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/settings/app03_an_py39/main.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/settings/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/settings/tutorial001_pv1.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/sql_databases/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/sql_databases/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/sql_databases/tutorial001_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/sql_databases/tutorial001_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/sql_databases/tutorial001_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/sql_databases/tutorial001_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/sql_databases/tutorial001_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/sql_databases/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/sql_databases/tutorial002_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/sql_databases/tutorial002_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/sql_databases/tutorial002_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/sql_databases/tutorial002_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/sql_databases/tutorial002_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/static_files/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/sub_applications/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/templates/static/styles.css +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/templates/templates/item.html +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/templates/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/using_request_directly/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/websockets/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/websockets/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/websockets/tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/websockets/tutorial002_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/websockets/tutorial002_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/websockets/tutorial002_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/websockets/tutorial002_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/websockets/tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/websockets/tutorial003_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/docs_src/wsgi/tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/__main__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/_compat.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/applications.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/background.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/cli.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/concurrency.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/datastructures.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/dependencies/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/dependencies/models.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/dependencies/utils.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/encoders.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/exception_handlers.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/exceptions.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/logger.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/middleware/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/middleware/cors.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/middleware/gzip.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/middleware/httpsredirect.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/middleware/trustedhost.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/middleware/wsgi.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/openapi/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/openapi/constants.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/openapi/docs.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/openapi/models.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/openapi/utils.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/param_functions.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/params.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/py.typed +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/requests.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/responses.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/routing.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/security/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/security/base.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/security/http.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/security/open_id_connect_url.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/security/utils.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/staticfiles.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/templating.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/testclient.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/types.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/utils.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/fastapi/websockets.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/pdm_build.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/requirements-docs-insiders.txt +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/requirements-docs-tests.txt +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/requirements-docs.txt +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/requirements-github-actions.txt +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/requirements-translations.txt +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/requirements.txt +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/scripts/contributors.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/scripts/deploy_docs_status.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/scripts/docs.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/scripts/format.sh +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/scripts/label_approved.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/scripts/lint.sh +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/scripts/mkdocs_hooks.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/scripts/playwright/cookie_param_models/image01.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/scripts/playwright/header_param_models/image01.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/scripts/playwright/query_param_models/image01.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/scripts/playwright/request_form_models/image01.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/scripts/playwright/separate_openapi_schemas/image01.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/scripts/playwright/separate_openapi_schemas/image02.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/scripts/playwright/separate_openapi_schemas/image03.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/scripts/playwright/separate_openapi_schemas/image04.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/scripts/playwright/separate_openapi_schemas/image05.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/scripts/playwright/sql_databases/image01.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/scripts/playwright/sql_databases/image02.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/scripts/sponsors.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/scripts/test-cov-html.sh +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/scripts/test.sh +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/scripts/topic_repos.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/scripts/translate.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/main.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_additional_properties.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_additional_properties_bool.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_additional_response_extra.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_additional_responses_bad.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_additional_responses_custom_model_in_callback.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_additional_responses_custom_validationerror.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_additional_responses_default_validationerror.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_additional_responses_response_class.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_additional_responses_router.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_allow_inf_nan_in_enforcing.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_ambiguous_params.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_annotated.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_application.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_callable_endpoint.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_compat.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_computed_fields.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_custom_middleware_exception.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_custom_route_class.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_custom_schema_fields.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_custom_swagger_ui_redirect.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_datastructures.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_datetime_custom_encoder.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_default_response_class.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_default_response_class_router.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_dependency_cache.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_dependency_class.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_dependency_contextmanager.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_dependency_contextvars.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_dependency_duplicates.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_dependency_normal_exceptions.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_dependency_overrides.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_dependency_security_overrides.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_deprecated_openapi_prefix.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_duplicate_models_openapi.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_empty_router.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_enforce_once_required_parameter.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_exception_handlers.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_extra_routes.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_fastapi_cli.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_filter_pydantic_sub_model/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_filter_pydantic_sub_model/app_pv1.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_filter_pydantic_sub_model/test_filter_pydantic_sub_model_pv1.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_filter_pydantic_sub_model_pv2.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_forms_from_non_typing_sequences.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_forms_single_model.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_forms_single_param.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_generate_unique_id_function.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_generic_parameterless_depends.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_get_request_body.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_http_connection_injection.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_include_route.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_include_router_defaults_overrides.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_infer_param_optionality.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_inherited_custom_class.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_invalid_path_param.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_invalid_sequence_param.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_jsonable_encoder.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_local_docs.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_modules_same_name_body/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_modules_same_name_body/app/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_modules_same_name_body/app/a.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_modules_same_name_body/app/b.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_modules_same_name_body/app/main.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_modules_same_name_body/test_main.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_multi_body_errors.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_multi_query_errors.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_multipart_installation.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_no_swagger_ui_redirect.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_openapi_examples.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_openapi_query_parameter_extension.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_openapi_route_extensions.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_openapi_separate_input_output_schemas.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_openapi_servers.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_operations_signatures.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_orjson_response_class.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_param_class.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_param_in_path_and_dependency.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_param_include_in_schema.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_params_repr.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_path.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_put_no_body.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_query.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_read_with_orm_mode.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_regex_deprecated_body.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_regex_deprecated_params.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_repeated_cookie_headers.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_repeated_dependency_schema.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_repeated_parameter_alias.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_reponse_set_reponse_code_empty.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_request_body_parameters_media_type.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_required_noneable.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_response_by_alias.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_response_change_status_code.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_response_class_no_mediatype.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_response_code_no_body.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_response_model_as_return_annotation.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_response_model_data_filter.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_response_model_data_filter_no_inheritance.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_response_model_include_exclude.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_response_model_invalid.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_response_model_sub_types.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_route_scope.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_router_events.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_router_prefix_with_template.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_router_redirect_slashes.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_schema_extra_examples.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_security_api_key_cookie.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_security_api_key_cookie_description.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_security_api_key_cookie_optional.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_security_api_key_header.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_security_api_key_header_description.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_security_api_key_header_optional.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_security_api_key_query.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_security_api_key_query_description.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_security_api_key_query_optional.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_security_http_base.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_security_http_base_description.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_security_http_base_optional.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_security_http_basic_optional.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_security_http_basic_realm.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_security_http_basic_realm_description.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_security_http_bearer.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_security_http_bearer_description.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_security_http_bearer_optional.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_security_http_digest.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_security_http_digest_description.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_security_http_digest_optional.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_security_oauth2_authorization_code_bearer.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_security_oauth2_authorization_code_bearer_description.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_security_oauth2_password_bearer_optional.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_security_oauth2_password_bearer_optional_description.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_security_openid_connect.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_security_openid_connect_description.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_security_openid_connect_optional.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_serialize_response.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_serialize_response_dataclass.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_serialize_response_model.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_skip_defaults.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_starlette_exception.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_starlette_urlconvertors.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_sub_callbacks.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_swagger_ui_init_oauth.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tuples.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_additional_responses/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_additional_responses/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_additional_responses/test_tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_additional_responses/test_tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_additional_responses/test_tutorial004.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_additional_status_codes/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_additional_status_codes/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_advanced_middleware/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_advanced_middleware/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_advanced_middleware/test_tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_advanced_middleware/test_tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_async_tests/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_async_tests/test_main.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_background_tasks/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_background_tasks/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_background_tasks/test_tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_behind_a_proxy/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_behind_a_proxy/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_behind_a_proxy/test_tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_behind_a_proxy/test_tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_behind_a_proxy/test_tutorial004.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_bigger_applications/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_bigger_applications/test_main.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_body/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_body/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_body_fields/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_body_fields/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_body_multiple_params/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_body_multiple_params/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_body_nested_models/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_body_nested_models/test_tutorial009.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_body_updates/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_body_updates/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_conditional_openapi/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_conditional_openapi/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_configure_swagger_ui/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_configure_swagger_ui/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_configure_swagger_ui/test_tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_configure_swagger_ui/test_tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_cookie_param_models/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_cookie_param_models/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_cookie_param_models/test_tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_cookie_params/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_cookie_params/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_cors/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_cors/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_custom_docs_ui/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_custom_docs_ui/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_custom_docs_ui/test_tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_custom_request_and_route/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_custom_request_and_route/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_custom_request_and_route/test_tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_custom_request_and_route/test_tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_custom_response/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_custom_response/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_custom_response/test_tutorial001b.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_custom_response/test_tutorial004.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_custom_response/test_tutorial005.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_custom_response/test_tutorial006.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_custom_response/test_tutorial006b.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_custom_response/test_tutorial006c.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_custom_response/test_tutorial007.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_custom_response/test_tutorial008.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_custom_response/test_tutorial009.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_custom_response/test_tutorial009b.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_custom_response/test_tutorial009c.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_dataclasses/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_dataclasses/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_dataclasses/test_tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_dataclasses/test_tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_dependencies/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_dependencies/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_dependencies/test_tutorial004.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_dependencies/test_tutorial006.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_dependencies/test_tutorial008b.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_dependencies/test_tutorial008c.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_dependencies/test_tutorial008d.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_dependencies/test_tutorial012.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_events/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_events/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_events/test_tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_events/test_tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_extending_openapi/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_extending_openapi/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_extra_data_types/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_extra_data_types/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_extra_models/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_extra_models/test_tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_extra_models/test_tutorial004.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_extra_models/test_tutorial005.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_first_steps/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_first_steps/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_generate_clients/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_generate_clients/test_tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_handling_errors/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_handling_errors/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_handling_errors/test_tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_handling_errors/test_tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_handling_errors/test_tutorial004.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_handling_errors/test_tutorial005.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_handling_errors/test_tutorial006.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_header_param_models/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_header_param_models/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_header_param_models/test_tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_header_params/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_header_params/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_header_params/test_tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_header_params/test_tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_metadata/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_metadata/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_metadata/test_tutorial001_1.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_metadata/test_tutorial004.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_openapi_callbacks/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_openapi_callbacks/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_openapi_webhooks/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_openapi_webhooks/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_path_operation_advanced_configurations/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial004.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial005.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial006.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial007.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_path_operation_advanced_configurations/test_tutorial007_pv1.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_path_operation_configurations/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_path_operation_configurations/test_tutorial002b.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_path_operation_configurations/test_tutorial005.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_path_operation_configurations/test_tutorial006.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_path_params/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_path_params/test_tutorial004.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_path_params/test_tutorial005.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_query_param_models/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_query_param_models/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_query_param_models/test_tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_query_params/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_query_params/test_tutorial005.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_query_params/test_tutorial006.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_query_params_str_validations/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_query_params_str_validations/test_tutorial010.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_query_params_str_validations/test_tutorial010_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_query_params_str_validations/test_tutorial010_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_query_params_str_validations/test_tutorial010_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_query_params_str_validations/test_tutorial010_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_query_params_str_validations/test_tutorial011.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_query_params_str_validations/test_tutorial011_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_query_params_str_validations/test_tutorial011_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_query_params_str_validations/test_tutorial011_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_query_params_str_validations/test_tutorial011_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_query_params_str_validations/test_tutorial011_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_query_params_str_validations/test_tutorial012.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_query_params_str_validations/test_tutorial012_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_query_params_str_validations/test_tutorial012_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_query_params_str_validations/test_tutorial012_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_query_params_str_validations/test_tutorial013.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_query_params_str_validations/test_tutorial013_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_query_params_str_validations/test_tutorial013_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_query_params_str_validations/test_tutorial014.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_query_params_str_validations/test_tutorial014_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_query_params_str_validations/test_tutorial014_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_query_params_str_validations/test_tutorial014_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_query_params_str_validations/test_tutorial014_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_request_files/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_request_form_models/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_request_form_models/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_request_form_models/test_tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_request_form_models/test_tutorial002_pv1.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_request_forms/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_request_forms/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_request_forms_and_files/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_request_forms_and_files/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_response_change_status_code/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_response_change_status_code/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_response_cookies/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_response_cookies/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_response_cookies/test_tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_response_headers/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_response_headers/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_response_headers/test_tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_response_model/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_response_model/test_tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_response_model/test_tutorial003_01.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_response_model/test_tutorial003_02.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_response_model/test_tutorial003_03.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_response_model/test_tutorial003_04.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_response_model/test_tutorial003_04_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_response_model/test_tutorial003_05.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_response_model/test_tutorial003_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_response_model/test_tutorial004.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_response_model/test_tutorial005.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_response_model/test_tutorial006.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_schema_extra_example/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_schema_extra_example/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_schema_extra_example/test_tutorial001_pv1.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_schema_extra_example/test_tutorial004.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_schema_extra_example/test_tutorial005.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_security/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_security/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_security/test_tutorial006.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_separate_openapi_schemas/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_separate_openapi_schemas/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_separate_openapi_schemas/test_tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_settings/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_settings/test_app02.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_settings/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_settings/test_tutorial001_pv1.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_sql_databases/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_sql_databases/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_sql_databases/test_tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_sub_applications/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_sub_applications/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_templates/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_templates/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_testing/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_testing/test_main.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_testing/test_main_b.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_testing/test_main_b_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_testing/test_main_b_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_testing/test_main_b_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_testing/test_main_b_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_testing/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_testing/test_tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_testing/test_tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_testing_dependencies/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_testing_dependencies/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_testing_dependencies/test_tutorial001_an.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_testing_dependencies/test_tutorial001_an_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_testing_dependencies/test_tutorial001_an_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_testing_dependencies/test_tutorial001_py310.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_websockets/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_websockets/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_websockets/test_tutorial002.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_websockets/test_tutorial003.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_websockets/test_tutorial003_py39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_wsgi/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_tutorial/test_wsgi/test_tutorial001.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_typing_python39.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_union_body.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_union_inherited_body.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_validate_response.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_validate_response_dataclass.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_validate_response_recursive/__init__.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_validate_response_recursive/app_pv1.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_validate_response_recursive/app_pv2.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_validate_response_recursive/test_validate_response_recursive_pv1.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_validate_response_recursive/test_validate_response_recursive_pv2.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_webhooks_security.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_ws_dependencies.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/test_ws_router.py +0 -0
- {fastapi-0.115.7 → fastapi-0.115.8}/tests/utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: fastapi
|
|
3
|
-
Version: 0.115.
|
|
3
|
+
Version: 0.115.8
|
|
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
|
|
@@ -29,6 +29,7 @@ Classifier: Programming Language :: Python :: 3.9
|
|
|
29
29
|
Classifier: Programming Language :: Python :: 3.10
|
|
30
30
|
Classifier: Programming Language :: Python :: 3.11
|
|
31
31
|
Classifier: Programming Language :: Python :: 3.12
|
|
32
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
32
33
|
Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
|
|
33
34
|
Classifier: Topic :: Internet :: WWW/HTTP
|
|
34
35
|
Project-URL: Homepage, https://github.com/fastapi/fastapi
|
|
@@ -17,7 +17,7 @@ app = FastAPI()
|
|
|
17
17
|
@app.post("/items/")
|
|
18
18
|
async def create_item(item: Item):
|
|
19
19
|
item_dict = item.dict()
|
|
20
|
-
if item.tax:
|
|
20
|
+
if item.tax is not None:
|
|
21
21
|
price_with_tax = item.price + item.tax
|
|
22
22
|
item_dict.update({"price_with_tax": price_with_tax})
|
|
23
23
|
return item_dict
|
|
@@ -15,7 +15,7 @@ app = FastAPI()
|
|
|
15
15
|
@app.post("/items/")
|
|
16
16
|
async def create_item(item: Item):
|
|
17
17
|
item_dict = item.dict()
|
|
18
|
-
if item.tax:
|
|
18
|
+
if item.tax is not None:
|
|
19
19
|
price_with_tax = item.price + item.tax
|
|
20
20
|
item_dict.update({"price_with_tax": price_with_tax})
|
|
21
21
|
return item_dict
|
|
@@ -9,7 +9,15 @@ from typing_extensions import Annotated, Doc
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
class APIKeyBase(SecurityBase):
|
|
12
|
-
|
|
12
|
+
@staticmethod
|
|
13
|
+
def check_api_key(api_key: Optional[str], auto_error: bool) -> Optional[str]:
|
|
14
|
+
if not api_key:
|
|
15
|
+
if auto_error:
|
|
16
|
+
raise HTTPException(
|
|
17
|
+
status_code=HTTP_403_FORBIDDEN, detail="Not authenticated"
|
|
18
|
+
)
|
|
19
|
+
return None
|
|
20
|
+
return api_key
|
|
13
21
|
|
|
14
22
|
|
|
15
23
|
class APIKeyQuery(APIKeyBase):
|
|
@@ -101,14 +109,7 @@ class APIKeyQuery(APIKeyBase):
|
|
|
101
109
|
|
|
102
110
|
async def __call__(self, request: Request) -> Optional[str]:
|
|
103
111
|
api_key = request.query_params.get(self.model.name)
|
|
104
|
-
|
|
105
|
-
if self.auto_error:
|
|
106
|
-
raise HTTPException(
|
|
107
|
-
status_code=HTTP_403_FORBIDDEN, detail="Not authenticated"
|
|
108
|
-
)
|
|
109
|
-
else:
|
|
110
|
-
return None
|
|
111
|
-
return api_key
|
|
112
|
+
return self.check_api_key(api_key, self.auto_error)
|
|
112
113
|
|
|
113
114
|
|
|
114
115
|
class APIKeyHeader(APIKeyBase):
|
|
@@ -196,14 +197,7 @@ class APIKeyHeader(APIKeyBase):
|
|
|
196
197
|
|
|
197
198
|
async def __call__(self, request: Request) -> Optional[str]:
|
|
198
199
|
api_key = request.headers.get(self.model.name)
|
|
199
|
-
|
|
200
|
-
if self.auto_error:
|
|
201
|
-
raise HTTPException(
|
|
202
|
-
status_code=HTTP_403_FORBIDDEN, detail="Not authenticated"
|
|
203
|
-
)
|
|
204
|
-
else:
|
|
205
|
-
return None
|
|
206
|
-
return api_key
|
|
200
|
+
return self.check_api_key(api_key, self.auto_error)
|
|
207
201
|
|
|
208
202
|
|
|
209
203
|
class APIKeyCookie(APIKeyBase):
|
|
@@ -291,11 +285,4 @@ class APIKeyCookie(APIKeyBase):
|
|
|
291
285
|
|
|
292
286
|
async def __call__(self, request: Request) -> Optional[str]:
|
|
293
287
|
api_key = request.cookies.get(self.model.name)
|
|
294
|
-
|
|
295
|
-
if self.auto_error:
|
|
296
|
-
raise HTTPException(
|
|
297
|
-
status_code=HTTP_403_FORBIDDEN, detail="Not authenticated"
|
|
298
|
-
)
|
|
299
|
-
else:
|
|
300
|
-
return None
|
|
301
|
-
return api_key
|
|
288
|
+
return self.check_api_key(api_key, self.auto_error)
|
|
@@ -63,7 +63,7 @@ class OAuth2PasswordRequestForm:
|
|
|
63
63
|
*,
|
|
64
64
|
grant_type: Annotated[
|
|
65
65
|
Union[str, None],
|
|
66
|
-
Form(pattern="password"),
|
|
66
|
+
Form(pattern="^password$"),
|
|
67
67
|
Doc(
|
|
68
68
|
"""
|
|
69
69
|
The OAuth2 spec says it is required and MUST be the fixed string
|
|
@@ -217,7 +217,7 @@ class OAuth2PasswordRequestFormStrict(OAuth2PasswordRequestForm):
|
|
|
217
217
|
self,
|
|
218
218
|
grant_type: Annotated[
|
|
219
219
|
str,
|
|
220
|
-
Form(pattern="password"),
|
|
220
|
+
Form(pattern="^password$"),
|
|
221
221
|
Doc(
|
|
222
222
|
"""
|
|
223
223
|
The OAuth2 spec says it is required and MUST be the fixed string
|
|
@@ -40,6 +40,7 @@ classifiers = [
|
|
|
40
40
|
"Programming Language :: Python :: 3.10",
|
|
41
41
|
"Programming Language :: Python :: 3.11",
|
|
42
42
|
"Programming Language :: Python :: 3.12",
|
|
43
|
+
"Programming Language :: Python :: 3.13",
|
|
43
44
|
"Topic :: Internet :: WWW/HTTP :: HTTP Servers",
|
|
44
45
|
"Topic :: Internet :: WWW/HTTP",
|
|
45
46
|
]
|
|
@@ -48,7 +49,7 @@ dependencies = [
|
|
|
48
49
|
"pydantic>=1.7.4,!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0",
|
|
49
50
|
"typing-extensions>=4.8.0",
|
|
50
51
|
]
|
|
51
|
-
version = "0.115.
|
|
52
|
+
version = "0.115.8"
|
|
52
53
|
|
|
53
54
|
[project.urls]
|
|
54
55
|
Homepage = "https://github.com/fastapi/fastapi"
|
|
@@ -137,6 +138,7 @@ filterwarnings = [
|
|
|
137
138
|
"ignore:You seem to already have a custom.*:RuntimeWarning:trio",
|
|
138
139
|
"ignore:datetime\\.datetime\\.utcfromtimestamp\\(\\) is deprecated and scheduled for removal in a future version\\..*:DeprecationWarning:sqlalchemy",
|
|
139
140
|
"ignore:The `hash` argument is deprecated*:DeprecationWarning:trio",
|
|
141
|
+
"ignore:Exception ignored in. <sqlite3\\.Connection object.*:pytest.PytestUnraisableExceptionWarning",
|
|
140
142
|
]
|
|
141
143
|
|
|
142
144
|
[tool.coverage.run]
|
|
@@ -0,0 +1,432 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
import random
|
|
3
|
+
import sys
|
|
4
|
+
import time
|
|
5
|
+
from pathlib import Path
|
|
6
|
+
from typing import Any, Dict, List, Union, cast
|
|
7
|
+
|
|
8
|
+
import httpx
|
|
9
|
+
from github import Github
|
|
10
|
+
from pydantic import BaseModel, SecretStr
|
|
11
|
+
from pydantic_settings import BaseSettings
|
|
12
|
+
|
|
13
|
+
awaiting_label = "awaiting-review"
|
|
14
|
+
lang_all_label = "lang-all"
|
|
15
|
+
approved_label = "approved-1"
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
github_graphql_url = "https://api.github.com/graphql"
|
|
19
|
+
questions_translations_category_id = "DIC_kwDOCZduT84CT5P9"
|
|
20
|
+
|
|
21
|
+
all_discussions_query = """
|
|
22
|
+
query Q($category_id: ID) {
|
|
23
|
+
repository(name: "fastapi", owner: "fastapi") {
|
|
24
|
+
discussions(categoryId: $category_id, first: 100) {
|
|
25
|
+
nodes {
|
|
26
|
+
title
|
|
27
|
+
id
|
|
28
|
+
number
|
|
29
|
+
labels(first: 10) {
|
|
30
|
+
edges {
|
|
31
|
+
node {
|
|
32
|
+
id
|
|
33
|
+
name
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
"""
|
|
42
|
+
|
|
43
|
+
translation_discussion_query = """
|
|
44
|
+
query Q($after: String, $discussion_number: Int!) {
|
|
45
|
+
repository(name: "fastapi", owner: "fastapi") {
|
|
46
|
+
discussion(number: $discussion_number) {
|
|
47
|
+
comments(first: 100, after: $after) {
|
|
48
|
+
edges {
|
|
49
|
+
cursor
|
|
50
|
+
node {
|
|
51
|
+
id
|
|
52
|
+
url
|
|
53
|
+
body
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
"""
|
|
61
|
+
|
|
62
|
+
add_comment_mutation = """
|
|
63
|
+
mutation Q($discussion_id: ID!, $body: String!) {
|
|
64
|
+
addDiscussionComment(input: {discussionId: $discussion_id, body: $body}) {
|
|
65
|
+
comment {
|
|
66
|
+
id
|
|
67
|
+
url
|
|
68
|
+
body
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
"""
|
|
73
|
+
|
|
74
|
+
update_comment_mutation = """
|
|
75
|
+
mutation Q($comment_id: ID!, $body: String!) {
|
|
76
|
+
updateDiscussionComment(input: {commentId: $comment_id, body: $body}) {
|
|
77
|
+
comment {
|
|
78
|
+
id
|
|
79
|
+
url
|
|
80
|
+
body
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
"""
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
class Comment(BaseModel):
|
|
88
|
+
id: str
|
|
89
|
+
url: str
|
|
90
|
+
body: str
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
class UpdateDiscussionComment(BaseModel):
|
|
94
|
+
comment: Comment
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
class UpdateCommentData(BaseModel):
|
|
98
|
+
updateDiscussionComment: UpdateDiscussionComment
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
class UpdateCommentResponse(BaseModel):
|
|
102
|
+
data: UpdateCommentData
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
class AddDiscussionComment(BaseModel):
|
|
106
|
+
comment: Comment
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
class AddCommentData(BaseModel):
|
|
110
|
+
addDiscussionComment: AddDiscussionComment
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
class AddCommentResponse(BaseModel):
|
|
114
|
+
data: AddCommentData
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
class CommentsEdge(BaseModel):
|
|
118
|
+
node: Comment
|
|
119
|
+
cursor: str
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
class Comments(BaseModel):
|
|
123
|
+
edges: List[CommentsEdge]
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
class CommentsDiscussion(BaseModel):
|
|
127
|
+
comments: Comments
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
class CommentsRepository(BaseModel):
|
|
131
|
+
discussion: CommentsDiscussion
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
class CommentsData(BaseModel):
|
|
135
|
+
repository: CommentsRepository
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
class CommentsResponse(BaseModel):
|
|
139
|
+
data: CommentsData
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
class AllDiscussionsLabelNode(BaseModel):
|
|
143
|
+
id: str
|
|
144
|
+
name: str
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
class AllDiscussionsLabelsEdge(BaseModel):
|
|
148
|
+
node: AllDiscussionsLabelNode
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
class AllDiscussionsDiscussionLabels(BaseModel):
|
|
152
|
+
edges: List[AllDiscussionsLabelsEdge]
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
class AllDiscussionsDiscussionNode(BaseModel):
|
|
156
|
+
title: str
|
|
157
|
+
id: str
|
|
158
|
+
number: int
|
|
159
|
+
labels: AllDiscussionsDiscussionLabels
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
class AllDiscussionsDiscussions(BaseModel):
|
|
163
|
+
nodes: List[AllDiscussionsDiscussionNode]
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
class AllDiscussionsRepository(BaseModel):
|
|
167
|
+
discussions: AllDiscussionsDiscussions
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
class AllDiscussionsData(BaseModel):
|
|
171
|
+
repository: AllDiscussionsRepository
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
class AllDiscussionsResponse(BaseModel):
|
|
175
|
+
data: AllDiscussionsData
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
class Settings(BaseSettings):
|
|
179
|
+
model_config = {"env_ignore_empty": True}
|
|
180
|
+
|
|
181
|
+
github_repository: str
|
|
182
|
+
github_token: SecretStr
|
|
183
|
+
github_event_path: Path
|
|
184
|
+
github_event_name: Union[str, None] = None
|
|
185
|
+
httpx_timeout: int = 30
|
|
186
|
+
debug: Union[bool, None] = False
|
|
187
|
+
number: int | None = None
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
class PartialGitHubEventIssue(BaseModel):
|
|
191
|
+
number: int | None = None
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
class PartialGitHubEvent(BaseModel):
|
|
195
|
+
pull_request: PartialGitHubEventIssue | None = None
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
def get_graphql_response(
|
|
199
|
+
*,
|
|
200
|
+
settings: Settings,
|
|
201
|
+
query: str,
|
|
202
|
+
after: Union[str, None] = None,
|
|
203
|
+
category_id: Union[str, None] = None,
|
|
204
|
+
discussion_number: Union[int, None] = None,
|
|
205
|
+
discussion_id: Union[str, None] = None,
|
|
206
|
+
comment_id: Union[str, None] = None,
|
|
207
|
+
body: Union[str, None] = None,
|
|
208
|
+
) -> Dict[str, Any]:
|
|
209
|
+
headers = {"Authorization": f"token {settings.github_token.get_secret_value()}"}
|
|
210
|
+
variables = {
|
|
211
|
+
"after": after,
|
|
212
|
+
"category_id": category_id,
|
|
213
|
+
"discussion_number": discussion_number,
|
|
214
|
+
"discussion_id": discussion_id,
|
|
215
|
+
"comment_id": comment_id,
|
|
216
|
+
"body": body,
|
|
217
|
+
}
|
|
218
|
+
response = httpx.post(
|
|
219
|
+
github_graphql_url,
|
|
220
|
+
headers=headers,
|
|
221
|
+
timeout=settings.httpx_timeout,
|
|
222
|
+
json={"query": query, "variables": variables, "operationName": "Q"},
|
|
223
|
+
)
|
|
224
|
+
if response.status_code != 200:
|
|
225
|
+
logging.error(
|
|
226
|
+
f"Response was not 200, after: {after}, category_id: {category_id}"
|
|
227
|
+
)
|
|
228
|
+
logging.error(response.text)
|
|
229
|
+
raise RuntimeError(response.text)
|
|
230
|
+
data = response.json()
|
|
231
|
+
if "errors" in data:
|
|
232
|
+
logging.error(f"Errors in response, after: {after}, category_id: {category_id}")
|
|
233
|
+
logging.error(data["errors"])
|
|
234
|
+
logging.error(response.text)
|
|
235
|
+
raise RuntimeError(response.text)
|
|
236
|
+
return cast(Dict[str, Any], data)
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
def get_graphql_translation_discussions(
|
|
240
|
+
*, settings: Settings
|
|
241
|
+
) -> List[AllDiscussionsDiscussionNode]:
|
|
242
|
+
data = get_graphql_response(
|
|
243
|
+
settings=settings,
|
|
244
|
+
query=all_discussions_query,
|
|
245
|
+
category_id=questions_translations_category_id,
|
|
246
|
+
)
|
|
247
|
+
graphql_response = AllDiscussionsResponse.model_validate(data)
|
|
248
|
+
return graphql_response.data.repository.discussions.nodes
|
|
249
|
+
|
|
250
|
+
|
|
251
|
+
def get_graphql_translation_discussion_comments_edges(
|
|
252
|
+
*, settings: Settings, discussion_number: int, after: Union[str, None] = None
|
|
253
|
+
) -> List[CommentsEdge]:
|
|
254
|
+
data = get_graphql_response(
|
|
255
|
+
settings=settings,
|
|
256
|
+
query=translation_discussion_query,
|
|
257
|
+
discussion_number=discussion_number,
|
|
258
|
+
after=after,
|
|
259
|
+
)
|
|
260
|
+
graphql_response = CommentsResponse.model_validate(data)
|
|
261
|
+
return graphql_response.data.repository.discussion.comments.edges
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
def get_graphql_translation_discussion_comments(
|
|
265
|
+
*, settings: Settings, discussion_number: int
|
|
266
|
+
) -> list[Comment]:
|
|
267
|
+
comment_nodes: List[Comment] = []
|
|
268
|
+
discussion_edges = get_graphql_translation_discussion_comments_edges(
|
|
269
|
+
settings=settings, discussion_number=discussion_number
|
|
270
|
+
)
|
|
271
|
+
|
|
272
|
+
while discussion_edges:
|
|
273
|
+
for discussion_edge in discussion_edges:
|
|
274
|
+
comment_nodes.append(discussion_edge.node)
|
|
275
|
+
last_edge = discussion_edges[-1]
|
|
276
|
+
discussion_edges = get_graphql_translation_discussion_comments_edges(
|
|
277
|
+
settings=settings,
|
|
278
|
+
discussion_number=discussion_number,
|
|
279
|
+
after=last_edge.cursor,
|
|
280
|
+
)
|
|
281
|
+
return comment_nodes
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
def create_comment(*, settings: Settings, discussion_id: str, body: str) -> Comment:
|
|
285
|
+
data = get_graphql_response(
|
|
286
|
+
settings=settings,
|
|
287
|
+
query=add_comment_mutation,
|
|
288
|
+
discussion_id=discussion_id,
|
|
289
|
+
body=body,
|
|
290
|
+
)
|
|
291
|
+
response = AddCommentResponse.model_validate(data)
|
|
292
|
+
return response.data.addDiscussionComment.comment
|
|
293
|
+
|
|
294
|
+
|
|
295
|
+
def update_comment(*, settings: Settings, comment_id: str, body: str) -> Comment:
|
|
296
|
+
data = get_graphql_response(
|
|
297
|
+
settings=settings,
|
|
298
|
+
query=update_comment_mutation,
|
|
299
|
+
comment_id=comment_id,
|
|
300
|
+
body=body,
|
|
301
|
+
)
|
|
302
|
+
response = UpdateCommentResponse.model_validate(data)
|
|
303
|
+
return response.data.updateDiscussionComment.comment
|
|
304
|
+
|
|
305
|
+
|
|
306
|
+
def main() -> None:
|
|
307
|
+
settings = Settings()
|
|
308
|
+
if settings.debug:
|
|
309
|
+
logging.basicConfig(level=logging.DEBUG)
|
|
310
|
+
else:
|
|
311
|
+
logging.basicConfig(level=logging.INFO)
|
|
312
|
+
logging.debug(f"Using config: {settings.model_dump_json()}")
|
|
313
|
+
g = Github(settings.github_token.get_secret_value())
|
|
314
|
+
repo = g.get_repo(settings.github_repository)
|
|
315
|
+
if not settings.github_event_path.is_file():
|
|
316
|
+
raise RuntimeError(
|
|
317
|
+
f"No github event file available at: {settings.github_event_path}"
|
|
318
|
+
)
|
|
319
|
+
contents = settings.github_event_path.read_text()
|
|
320
|
+
github_event = PartialGitHubEvent.model_validate_json(contents)
|
|
321
|
+
logging.info(f"Using GitHub event: {github_event}")
|
|
322
|
+
number = (
|
|
323
|
+
github_event.pull_request and github_event.pull_request.number
|
|
324
|
+
) or settings.number
|
|
325
|
+
if number is None:
|
|
326
|
+
raise RuntimeError("No PR number available")
|
|
327
|
+
|
|
328
|
+
# Avoid race conditions with multiple labels
|
|
329
|
+
sleep_time = random.random() * 10 # random number between 0 and 10 seconds
|
|
330
|
+
logging.info(
|
|
331
|
+
f"Sleeping for {sleep_time} seconds to avoid "
|
|
332
|
+
"race conditions and multiple comments"
|
|
333
|
+
)
|
|
334
|
+
time.sleep(sleep_time)
|
|
335
|
+
|
|
336
|
+
# Get PR
|
|
337
|
+
logging.debug(f"Processing PR: #{number}")
|
|
338
|
+
pr = repo.get_pull(number)
|
|
339
|
+
label_strs = {label.name for label in pr.get_labels()}
|
|
340
|
+
langs = []
|
|
341
|
+
for label in label_strs:
|
|
342
|
+
if label.startswith("lang-") and not label == lang_all_label:
|
|
343
|
+
langs.append(label[5:])
|
|
344
|
+
logging.info(f"PR #{pr.number} has labels: {label_strs}")
|
|
345
|
+
if not langs or lang_all_label not in label_strs:
|
|
346
|
+
logging.info(f"PR #{pr.number} doesn't seem to be a translation PR, skipping")
|
|
347
|
+
sys.exit(0)
|
|
348
|
+
|
|
349
|
+
# Generate translation map, lang ID to discussion
|
|
350
|
+
discussions = get_graphql_translation_discussions(settings=settings)
|
|
351
|
+
lang_to_discussion_map: Dict[str, AllDiscussionsDiscussionNode] = {}
|
|
352
|
+
for discussion in discussions:
|
|
353
|
+
for edge in discussion.labels.edges:
|
|
354
|
+
label = edge.node.name
|
|
355
|
+
if label.startswith("lang-") and not label == lang_all_label:
|
|
356
|
+
lang = label[5:]
|
|
357
|
+
lang_to_discussion_map[lang] = discussion
|
|
358
|
+
logging.debug(f"Using translations map: {lang_to_discussion_map}")
|
|
359
|
+
|
|
360
|
+
# Messages to create or check
|
|
361
|
+
new_translation_message = f"Good news everyone! 😉 There's a new translation PR to be reviewed: #{pr.number} by @{pr.user.login}. 🎉 This requires 2 approvals from native speakers to be merged. 🤓"
|
|
362
|
+
done_translation_message = f"~There's a new translation PR to be reviewed: #{pr.number} by @{pr.user.login}~ Good job! This is done. 🍰☕"
|
|
363
|
+
|
|
364
|
+
# Normally only one language, but still
|
|
365
|
+
for lang in langs:
|
|
366
|
+
if lang not in lang_to_discussion_map:
|
|
367
|
+
log_message = f"Could not find discussion for language: {lang}"
|
|
368
|
+
logging.error(log_message)
|
|
369
|
+
raise RuntimeError(log_message)
|
|
370
|
+
discussion = lang_to_discussion_map[lang]
|
|
371
|
+
logging.info(
|
|
372
|
+
f"Found a translation discussion for language: {lang} in discussion: #{discussion.number}"
|
|
373
|
+
)
|
|
374
|
+
|
|
375
|
+
already_notified_comment: Union[Comment, None] = None
|
|
376
|
+
already_done_comment: Union[Comment, None] = None
|
|
377
|
+
|
|
378
|
+
logging.info(
|
|
379
|
+
f"Checking current comments in discussion: #{discussion.number} to see if already notified about this PR: #{pr.number}"
|
|
380
|
+
)
|
|
381
|
+
comments = get_graphql_translation_discussion_comments(
|
|
382
|
+
settings=settings, discussion_number=discussion.number
|
|
383
|
+
)
|
|
384
|
+
for comment in comments:
|
|
385
|
+
if new_translation_message in comment.body:
|
|
386
|
+
already_notified_comment = comment
|
|
387
|
+
elif done_translation_message in comment.body:
|
|
388
|
+
already_done_comment = comment
|
|
389
|
+
logging.info(
|
|
390
|
+
f"Already notified comment: {already_notified_comment}, already done comment: {already_done_comment}"
|
|
391
|
+
)
|
|
392
|
+
|
|
393
|
+
if pr.state == "open" and awaiting_label in label_strs:
|
|
394
|
+
logging.info(
|
|
395
|
+
f"This PR seems to be a language translation and awaiting reviews: #{pr.number}"
|
|
396
|
+
)
|
|
397
|
+
if already_notified_comment:
|
|
398
|
+
logging.info(
|
|
399
|
+
f"This PR #{pr.number} was already notified in comment: {already_notified_comment.url}"
|
|
400
|
+
)
|
|
401
|
+
else:
|
|
402
|
+
logging.info(
|
|
403
|
+
f"Writing notification comment about PR #{pr.number} in Discussion: #{discussion.number}"
|
|
404
|
+
)
|
|
405
|
+
comment = create_comment(
|
|
406
|
+
settings=settings,
|
|
407
|
+
discussion_id=discussion.id,
|
|
408
|
+
body=new_translation_message,
|
|
409
|
+
)
|
|
410
|
+
logging.info(f"Notified in comment: {comment.url}")
|
|
411
|
+
elif pr.state == "closed" or approved_label in label_strs:
|
|
412
|
+
logging.info(f"Already approved or closed PR #{pr.number}")
|
|
413
|
+
if already_done_comment:
|
|
414
|
+
logging.info(
|
|
415
|
+
f"This PR #{pr.number} was already marked as done in comment: {already_done_comment.url}"
|
|
416
|
+
)
|
|
417
|
+
elif already_notified_comment:
|
|
418
|
+
updated_comment = update_comment(
|
|
419
|
+
settings=settings,
|
|
420
|
+
comment_id=already_notified_comment.id,
|
|
421
|
+
body=done_translation_message,
|
|
422
|
+
)
|
|
423
|
+
logging.info(f"Marked as done in comment: {updated_comment.url}")
|
|
424
|
+
else:
|
|
425
|
+
logging.info(
|
|
426
|
+
f"There doesn't seem to be anything to be done about PR #{pr.number}"
|
|
427
|
+
)
|
|
428
|
+
logging.info("Finished")
|
|
429
|
+
|
|
430
|
+
|
|
431
|
+
if __name__ == "__main__":
|
|
432
|
+
main()
|