diff --git a/.github/labeler.yml b/.github/labeler.yml index 57c5e1120f..2ee7541166 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -30,7 +30,6 @@ internal: - .gitignore - .pre-commit-config.yaml - pdm_build.py - - requirements*.txt - uv.lock - docs/en/data/sponsors.yml - docs/en/overrides/main.html diff --git a/docs_src/python_types/tutorial005_py39.py b/docs_src/python_types/tutorial005_py39.py deleted file mode 100644 index 6c8edb0ec4..0000000000 --- a/docs_src/python_types/tutorial005_py39.py +++ /dev/null @@ -1,2 +0,0 @@ -def get_items(item_a: str, item_b: int, item_c: float, item_d: bool, item_e: bytes): - return item_a, item_b, item_c, item_d, item_e diff --git a/pyproject.toml b/pyproject.toml index 92b4739458..d2a025a72e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -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]