Repository Analysis

fastapi/fastapi

FastAPI framework, high performance, easy to learn, fast to code, ready for production

13.3 Low AI signal View on GitHub
13.3
Adjusted Score
13.3
Raw Score
100%
Time Factor
2026-05-28
Last Push
98,659
Stars
Python
Language
360,530
Lines of Code
2727
Files
2188
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 548MEDIUM 112LOW 1528

Pattern Findings

2188 matches across 12 categories. Click a row to expand file-level details.

Cross-File Repetition546 hits · 2730 pts
SeverityFileLineSnippet
HIGH…m_response/test_tutorial002_tutorial003_tutorial004.py0<html> <head> <title>some html in here</title> </head> <body> <h1>look ma! html!</h1> </body> </html>
HIGHdocs_src/custom_response/tutorial004_py310.py0<html> <head> <title>some html in here</title> </head> <body> <h1>look ma! html!</h1> </body> </html>
HIGHdocs_src/custom_response/tutorial002_py310.py0<html> <head> <title>some html in here</title> </head> <body> <h1>look ma! html!</h1> </body> </html>
HIGHdocs_src/custom_response/tutorial003_py310.py0<html> <head> <title>some html in here</title> </head> <body> <h1>look ma! html!</h1> </body> </html>
HIGH…eration_configurations/test_tutorial003_tutorial004.py0create an item with all the information: - **name**: each item must have a name - **description**: a long description -
HIGH…_src/path_operation_configuration/tutorial005_py310.py0create an item with all the information: - **name**: each item must have a name - **description**: a long description -
HIGH…_src/path_operation_configuration/tutorial004_py310.py0create an item with all the information: - **name**: each item must have a name - **description**: a long description -
HIGHfastapi/applications.py0additional responses to be shown in openapi. it will be added to the generated openapi (e.g. visible at `/docs`). read m
HIGHfastapi/applications.py0additional responses to be shown in openapi. it will be added to the generated openapi (e.g. visible at `/docs`). read m
HIGHfastapi/routing.py0additional responses to be shown in openapi. it will be added to the generated openapi (e.g. visible at `/docs`). read m
HIGHfastapi/routing.py0additional responses to be shown in openapi. it will be added to the generated openapi (e.g. visible at `/docs`). read m
HIGHfastapi/applications.py0customize the function used to generate unique ids for the *path operations* shown in the generated openapi. this is par
HIGHfastapi/applications.py0customize the function used to generate unique ids for the *path operations* shown in the generated openapi. this is par
HIGHfastapi/applications.py0customize the function used to generate unique ids for the *path operations* shown in the generated openapi. this is par
HIGHfastapi/applications.py0customize the function used to generate unique ids for the *path operations* shown in the generated openapi. this is par
HIGHfastapi/applications.py0customize the function used to generate unique ids for the *path operations* shown in the generated openapi. this is par
HIGHfastapi/applications.py0customize the function used to generate unique ids for the *path operations* shown in the generated openapi. this is par
HIGHfastapi/applications.py0customize the function used to generate unique ids for the *path operations* shown in the generated openapi. this is par
HIGHfastapi/applications.py0customize the function used to generate unique ids for the *path operations* shown in the generated openapi. this is par
HIGHfastapi/applications.py0customize the function used to generate unique ids for the *path operations* shown in the generated openapi. this is par
HIGHfastapi/applications.py0customize the function used to generate unique ids for the *path operations* shown in the generated openapi. this is par
HIGHfastapi/routing.py0customize the function used to generate unique ids for the *path operations* shown in the generated openapi. this is par
HIGHfastapi/routing.py0customize the function used to generate unique ids for the *path operations* shown in the generated openapi. this is par
HIGHfastapi/routing.py0customize the function used to generate unique ids for the *path operations* shown in the generated openapi. this is par
HIGHfastapi/routing.py0customize the function used to generate unique ids for the *path operations* shown in the generated openapi. this is par
HIGHfastapi/routing.py0customize the function used to generate unique ids for the *path operations* shown in the generated openapi. this is par
HIGHfastapi/routing.py0customize the function used to generate unique ids for the *path operations* shown in the generated openapi. this is par
HIGHfastapi/routing.py0customize the function used to generate unique ids for the *path operations* shown in the generated openapi. this is par
HIGHfastapi/routing.py0customize the function used to generate unique ids for the *path operations* shown in the generated openapi. this is par
HIGHfastapi/routing.py0customize the function used to generate unique ids for the *path operations* shown in the generated openapi. this is par
HIGHfastapi/routing.py0customize the function used to generate unique ids for the *path operations* shown in the generated openapi. this is par
HIGHfastapi/applications.py0a list of tags to be applied to all the *path operations* in this router. it will be added to the generated openapi (e.g
HIGHfastapi/routing.py0a list of tags to be applied to all the *path operations* in this router. it will be added to the generated openapi (e.g
HIGHfastapi/routing.py0a list of tags to be applied to all the *path operations* in this router. it will be added to the generated openapi (e.g
HIGHfastapi/applications.py0list of *path operations* that will be used as openapi callbacks. this is only for openapi documentation, the callbacks
HIGHfastapi/applications.py0list of *path operations* that will be used as openapi callbacks. this is only for openapi documentation, the callbacks
HIGHfastapi/applications.py0list of *path operations* that will be used as openapi callbacks. this is only for openapi documentation, the callbacks
HIGHfastapi/applications.py0list of *path operations* that will be used as openapi callbacks. this is only for openapi documentation, the callbacks
HIGHfastapi/applications.py0list of *path operations* that will be used as openapi callbacks. this is only for openapi documentation, the callbacks
HIGHfastapi/applications.py0list of *path operations* that will be used as openapi callbacks. this is only for openapi documentation, the callbacks
HIGHfastapi/applications.py0list of *path operations* that will be used as openapi callbacks. this is only for openapi documentation, the callbacks
HIGHfastapi/applications.py0list of *path operations* that will be used as openapi callbacks. this is only for openapi documentation, the callbacks
HIGHfastapi/applications.py0list of *path operations* that will be used as openapi callbacks. this is only for openapi documentation, the callbacks
HIGHfastapi/routing.py0list of *path operations* that will be used as openapi callbacks. this is only for openapi documentation, the callbacks
HIGHfastapi/routing.py0list of *path operations* that will be used as openapi callbacks. this is only for openapi documentation, the callbacks
HIGHfastapi/routing.py0list of *path operations* that will be used as openapi callbacks. this is only for openapi documentation, the callbacks
HIGHfastapi/routing.py0list of *path operations* that will be used as openapi callbacks. this is only for openapi documentation, the callbacks
HIGHfastapi/routing.py0list of *path operations* that will be used as openapi callbacks. this is only for openapi documentation, the callbacks
HIGHfastapi/routing.py0list of *path operations* that will be used as openapi callbacks. this is only for openapi documentation, the callbacks
HIGHfastapi/routing.py0list of *path operations* that will be used as openapi callbacks. this is only for openapi documentation, the callbacks
HIGHfastapi/routing.py0list of *path operations* that will be used as openapi callbacks. this is only for openapi documentation, the callbacks
HIGHfastapi/applications.py0the url path to be used for this *path operation*. for example, in `http://example.com/items`, the path is `/items`.
HIGHfastapi/applications.py0the url path to be used for this *path operation*. for example, in `http://example.com/items`, the path is `/items`.
HIGHfastapi/applications.py0the url path to be used for this *path operation*. for example, in `http://example.com/items`, the path is `/items`.
HIGHfastapi/applications.py0the url path to be used for this *path operation*. for example, in `http://example.com/items`, the path is `/items`.
HIGHfastapi/applications.py0the url path to be used for this *path operation*. for example, in `http://example.com/items`, the path is `/items`.
HIGHfastapi/applications.py0the url path to be used for this *path operation*. for example, in `http://example.com/items`, the path is `/items`.
HIGHfastapi/applications.py0the url path to be used for this *path operation*. for example, in `http://example.com/items`, the path is `/items`.
HIGHfastapi/applications.py0the url path to be used for this *path operation*. for example, in `http://example.com/items`, the path is `/items`.
HIGHfastapi/routing.py0the url path to be used for this *path operation*. for example, in `http://example.com/items`, the path is `/items`.
486 more matches not shown…
Hyper-Verbose Identifiers1299 hits · 1426 pts
SeverityFileLineSnippet
LOWtests/test_datastructures.py15def test_default_placeholder_equals():
LOWtests/test_datastructures.py22def test_default_placeholder_bool():
LOWtests/test_datastructures.py29def test_upload_file_is_closed(tmp_path: Path):
LOWtests/test_starlette_exception.py23async def no_body_status_code_exception():
LOWtests/test_starlette_exception.py28async def no_body_status_code_with_detail_exception():
LOWtests/test_starlette_exception.py61def test_get_starlette_item_not_found():
LOWtests/test_starlette_exception.py68def test_no_body_status_code_exception_handlers():
LOWtests/test_starlette_exception.py74def test_no_body_status_code_with_detail_exception_handlers():
LOWtests/test_multi_body_errors.py40def test_jsonable_encoder_requiring_error():
LOWtests/test_multi_body_errors.py56def test_put_incorrect_body_multiple():
LOWtests/test_security_http_digest_description.py19def test_security_http_digest():
LOWtests/test_security_http_digest_description.py25def test_security_http_digest_no_credentials():
LOWtests/test_security_http_digest_description.py32def test_security_http_digest_incorrect_scheme_credentials():
LOWtests/test_union_body_discriminator_annotated.py48def test_union_body_discriminator_assignment(client: TestClient) -> None:
LOWtests/test_union_body_discriminator_annotated.py54def test_union_body_discriminator_annotated(client: TestClient) -> None:
LOWtests/test_security_oauth2.py64def test_strict_login_no_data():
LOWtests/test_security_oauth2.py91def test_strict_login_no_grant_type():
LOWtests/test_security_oauth2.py114def test_strict_login_incorrect_grant_type(grant_type: str):
LOWtests/test_security_oauth2.py133def test_strict_login_correct_grant_type():
LOWtests/test_security_http_basic_optional.py29def test_security_http_basic_no_credentials():
LOWtests/test_security_http_basic_optional.py35def test_security_http_basic_invalid_credentials():
LOWtests/test_security_http_basic_optional.py44def test_security_http_basic_non_basic_credentials():
LOWtests/test_response_model_invalid.py10def test_invalid_response_model_raises():
LOWtests/test_response_model_invalid.py19def test_invalid_response_model_sub_type_raises():
LOWtests/test_response_model_invalid.py28def test_invalid_response_model_in_responses_raises():
LOWtests/test_response_model_invalid.py37def test_invalid_response_model_sub_type_in_responses_raises():
LOWtests/test_dependency_yield_scope.py54def get_named_regular_func_session(session: SessionFuncDep) -> Any:
LOWtests/test_dependency_yield_scope.py128def get_regular_function_scope(sessions: RegularSessionsDep) -> Any:
LOWtests/test_dependency_yield_scope.py193def test_named_function_scope() -> None:
LOWtests/test_dependency_yield_scope.py201def test_regular_function_scope() -> None:
LOWtests/test_dependency_yield_scope.py209def test_router_level_dep_scope_function() -> None:
LOWtests/test_dependency_yield_scope.py215def test_router_level_dep_scope_request() -> None:
LOWtests/test_dependency_yield_scope.py222def test_app_level_dep_scope_function() -> None:
LOWtests/test_dependency_yield_scope.py235def test_app_level_dep_scope_request() -> None:
LOWtests/test_multi_query_errors.py22def test_multi_query_incorrect():
LOWtests/test_response_change_status_code.py23def test_dependency_set_status_code():
LOWtests/test_forms_from_non_typing_sequences.py25def test_python_list_param_as_form():
LOWtests/test_forms_from_non_typing_sequences.py33def test_python_set_param_as_form():
LOWtests/test_forms_from_non_typing_sequences.py41def test_python_tuple_param_as_form():
LOWtests/test_strict_content_type_app_level.py24def test_default_strict_rejects_no_content_type():
LOWtests/test_strict_content_type_app_level.py29def test_default_strict_accepts_json_content_type():
LOWtests/test_strict_content_type_app_level.py35def test_lax_accepts_no_content_type():
LOWtests/test_strict_content_type_app_level.py41def test_lax_accepts_json_content_type():
LOWtests/test_security_scopes_dont_propagate.py38def test_security_scopes_dont_propagate():
LOWtests/test_default_response_class_router.py202def test_router_b_a_c_override():
LOWtests/test_params_repr.py65def test_header_repr_ellipsis():
LOWtests/test_params_repr.py85def test_cookie_repr_ellipsis():
LOWtests/test_union_inherited_body.py18def save_union_different_body(item: ExtendedItem | Item):
LOWtests/test_sse.py47def sse_items_sync_no_annotation():
LOWtests/test_sse.py108def test_async_generator_with_model(client: TestClient):
LOWtests/test_sse.py129def test_sync_generator_with_model(client: TestClient):
LOWtests/test_sse.py140def test_async_generator_no_annotation(client: TestClient):
LOWtests/test_sse.py151def test_sync_generator_no_annotation(client: TestClient):
LOWtests/test_sse.py183def test_sse_events_with_fields(client: TestClient):
LOWtests/test_sse.py202def test_mixed_plain_and_sse_events(client: TestClient):
LOWtests/test_sse.py212def test_string_data_json_encoded(client: TestClient):
LOWtests/test_sse.py219def test_server_sent_event_null_id_rejected():
LOWtests/test_sse.py226def test_server_sent_event_single_line_fields_reject_newlines(
LOWtests/test_sse.py233def test_server_sent_event_negative_retry_rejected():
LOWtests/test_sse.py238def test_server_sent_event_float_retry_rejected():
1239 more matches not shown…
Decorative Section Separators106 hits · 388 pts
SeverityFileLineSnippet
MEDIUM…s/test_request_params/test_cookie/test_required_str.py176# =====================================================================================
MEDIUM…s/test_request_params/test_cookie/test_required_str.py282# =====================================================================================
MEDIUM…s/test_request_params/test_cookie/test_required_str.py12# =====================================================================================
MEDIUM…s/test_request_params/test_cookie/test_required_str.py79# =====================================================================================
MEDIUM…s/test_request_params/test_cookie/test_optional_str.py150# =====================================================================================
MEDIUM…s/test_request_params/test_cookie/test_optional_str.py233# =====================================================================================
MEDIUM…s/test_request_params/test_cookie/test_optional_str.py11# =====================================================================================
MEDIUM…s/test_request_params/test_cookie/test_optional_str.py72# =====================================================================================
MEDIUMtests/test_request_params/test_form/test_list.py183# =====================================================================================
MEDIUMtests/test_request_params/test_form/test_list.py294# =====================================================================================
MEDIUMtests/test_request_params/test_form/test_list.py13# =====================================================================================
MEDIUMtests/test_request_params/test_form/test_list.py84# =====================================================================================
MEDIUM…sts/test_request_params/test_form/test_required_str.py170# =====================================================================================
MEDIUM…sts/test_request_params/test_form/test_required_str.py277# =====================================================================================
MEDIUM…sts/test_request_params/test_form/test_required_str.py13# =====================================================================================
MEDIUM…sts/test_request_params/test_form/test_required_str.py80# =====================================================================================
MEDIUM…sts/test_request_params/test_form/test_optional_str.py148# =====================================================================================
MEDIUM…sts/test_request_params/test_form/test_optional_str.py231# =====================================================================================
MEDIUM…sts/test_request_params/test_form/test_optional_str.py12# =====================================================================================
MEDIUM…sts/test_request_params/test_form/test_optional_str.py72# =====================================================================================
MEDIUM…ts/test_request_params/test_form/test_optional_list.py158# =====================================================================================
MEDIUM…ts/test_request_params/test_form/test_optional_list.py244# =====================================================================================
MEDIUM…ts/test_request_params/test_form/test_optional_list.py12# =====================================================================================
MEDIUM…ts/test_request_params/test_form/test_optional_list.py77# =====================================================================================
MEDIUMtests/test_request_params/test_header/test_list.py180# =====================================================================================
MEDIUMtests/test_request_params/test_header/test_list.py287# =====================================================================================
MEDIUMtests/test_request_params/test_header/test_list.py12# =====================================================================================
MEDIUMtests/test_request_params/test_header/test_list.py82# =====================================================================================
MEDIUM…s/test_request_params/test_header/test_required_str.py170# =====================================================================================
MEDIUM…s/test_request_params/test_header/test_required_str.py274# =====================================================================================
MEDIUM…s/test_request_params/test_header/test_required_str.py12# =====================================================================================
MEDIUM…s/test_request_params/test_header/test_required_str.py78# =====================================================================================
MEDIUM…s/test_request_params/test_header/test_optional_str.py147# =====================================================================================
MEDIUM…s/test_request_params/test_header/test_optional_str.py228# =====================================================================================
MEDIUM…s/test_request_params/test_header/test_optional_str.py11# =====================================================================================
MEDIUM…s/test_request_params/test_header/test_optional_str.py71# =====================================================================================
MEDIUM…/test_request_params/test_header/test_optional_list.py159# =====================================================================================
MEDIUM…/test_request_params/test_header/test_optional_list.py242# =====================================================================================
MEDIUM…/test_request_params/test_header/test_optional_list.py11# =====================================================================================
MEDIUM…/test_request_params/test_header/test_optional_list.py78# =====================================================================================
MEDIUMtests/test_request_params/test_file/test_required.py87# =====================================================================================
MEDIUMtests/test_request_params/test_file/test_required.py188# =====================================================================================
MEDIUMtests/test_request_params/test_file/test_required.py300# =====================================================================================
MEDIUMtests/test_request_params/test_file/test_required.py11# =====================================================================================
MEDIUMtests/test_request_params/test_file/test_list.py11# =====================================================================================
MEDIUMtests/test_request_params/test_file/test_list.py90# =====================================================================================
MEDIUMtests/test_request_params/test_file/test_list.py194# =====================================================================================
MEDIUMtests/test_request_params/test_file/test_list.py309# =====================================================================================
MEDIUMtests/test_request_params/test_file/test_optional.py79# =====================================================================================
MEDIUMtests/test_request_params/test_file/test_optional.py165# =====================================================================================
MEDIUMtests/test_request_params/test_file/test_optional.py256# =====================================================================================
MEDIUMtests/test_request_params/test_file/test_optional.py11# =====================================================================================
MEDIUM…ts/test_request_params/test_file/test_optional_list.py87# =====================================================================================
MEDIUM…ts/test_request_params/test_file/test_optional_list.py179# =====================================================================================
MEDIUM…ts/test_request_params/test_file/test_optional_list.py273# =====================================================================================
MEDIUM…ts/test_request_params/test_file/test_optional_list.py11# =====================================================================================
MEDIUMtests/test_request_params/test_body/test_list.py182# =====================================================================================
MEDIUMtests/test_request_params/test_body/test_list.py293# =====================================================================================
MEDIUMtests/test_request_params/test_body/test_list.py13# =====================================================================================
MEDIUMtests/test_request_params/test_body/test_list.py85# =====================================================================================
46 more matches not shown…
Unused Imports105 hits · 100 pts
SeverityFileLineSnippet
LOWtests/test_security_oauth2.py3
LOWtests/test_stringified_annotation_dependency.py1
LOW…pydanticv2_dataclasses_uuid_stringified_annotations.py1
LOWtests/test_stringified_annotations_simple.py1
LOWfastapi/responses.py5
LOWfastapi/responses.py6
LOWfastapi/responses.py7
LOWfastapi/responses.py9
LOWfastapi/responses.py10
LOWfastapi/responses.py11
LOWfastapi/responses.py12
LOWfastapi/templating.py1
LOWfastapi/websockets.py1
LOWfastapi/websockets.py2
LOWfastapi/websockets.py3
LOWfastapi/concurrency.py8
LOWfastapi/concurrency.py10
LOWfastapi/__init__.py5
LOWfastapi/__init__.py7
LOWfastapi/__init__.py8
LOWfastapi/__init__.py9
LOWfastapi/__init__.py10
LOWfastapi/__init__.py11
LOWfastapi/__init__.py12
LOWfastapi/__init__.py13
LOWfastapi/__init__.py14
LOWfastapi/__init__.py15
LOWfastapi/__init__.py16
LOWfastapi/__init__.py17
LOWfastapi/__init__.py18
LOWfastapi/__init__.py19
LOWfastapi/__init__.py20
LOWfastapi/__init__.py21
LOWfastapi/__init__.py22
LOWfastapi/__init__.py23
LOWfastapi/__init__.py24
LOWfastapi/__init__.py25
LOWfastapi/types.py7
LOWfastapi/staticfiles.py1
LOWfastapi/utils.py23
LOWfastapi/routing.py89
LOWfastapi/testclient.py1
LOWfastapi/requests.py1
LOWfastapi/requests.py2
LOWfastapi/datastructures.py12
LOWfastapi/datastructures.py13
LOWfastapi/datastructures.py14
LOWfastapi/datastructures.py16
LOWfastapi/datastructures.py17
LOWfastapi/middleware/gzip.py1
LOWfastapi/middleware/cors.py1
LOWfastapi/middleware/__init__.py1
LOWfastapi/middleware/httpsredirect.py1
LOWfastapi/middleware/trustedhost.py1
LOWfastapi/middleware/wsgi.py1
LOWfastapi/security/__init__.py1
LOWfastapi/security/__init__.py2
LOWfastapi/security/__init__.py3
LOWfastapi/security/__init__.py4
LOWfastapi/security/__init__.py5
45 more matches not shown…
Fake / Example Data76 hits · 80 pts
SeverityFileLineSnippet
LOWtests/test_union_forms.py31 "/form-union/", data={"name": "John Doe", "email": "john@example.com"}
LOWtests/test_union_forms.py35 "received": {"name": "John Doe", "email": "john@example.com"}
LOWtests/test_stringified_annotation_dependency.py16 return ["John Doe", "Jane Doe"]
LOWtests/test_stringified_annotation_dependency.py16 return ["John Doe", "Jane Doe"]
LOWtests/test_stringified_annotation_dependency.py46 assert response.json() == ["John Doe", "Jane Doe"]
LOWtests/test_stringified_annotation_dependency.py46 assert response.json() == ["John Doe", "Jane Doe"]
LOWtests/test_get_model_definitions_formfeed_escape.py32 address=Address(line_1="123 Main St", city="Anytown", state_province="CA"),
LOWtests/test_get_model_definitions_formfeed_escape.py45 "line_1": "123 Main St",
LOW…rial/test_extra_models/test_tutorial001_tutorial002.py32 "full_name": "John Doe",
LOW…rial/test_extra_models/test_tutorial001_tutorial002.py39 "full_name": "John Doe",
LOWtests/test_tutorial/test_settings/test_app01.py26 monkeypatch.setenv("ADMIN_EMAIL", "admin@example.com")
LOWtests/test_tutorial/test_settings/test_app01.py54 "admin_email": "admin@example.com",
LOWtests/test_tutorial/test_settings/test_app03.py28 monkeypatch.setenv("ADMIN_EMAIL", "admin@example.com")
LOWtests/test_tutorial/test_settings/test_app03.py31 assert settings.admin_email == "admin@example.com"
LOWtests/test_tutorial/test_settings/test_app03.py36 monkeypatch.setenv("ADMIN_EMAIL", "admin@example.com")
LOWtests/test_tutorial/test_settings/test_app03.py42 "admin_email": "admin@example.com",
LOWtests/test_tutorial/test_settings/test_tutorial001.py10 monkeypatch.setenv("ADMIN_EMAIL", "admin@example.com")
LOWtests/test_tutorial/test_settings/test_tutorial001.py21 "admin_email": "admin@example.com",
LOWtests/test_tutorial/test_settings/test_app02.py33 monkeypatch.setenv("ADMIN_EMAIL", "admin@example.com")
LOW…ts/test_tutorial/test_python_types/test_tutorial010.py5 assert get_person_name(Person("John Doe")) == "John Doe"
LOW…ts/test_tutorial/test_python_types/test_tutorial011.py22 "id=123 name='John Doe' signup_ts=datetime.datetime(2017, 6, 1, 12, 22) friends=[1, 2, 3]",
LOW…rial/test_python_types/test_tutorial001_tutorial002.py18 mock_print.assert_called_with("John Doe")
LOW…tutorial/test_body_multiple_params/test_tutorial002.py33 "user": {"username": "johndoe", "full_name": "John Doe"},
LOW…tutorial/test_body_multiple_params/test_tutorial002.py45 "user": {"username": "johndoe", "full_name": "John Doe"},
LOW…tutorial/test_body_multiple_params/test_tutorial002.py159 "user": {"full_name": "John Doe"},
LOW…tutorial/test_body_multiple_params/test_tutorial002.py166 "input": {"full_name": "John Doe"},
LOWtests/test_tutorial/test_security/test_tutorial002.py36 "full_name": "John Doe",
LOWtests/test_tutorial/test_security/test_tutorial003.py56 "full_name": "John Doe",
LOWtests/test_tutorial/test_security/test_tutorial004.py75 "full_name": "John Doe",
LOWtests/test_tutorial/test_security/test_tutorial005.py94 "full_name": "John Doe",
LOWdocs/zh-hant/docs/features.md55my_user: User = User(id=3, name="John Doe", joined="2018-07-19")
LOWdocs/zh-hant/docs/tutorial/security/oauth2-jwt.md230 "full_name": "John Doe",
LOWdocs/zh-hant/docs/tutorial/security/simple-oauth2.md247 "full_name": "John Doe",
LOWdocs/ja/docs/features.md55my_user: User = User(id=3, name="John Doe", joined="2018-07-19")
LOWdocs/ja/docs/tutorial/security/oauth2-jwt.md230 "full_name": "John Doe",
LOWdocs/ja/docs/tutorial/security/simple-oauth2.md247 "full_name": "John Doe",
LOWdocs/ru/docs/features.md55my_user: User = User(id=3, name="John Doe", joined="2018-07-19")
LOWdocs/ru/docs/tutorial/security/oauth2-jwt.md230 "full_name": "John Doe",
LOWdocs/ru/docs/tutorial/security/simple-oauth2.md231 "full_name": "John Doe",
LOWdocs/pt/docs/features.md55my_user: User = User(id=3, name="John Doe", joined="2018-07-19")
LOWdocs/pt/docs/tutorial/security/oauth2-jwt.md230 "full_name": "John Doe",
LOWdocs/pt/docs/tutorial/security/simple-oauth2.md248 "full_name": "John Doe",
LOWdocs/zh/docs/features.md55my_user: User = User(id=3, name="John Doe", joined="2018-07-19")
LOWdocs/zh/docs/tutorial/security/oauth2-jwt.md230 "full_name": "John Doe",
LOWdocs/zh/docs/tutorial/security/simple-oauth2.md247 "full_name": "John Doe",
LOWdocs/uk/docs/features.md55my_user: User = User(id=3, name="John Doe", joined="2018-07-19")
LOWdocs/uk/docs/tutorial/security/oauth2-jwt.md230 "full_name": "John Doe",
LOWdocs/uk/docs/tutorial/security/simple-oauth2.md247 "full_name": "John Doe",
LOWdocs/de/docs/features.md55my_user: User = User(id=3, name="John Doe", joined="2018-07-19")
LOWdocs/de/docs/tutorial/security/oauth2-jwt.md230 "full_name": "John Doe",
LOWdocs/de/docs/tutorial/security/simple-oauth2.md247 "full_name": "John Doe",
LOWdocs/ko/docs/features.md55my_user: User = User(id=3, name="John Doe", joined="2018-07-19")
LOWdocs/ko/docs/tutorial/security/oauth2-jwt.md230 "full_name": "John Doe",
LOWdocs/ko/docs/tutorial/security/simple-oauth2.md247 "full_name": "John Doe",
LOWdocs/fr/docs/features.md55my_user: User = User(id=3, name="John Doe", joined="2018-07-19")
LOWdocs/fr/docs/tutorial/security/oauth2-jwt.md230 "full_name": "John Doe",
LOWdocs/fr/docs/tutorial/security/simple-oauth2.md247 "full_name": "John Doe",
LOWdocs/es/docs/features.md55my_user: User = User(id=3, name="John Doe", joined="2018-07-19")
LOWdocs/es/docs/tutorial/security/oauth2-jwt.md230 "full_name": "John Doe",
LOWdocs/es/docs/tutorial/security/simple-oauth2.md247 "full_name": "John Doe",
16 more matches not shown…
Deep Nesting29 hits · 29 pts
SeverityFileLineSnippet
LOWfastapi/encoders.py129
LOWfastapi/routing.py351
LOWfastapi/routing.py382
LOWfastapi/routing.py812
LOWfastapi/routing.py1578
LOWfastapi/routing.py500
LOWfastapi/routing.py535
LOWfastapi/routing.py565
LOWfastapi/dependencies/utils.py286
LOWfastapi/dependencies/utils.py362
LOWfastapi/dependencies/utils.py393
LOWfastapi/dependencies/utils.py598
LOWfastapi/dependencies/utils.py784
LOWfastapi/dependencies/utils.py916
LOWfastapi/openapi/utils.py107
LOWfastapi/openapi/utils.py260
LOWfastapi/openapi/utils.py514
LOWfastapi/_compat/shared.py109
LOWfastapi/_compat/v2.py446
LOWscripts/contributors.py175
LOWscripts/notify_translations.py306
LOWscripts/doc_parsing_utils.py141
LOWscripts/doc_parsing_utils.py482
LOWscripts/doc_parsing_utils.py570
LOWscripts/docs.py207
LOWscripts/docs.py543
LOWscripts/docs.py670
LOWscripts/docs.py780
LOWscripts/people.py268
Excessive Try-Catch Wrapping14 hits · 18 pts
SeverityFileLineSnippet
LOWtests/test_ws_router.py220 except Exception as e: # pragma: no cover
LOWtests/test_ws_router.py245 except Exception as e:
MEDIUMtests/test_ws_router.py217def catcher(websocket, call_next):
LOWtests/test_validation_error_context.py91 except Exception:
LOWtests/test_validation_error_context.py104 except Exception:
LOWtests/test_validation_error_context.py118 except Exception:
LOWtests/test_validation_error_context.py131 except Exception:
LOWtests/test_validation_error_context.py145 except Exception:
LOWfastapi/concurrency.py30 except Exception as e:
LOWfastapi/encoders.py346 except Exception as e:
LOWfastapi/encoders.py351 except Exception as e:
LOWfastapi/routing.py270 except Exception:
LOWfastapi/routing.py445 except Exception as e:
MEDIUMscripts/translation_fixer.py97 print(f"Error processing {path}: {e}")
Cross-Language Confusion2 hits · 10 pts
SeverityFileLineSnippet
HIGHdocs_src/websockets_/tutorial002_an_py310.py35 var ws = null;
HIGHdocs_src/websockets_/tutorial002_py310.py33 var ws = null;
Self-Referential Comments2 hits · 6 pts
SeverityFileLineSnippet
MEDIUM…s/test_tutorial/test_sql_databases/test_tutorial002.py59 # Create a hero
MEDIUM…s/test_tutorial/test_sql_databases/test_tutorial001.py59 # Create a hero
AI Slop Vocabulary2 hits · 6 pts
SeverityFileLineSnippet
MEDIUMdocs/en/data/sponsors.yml63 # title: Learn to build high-quality web apps with best practices
MEDIUMfastapi/routing.py324 # facilitate profiling endpoints, since inner functions are harder to profile.
Over-Commented Block5 hits · 5 pts
SeverityFileLineSnippet
LOWtests/test_schema_extra_examples.py61 # def form_examples(
LOWtests/test_request_params/test_cookie/test_list.py1# Currently, there is no way to pass multiple cookies with the same name.
LOW…/test_request_params/test_cookie/test_optional_list.py1# Currently, there is no way to pass multiple cookies with the same name.
LOWfastapi/applications.py1041 # Before this was also used for closing dependencies with yield but
LOWfastapi/routing.py541 # `anyio.fail_after` never wraps the generator's
Redundant / Tautological Comments2 hits · 2 pts
SeverityFileLineSnippet
LOWfastapi/dependencies/utils.py879 # Check if it's a Union type (covers both typing.Union and types.UnionType in Python 3.10+)
LOWscripts/docs.py710 # Check if the _an counterpart (or non-_an counterpart) is referenced.