Repository Analysis

fastapi/sqlmodel

SQL databases in Python, designed for simplicity, compatibility, and robustness.

4.0 Likely human-written View on GitHub
4.0
Adjusted Score
4.0
Raw Score
100%
Time Factor
2026-05-30
Last Push
17,983
Stars
Python
Language
36,834
Lines of Code
420
Files
205
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 0MEDIUM 0LOW 205

Pattern Findings

205 matches across 6 categories. Click a row to expand file-level details.

Unused Imports148 hits · 91 pts
SeverityFileLineSnippet
LOWtests/test_future_annotations.py1
LOW…utorial/code_structure/tutorial002_py310/team_model.py6
LOW…utorial/code_structure/tutorial002_py310/hero_model.py6
LOWsqlmodel/__init__.py4
LOWsqlmodel/__init__.py5
LOWsqlmodel/__init__.py6
LOWsqlmodel/__init__.py7
LOWsqlmodel/__init__.py8
LOWsqlmodel/__init__.py9
LOWsqlmodel/__init__.py10
LOWsqlmodel/__init__.py11
LOWsqlmodel/__init__.py12
LOWsqlmodel/__init__.py13
LOWsqlmodel/__init__.py14
LOWsqlmodel/__init__.py15
LOWsqlmodel/__init__.py16
LOWsqlmodel/__init__.py17
LOWsqlmodel/__init__.py18
LOWsqlmodel/__init__.py19
LOWsqlmodel/__init__.py20
LOWsqlmodel/__init__.py21
LOWsqlmodel/__init__.py22
LOWsqlmodel/__init__.py23
LOWsqlmodel/__init__.py24
LOWsqlmodel/__init__.py25
LOWsqlmodel/__init__.py26
LOWsqlmodel/__init__.py27
LOWsqlmodel/__init__.py28
LOWsqlmodel/__init__.py29
LOWsqlmodel/__init__.py32
LOWsqlmodel/__init__.py33
LOWsqlmodel/__init__.py36
LOWsqlmodel/__init__.py37
LOWsqlmodel/__init__.py38
LOWsqlmodel/__init__.py39
LOWsqlmodel/__init__.py40
LOWsqlmodel/__init__.py41
LOWsqlmodel/__init__.py42
LOWsqlmodel/__init__.py43
LOWsqlmodel/__init__.py44
LOWsqlmodel/__init__.py45
LOWsqlmodel/__init__.py46
LOWsqlmodel/__init__.py47
LOWsqlmodel/__init__.py48
LOWsqlmodel/__init__.py49
LOWsqlmodel/__init__.py50
LOWsqlmodel/__init__.py51
LOWsqlmodel/__init__.py52
LOWsqlmodel/__init__.py53
LOWsqlmodel/__init__.py54
LOWsqlmodel/__init__.py55
LOWsqlmodel/__init__.py56
LOWsqlmodel/__init__.py57
LOWsqlmodel/__init__.py58
LOWsqlmodel/__init__.py59
LOWsqlmodel/__init__.py60
LOWsqlmodel/__init__.py61
LOWsqlmodel/__init__.py62
LOWsqlmodel/__init__.py63
LOWsqlmodel/__init__.py64
88 more matches not shown…
Hyper-Verbose Identifiers45 hits · 44 pts
SeverityFileLineSnippet
LOWtests/conftest.py54def get_testing_print_function(
LOWtests/test_future_annotations.py8def test_model_with_future_annotations(clear_sqlmodel):
LOWtests/test_future_annotations.py36def test_model_with_string_annotations(clear_sqlmodel):
LOWtests/test_deprecations.py13def test_deprecated_from_orm_inheritance():
LOWtests/test_deprecations.py21def test_deprecated_parse_obj():
LOWtests/test_nullable.py81def test_non_nullable_optional_field_with_no_default_set(clear_sqlmodel, caplog):
LOWtests/test_nullable.py108def test_nullable_primary_key(clear_sqlmodel, caplog):
LOWtests/test_ondelete_raises.py7def test_ondelete_requires_nullable(clear_sqlmodel: Any) -> None:
LOWtests/test_ondelete_raises.py29def test_ondelete_requires_foreign_key(clear_sqlmodel: Any) -> None:
LOWtests/test_aliases.py29def test_create_with_field_name(model: type[PydanticUser] | type[SQLModelUser]):
LOWtests/test_aliases.py35def test_create_with_field_name_with_config(
LOWtests/test_aliases.py57def test_create_with_both_prefers_alias(
LOWtests/test_aliases.py65def test_dict_default_uses_field_names(
LOWtests/test_aliases.py76def test_dict_by_alias_uses_aliases(
LOWtests/test_aliases.py105def test_create_with_validation_alias(
LOWtests/test_aliases.py113def test_serialize_with_serialization_alias(
LOWtests/test_field_sa_relationship.py6def test_sa_relationship_no_args() -> None:
LOWtests/test_field_sa_relationship.py30def test_sa_relationship_no_kwargs() -> None:
LOWtests/test_field_sa_column.py8def test_sa_column_takes_precedence() -> None:
LOWtests/test_field_sa_column.py20def test_sa_column_with_annotated_metadata() -> None:
LOWtests/test_field_sa_column.py31def test_sa_column_no_sa_args() -> None:
LOWtests/test_field_sa_column.py42def test_sa_column_no_sa_kargs() -> None:
LOWtests/test_field_sa_column.py64def test_sa_column_no_primary_key() -> None:
LOWtests/test_field_sa_column.py75def test_sa_column_no_nullable() -> None:
LOWtests/test_field_sa_column.py86def test_sa_column_no_foreign_key() -> None:
LOWtests/test_field_sa_column.py124def test_sa_column_no_ondelete() -> None:
LOWtests/test_main.py9def test_should_allow_duplicate_row_if_unique_constraint_is_not_passed(clear_sqlmodel):
LOWtests/test_main.py39def test_should_allow_duplicate_row_if_unique_constraint_is_false(clear_sqlmodel):
LOWtests/test_main.py69def test_should_raise_exception_when_try_to_duplicate_row_if_unique_constraint_is_true(
LOWtests/test_main.py96def test_sa_relationship_property(clear_sqlmodel):
LOWtests/test_main.py130def test_composite_primary_key(clear_sqlmodel):
LOWtests/test_main.py156def test_composite_primary_key_and_validator(clear_sqlmodel):
LOWtests/test_main.py191def test_foreign_key_ondelete_with_annotated(clear_sqlmodel):
LOWtests/test_annotated_uuid.py6def test_annotated_optional_types(clear_sqlmodel) -> None:
LOWtests/test_instance_no_args.py6def test_allow_instantiation_without_arguments(clear_sqlmodel):
LOWtests/test_instance_no_args.py26def test_not_allow_instantiation_without_arguments_if_not_table():
LOWscripts/docs.py150def generate_docs_src_versions_for_file(file_path: Path) -> None:
LOWscripts/docs.py211def generate_docs_src_versions() -> None:
LOW…i/app_testing/tutorial001_py310/test_extra_coverage.py31def test_update_hero_not_found(client: TestClient):
LOW…i/app_testing/tutorial001_py310/test_extra_coverage.py36def test_delete_hero_not_found(client: TestClient):
LOW…ial/fastapi/app_testing/tutorial001_py310/test_main.py43def test_create_hero_incomplete(client: TestClient):
LOWsqlmodel/_compat.py94def init_pydantic_private_attrs(new_object: InstanceOrType["SQLModel"]) -> None:
LOWsqlmodel/_compat.py174def get_sa_type_from_type_annotation(annotation: Any) -> Any:
LOWsqlmodel/main.py217def _get_sqlmodel_field_metadata(field_info: Any) -> FieldInfoMetadata | None:
LOWsqlmodel/main.py226def _get_sqlmodel_field_value(
Deep Nesting8 hits · 8 pts
SeverityFileLineSnippet
LOWtests/conftest.py54
LOWtests/conftest.py57
LOWscripts/docs.py150
LOWscripts/docs.py277
LOWsqlmodel/_compat.py122
LOWsqlmodel/_compat.py208
LOWsqlmodel/main.py627
LOWsqlmodel/main.py982
Over-Commented Block2 hits · 2 pts
SeverityFileLineSnippet
LOWtests/test_select_typing.py61 # assert type(hero_5[3]) in [int, type(None)]
LOWsqlmodel/main.py821 # in the Pydantic model so that when SQLAlchemy sets attributes that are
Fake / Example Data1 hit · 1 pts
SeverityFileLineSnippet
LOWtests/test_fields_set.py9 email: str = "test@test.com"
Redundant / Tautological Comments1 hit · 0 pts
SeverityFileLineSnippet
LOWscripts/docs.py314 # Check if the _an counterpart (or non-_an counterpart) is referenced.