|
|
|
@ -57,7 +57,6 @@ Issues = "https://github.com/fastapi/fastapi/issues" |
|
|
|
Changelog = "https://fastapi.tiangolo.com/release-notes/" |
|
|
|
|
|
|
|
[project.optional-dependencies] |
|
|
|
|
|
|
|
standard = [ |
|
|
|
"fastapi-cli[standard] >=0.0.8", |
|
|
|
# For the test client |
|
|
|
@ -245,25 +244,16 @@ disallow_incomplete_defs = false |
|
|
|
disallow_untyped_defs = false |
|
|
|
disallow_untyped_calls = false |
|
|
|
|
|
|
|
[tool.pytest.ini_options] |
|
|
|
[tool.pytest] |
|
|
|
minversion = "9.0" |
|
|
|
addopts = [ |
|
|
|
"--strict-config", |
|
|
|
"--strict-markers", |
|
|
|
"--ignore=docs_src", |
|
|
|
] |
|
|
|
xfail_strict = true |
|
|
|
junit_family = "xunit2" |
|
|
|
strict_xfail = true |
|
|
|
filterwarnings = [ |
|
|
|
"error", |
|
|
|
# see https://trio.readthedocs.io/en/stable/history.html#trio-0-22-0-2022-09-28 |
|
|
|
"ignore:You seem to already have a custom.*:RuntimeWarning:trio", |
|
|
|
# TODO: remove after upgrading SQLAlchemy to a version that includes the following changes |
|
|
|
# https://github.com/sqlalchemy/sqlalchemy/commit/59521abcc0676e936b31a523bd968fc157fef0c2 |
|
|
|
'ignore:datetime\.datetime\.utcfromtimestamp\(\) is deprecated and scheduled for removal in a future version\..*:DeprecationWarning:sqlalchemy', |
|
|
|
# Trio 24.1.0 raises a warning from attrs |
|
|
|
# Ref: https://github.com/python-trio/trio/pull/3054 |
|
|
|
# Remove once there's a new version of Trio |
|
|
|
'ignore:The `hash` argument is deprecated*:DeprecationWarning:trio', |
|
|
|
] |
|
|
|
|
|
|
|
[tool.coverage.run] |
|
|
|
@ -280,7 +270,6 @@ dynamic_context = "test_function" |
|
|
|
omit = [ |
|
|
|
"docs_src/response_model/tutorial003_04_py39.py", |
|
|
|
"docs_src/response_model/tutorial003_04_py310.py", |
|
|
|
"docs_src/dependencies/tutorial008_an_py39.py", # difficult to mock |
|
|
|
"docs_src/dependencies/tutorial013_an_py310.py", # temporary code example? |
|
|
|
"docs_src/dependencies/tutorial014_an_py310.py", # temporary code example? |
|
|
|
# Pydantic v1 migration, no longer tested |
|
|
|
@ -288,202 +277,6 @@ omit = [ |
|
|
|
"docs_src/pydantic_v1_in_v2/tutorial002_an_py310.py", |
|
|
|
"docs_src/pydantic_v1_in_v2/tutorial003_an_py310.py", |
|
|
|
"docs_src/pydantic_v1_in_v2/tutorial004_an_py310.py", |
|
|
|
# TODO: remove all the ignores below when all translations use the new Python 3.10 files |
|
|
|
"docs_src/additional_responses/tutorial001_py39.py", |
|
|
|
"docs_src/additional_responses/tutorial003_py39.py", |
|
|
|
"docs_src/advanced_middleware/tutorial001_py39.py", |
|
|
|
"docs_src/advanced_middleware/tutorial002_py39.py", |
|
|
|
"docs_src/advanced_middleware/tutorial003_py39.py", |
|
|
|
"docs_src/app_testing/app_a_py39/main.py", |
|
|
|
"docs_src/app_testing/app_a_py39/test_main.py", |
|
|
|
"docs_src/app_testing/tutorial001_py39.py", |
|
|
|
"docs_src/app_testing/tutorial002_py39.py", |
|
|
|
"docs_src/app_testing/tutorial003_py39.py", |
|
|
|
"docs_src/app_testing/tutorial004_py39.py", |
|
|
|
"docs_src/async_tests/app_a_py39/main.py", |
|
|
|
"docs_src/async_tests/app_a_py39/test_main.py", |
|
|
|
"docs_src/authentication_error_status_code/tutorial001_an_py39.py", |
|
|
|
"docs_src/background_tasks/tutorial001_py39.py", |
|
|
|
"docs_src/behind_a_proxy/tutorial001_01_py39.py", |
|
|
|
"docs_src/behind_a_proxy/tutorial001_py39.py", |
|
|
|
"docs_src/behind_a_proxy/tutorial002_py39.py", |
|
|
|
"docs_src/behind_a_proxy/tutorial003_py39.py", |
|
|
|
"docs_src/behind_a_proxy/tutorial004_py39.py", |
|
|
|
"docs_src/bigger_applications/app_an_py39/dependencies.py", |
|
|
|
"docs_src/bigger_applications/app_an_py39/internal/admin.py", |
|
|
|
"docs_src/bigger_applications/app_an_py39/main.py", |
|
|
|
"docs_src/bigger_applications/app_an_py39/routers/items.py", |
|
|
|
"docs_src/bigger_applications/app_an_py39/routers/users.py", |
|
|
|
"docs_src/bigger_applications/app_py39/dependencies.py", |
|
|
|
"docs_src/bigger_applications/app_py39/main.py", |
|
|
|
"docs_src/body_nested_models/tutorial008_py39.py", |
|
|
|
"docs_src/body_nested_models/tutorial009_py39.py", |
|
|
|
"docs_src/conditional_openapi/tutorial001_py39.py", |
|
|
|
"docs_src/configure_swagger_ui/tutorial001_py39.py", |
|
|
|
"docs_src/configure_swagger_ui/tutorial002_py39.py", |
|
|
|
"docs_src/configure_swagger_ui/tutorial003_py39.py", |
|
|
|
"docs_src/cors/tutorial001_py39.py", |
|
|
|
"docs_src/custom_docs_ui/tutorial001_py39.py", |
|
|
|
"docs_src/custom_docs_ui/tutorial002_py39.py", |
|
|
|
"docs_src/custom_response/tutorial001_py39.py", |
|
|
|
"docs_src/custom_response/tutorial001b_py39.py", |
|
|
|
"docs_src/custom_response/tutorial002_py39.py", |
|
|
|
"docs_src/custom_response/tutorial003_py39.py", |
|
|
|
"docs_src/custom_response/tutorial004_py39.py", |
|
|
|
"docs_src/custom_response/tutorial005_py39.py", |
|
|
|
"docs_src/custom_response/tutorial006_py39.py", |
|
|
|
"docs_src/custom_response/tutorial006b_py39.py", |
|
|
|
"docs_src/custom_response/tutorial006c_py39.py", |
|
|
|
"docs_src/custom_response/tutorial007_py39.py", |
|
|
|
"docs_src/custom_response/tutorial008_py39.py", |
|
|
|
"docs_src/custom_response/tutorial009_py39.py", |
|
|
|
"docs_src/custom_response/tutorial009b_py39.py", |
|
|
|
"docs_src/custom_response/tutorial009c_py39.py", |
|
|
|
"docs_src/custom_response/tutorial010_py39.py", |
|
|
|
"docs_src/debugging/tutorial001_py39.py", |
|
|
|
"docs_src/dependencies/tutorial006_an_py39.py", |
|
|
|
"docs_src/dependencies/tutorial006_py39.py", |
|
|
|
"docs_src/dependencies/tutorial007_py39.py", |
|
|
|
"docs_src/dependencies/tutorial008_py39.py", |
|
|
|
"docs_src/dependencies/tutorial008b_an_py39.py", |
|
|
|
"docs_src/dependencies/tutorial008b_py39.py", |
|
|
|
"docs_src/dependencies/tutorial008c_an_py39.py", |
|
|
|
"docs_src/dependencies/tutorial008c_py39.py", |
|
|
|
"docs_src/dependencies/tutorial008d_an_py39.py", |
|
|
|
"docs_src/dependencies/tutorial008d_py39.py", |
|
|
|
"docs_src/dependencies/tutorial008e_an_py39.py", |
|
|
|
"docs_src/dependencies/tutorial008e_py39.py", |
|
|
|
"docs_src/dependencies/tutorial010_py39.py", |
|
|
|
"docs_src/dependencies/tutorial011_an_py39.py", |
|
|
|
"docs_src/dependencies/tutorial011_py39.py", |
|
|
|
"docs_src/dependencies/tutorial012_an_py39.py", |
|
|
|
"docs_src/dependencies/tutorial012_py39.py", |
|
|
|
"docs_src/events/tutorial001_py39.py", |
|
|
|
"docs_src/events/tutorial002_py39.py", |
|
|
|
"docs_src/events/tutorial003_py39.py", |
|
|
|
"docs_src/extending_openapi/tutorial001_py39.py", |
|
|
|
"docs_src/extra_models/tutorial004_py39.py", |
|
|
|
"docs_src/extra_models/tutorial005_py39.py", |
|
|
|
"docs_src/first_steps/tutorial001_py39.py", |
|
|
|
"docs_src/first_steps/tutorial003_py39.py", |
|
|
|
"docs_src/generate_clients/tutorial001_py39.py", |
|
|
|
"docs_src/generate_clients/tutorial002_py39.py", |
|
|
|
"docs_src/generate_clients/tutorial003_py39.py", |
|
|
|
"docs_src/generate_clients/tutorial004_py39.py", |
|
|
|
"docs_src/graphql_/tutorial001_py39.py", |
|
|
|
"docs_src/handling_errors/tutorial001_py39.py", |
|
|
|
"docs_src/handling_errors/tutorial002_py39.py", |
|
|
|
"docs_src/handling_errors/tutorial003_py39.py", |
|
|
|
"docs_src/handling_errors/tutorial004_py39.py", |
|
|
|
"docs_src/handling_errors/tutorial005_py39.py", |
|
|
|
"docs_src/handling_errors/tutorial006_py39.py", |
|
|
|
"docs_src/metadata/tutorial001_1_py39.py", |
|
|
|
"docs_src/metadata/tutorial001_py39.py", |
|
|
|
"docs_src/metadata/tutorial002_py39.py", |
|
|
|
"docs_src/metadata/tutorial003_py39.py", |
|
|
|
"docs_src/metadata/tutorial004_py39.py", |
|
|
|
"docs_src/middleware/tutorial001_py39.py", |
|
|
|
"docs_src/openapi_webhooks/tutorial001_py39.py", |
|
|
|
"docs_src/path_operation_advanced_configuration/tutorial001_py39.py", |
|
|
|
"docs_src/path_operation_advanced_configuration/tutorial002_py39.py", |
|
|
|
"docs_src/path_operation_advanced_configuration/tutorial003_py39.py", |
|
|
|
"docs_src/path_operation_advanced_configuration/tutorial005_py39.py", |
|
|
|
"docs_src/path_operation_advanced_configuration/tutorial006_py39.py", |
|
|
|
"docs_src/path_operation_advanced_configuration/tutorial007_py39.py", |
|
|
|
"docs_src/path_operation_configuration/tutorial002b_py39.py", |
|
|
|
"docs_src/path_operation_configuration/tutorial006_py39.py", |
|
|
|
"docs_src/path_params/tutorial001_py39.py", |
|
|
|
"docs_src/path_params/tutorial002_py39.py", |
|
|
|
"docs_src/path_params/tutorial003_py39.py", |
|
|
|
"docs_src/path_params/tutorial003b_py39.py", |
|
|
|
"docs_src/path_params/tutorial004_py39.py", |
|
|
|
"docs_src/path_params/tutorial005_py39.py", |
|
|
|
"docs_src/path_params_numeric_validations/tutorial002_an_py39.py", |
|
|
|
"docs_src/path_params_numeric_validations/tutorial002_py39.py", |
|
|
|
"docs_src/path_params_numeric_validations/tutorial003_an_py39.py", |
|
|
|
"docs_src/path_params_numeric_validations/tutorial003_py39.py", |
|
|
|
"docs_src/path_params_numeric_validations/tutorial004_an_py39.py", |
|
|
|
"docs_src/path_params_numeric_validations/tutorial004_py39.py", |
|
|
|
"docs_src/path_params_numeric_validations/tutorial005_an_py39.py", |
|
|
|
"docs_src/path_params_numeric_validations/tutorial005_py39.py", |
|
|
|
"docs_src/path_params_numeric_validations/tutorial006_an_py39.py", |
|
|
|
"docs_src/path_params_numeric_validations/tutorial006_py39.py", |
|
|
|
"docs_src/python_types/tutorial001_py39.py", |
|
|
|
"docs_src/python_types/tutorial002_py39.py", |
|
|
|
"docs_src/python_types/tutorial003_py39.py", |
|
|
|
"docs_src/python_types/tutorial004_py39.py", |
|
|
|
"docs_src/python_types/tutorial005_py39.py", |
|
|
|
"docs_src/python_types/tutorial006_py39.py", |
|
|
|
"docs_src/python_types/tutorial007_py39.py", |
|
|
|
"docs_src/python_types/tutorial008_py39.py", |
|
|
|
"docs_src/python_types/tutorial008b_py39.py", |
|
|
|
"docs_src/python_types/tutorial009_py39.py", |
|
|
|
"docs_src/python_types/tutorial009b_py39.py", |
|
|
|
"docs_src/python_types/tutorial009c_py39.py", |
|
|
|
"docs_src/python_types/tutorial010_py39.py", |
|
|
|
"docs_src/python_types/tutorial013_py39.py", |
|
|
|
"docs_src/query_params/tutorial001_py39.py", |
|
|
|
"docs_src/query_params/tutorial005_py39.py", |
|
|
|
"docs_src/query_params_str_validations/tutorial005_an_py39.py", |
|
|
|
"docs_src/query_params_str_validations/tutorial005_py39.py", |
|
|
|
"docs_src/query_params_str_validations/tutorial006_an_py39.py", |
|
|
|
"docs_src/query_params_str_validations/tutorial006_py39.py", |
|
|
|
"docs_src/query_params_str_validations/tutorial012_an_py39.py", |
|
|
|
"docs_src/query_params_str_validations/tutorial012_py39.py", |
|
|
|
"docs_src/query_params_str_validations/tutorial013_an_py39.py", |
|
|
|
"docs_src/query_params_str_validations/tutorial013_py39.py", |
|
|
|
"docs_src/request_files/tutorial001_03_an_py39.py", |
|
|
|
"docs_src/request_files/tutorial001_03_py39.py", |
|
|
|
"docs_src/request_files/tutorial001_an_py39.py", |
|
|
|
"docs_src/request_files/tutorial001_py39.py", |
|
|
|
"docs_src/request_files/tutorial002_an_py39.py", |
|
|
|
"docs_src/request_files/tutorial002_py39.py", |
|
|
|
"docs_src/request_files/tutorial003_an_py39.py", |
|
|
|
"docs_src/request_files/tutorial003_py39.py", |
|
|
|
"docs_src/request_form_models/tutorial001_an_py39.py", |
|
|
|
"docs_src/request_form_models/tutorial001_py39.py", |
|
|
|
"docs_src/request_form_models/tutorial002_an_py39.py", |
|
|
|
"docs_src/request_form_models/tutorial002_py39.py", |
|
|
|
"docs_src/request_forms/tutorial001_an_py39.py", |
|
|
|
"docs_src/request_forms/tutorial001_py39.py", |
|
|
|
"docs_src/request_forms_and_files/tutorial001_an_py39.py", |
|
|
|
"docs_src/request_forms_and_files/tutorial001_py39.py", |
|
|
|
"docs_src/response_change_status_code/tutorial001_py39.py", |
|
|
|
"docs_src/response_cookies/tutorial001_py39.py", |
|
|
|
"docs_src/response_cookies/tutorial002_py39.py", |
|
|
|
"docs_src/response_directly/tutorial002_py39.py", |
|
|
|
"docs_src/response_headers/tutorial001_py39.py", |
|
|
|
"docs_src/response_headers/tutorial002_py39.py", |
|
|
|
"docs_src/response_model/tutorial003_02_py39.py", |
|
|
|
"docs_src/response_model/tutorial003_03_py39.py", |
|
|
|
"docs_src/response_status_code/tutorial001_py39.py", |
|
|
|
"docs_src/response_status_code/tutorial002_py39.py", |
|
|
|
"docs_src/security/tutorial001_an_py39.py", |
|
|
|
"docs_src/security/tutorial001_py39.py", |
|
|
|
"docs_src/security/tutorial006_an_py39.py", |
|
|
|
"docs_src/security/tutorial006_py39.py", |
|
|
|
"docs_src/security/tutorial007_an_py39.py", |
|
|
|
"docs_src/security/tutorial007_py39.py", |
|
|
|
"docs_src/settings/app01_py39/config.py", |
|
|
|
"docs_src/settings/app01_py39/main.py", |
|
|
|
"docs_src/settings/app02_an_py39/config.py", |
|
|
|
"docs_src/settings/app02_an_py39/main.py", |
|
|
|
"docs_src/settings/app02_an_py39/test_main.py", |
|
|
|
"docs_src/settings/app02_py39/config.py", |
|
|
|
"docs_src/settings/app02_py39/main.py", |
|
|
|
"docs_src/settings/app02_py39/test_main.py", |
|
|
|
"docs_src/settings/app03_an_py39/config.py", |
|
|
|
"docs_src/settings/app03_an_py39/main.py", |
|
|
|
"docs_src/settings/app03_py39/config.py", |
|
|
|
"docs_src/settings/app03_py39/main.py", |
|
|
|
"docs_src/settings/tutorial001_py39.py", |
|
|
|
"docs_src/static_files/tutorial001_py39.py", |
|
|
|
"docs_src/sub_applications/tutorial001_py39.py", |
|
|
|
"docs_src/templates/tutorial001_py39.py", |
|
|
|
"docs_src/using_request_directly/tutorial001_py39.py", |
|
|
|
"docs_src/websockets/tutorial001_py39.py", |
|
|
|
"docs_src/websockets/tutorial003_py39.py", |
|
|
|
"docs_src/wsgi/tutorial001_py39.py", |
|
|
|
] |
|
|
|
|
|
|
|
[tool.coverage.report] |
|
|
|
|