Skip to content

Commit 566c5b5

Browse files
fix: Resolve mypy and ruff linting errors
- Fix type annotation for parse_foreign_key_error to allow None values - Remove unnecessary f-string prefixes (ruff F541) - Split long line in postgres.py FK error pattern (ruff E501) - Fix equality comparison to False in heading.py (ruff E712) - Remove unused import 're' from table.py (ruff F401) All unit tests passing (212/212). All PostgreSQL multi-backend tests passing (4/4). mypy and ruff checks passing.
1 parent 6d6460f commit 566c5b5

File tree

5 files changed

+24
-24
lines changed

5 files changed

+24
-24
lines changed

src/datajoint/adapters/base.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -628,7 +628,7 @@ def get_constraint_info_sql(self, constraint_name: str, schema_name: str, table_
628628
...
629629

630630
@abstractmethod
631-
def parse_foreign_key_error(self, error_message: str) -> dict[str, str | list[str]] | None:
631+
def parse_foreign_key_error(self, error_message: str) -> dict[str, str | list[str] | None] | None:
632632
"""
633633
Parse a foreign key violation error message to extract constraint details.
634634

src/datajoint/adapters/mysql.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -598,15 +598,15 @@ def get_foreign_keys_sql(self, schema_name: str, table_name: str) -> str:
598598
def get_constraint_info_sql(self, constraint_name: str, schema_name: str, table_name: str) -> str:
599599
"""Query to get FK constraint details from information_schema."""
600600
return (
601-
f"SELECT "
602-
f" COLUMN_NAME as fk_attrs, "
603-
f" CONCAT('`', REFERENCED_TABLE_SCHEMA, '`.`', REFERENCED_TABLE_NAME, '`') as parent, "
604-
f" REFERENCED_COLUMN_NAME as pk_attrs "
605-
f"FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE "
606-
f"WHERE CONSTRAINT_NAME = %s AND TABLE_SCHEMA = %s AND TABLE_NAME = %s"
601+
"SELECT "
602+
" COLUMN_NAME as fk_attrs, "
603+
" CONCAT('`', REFERENCED_TABLE_SCHEMA, '`.`', REFERENCED_TABLE_NAME, '`') as parent, "
604+
" REFERENCED_COLUMN_NAME as pk_attrs "
605+
"FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE "
606+
"WHERE CONSTRAINT_NAME = %s AND TABLE_SCHEMA = %s AND TABLE_NAME = %s"
607607
)
608608

609-
def parse_foreign_key_error(self, error_message: str) -> dict[str, str | list[str]] | None:
609+
def parse_foreign_key_error(self, error_message: str) -> dict[str, str | list[str] | None] | None:
610610
"""Parse MySQL foreign key violation error message."""
611611
import re
612612

src/datajoint/adapters/postgres.py

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -670,21 +670,21 @@ def get_foreign_keys_sql(self, schema_name: str, table_name: str) -> str:
670670
def get_constraint_info_sql(self, constraint_name: str, schema_name: str, table_name: str) -> str:
671671
"""Query to get FK constraint details from information_schema."""
672672
return (
673-
f"SELECT "
674-
f" kcu.column_name as fk_attrs, "
675-
f" '\"' || ccu.table_schema || '\".\"' || ccu.table_name || '\"' as parent, "
676-
f" ccu.column_name as pk_attrs "
677-
f"FROM information_schema.key_column_usage AS kcu "
678-
f"JOIN information_schema.constraint_column_usage AS ccu "
679-
f" ON kcu.constraint_name = ccu.constraint_name "
680-
f" AND kcu.constraint_schema = ccu.constraint_schema "
681-
f"WHERE kcu.constraint_name = %s "
682-
f" AND kcu.table_schema = %s "
683-
f" AND kcu.table_name = %s "
684-
f"ORDER BY kcu.ordinal_position"
673+
"SELECT "
674+
" kcu.column_name as fk_attrs, "
675+
" '\"' || ccu.table_schema || '\".\"' || ccu.table_name || '\"' as parent, "
676+
" ccu.column_name as pk_attrs "
677+
"FROM information_schema.key_column_usage AS kcu "
678+
"JOIN information_schema.constraint_column_usage AS ccu "
679+
" ON kcu.constraint_name = ccu.constraint_name "
680+
" AND kcu.constraint_schema = ccu.constraint_schema "
681+
"WHERE kcu.constraint_name = %s "
682+
" AND kcu.table_schema = %s "
683+
" AND kcu.table_name = %s "
684+
"ORDER BY kcu.ordinal_position"
685685
)
686686

687-
def parse_foreign_key_error(self, error_message: str) -> dict[str, str | list[str]] | None:
687+
def parse_foreign_key_error(self, error_message: str) -> dict[str, str | list[str] | None] | None:
688688
"""
689689
Parse PostgreSQL foreign key violation error message.
690690
@@ -697,7 +697,8 @@ def parse_foreign_key_error(self, error_message: str) -> dict[str, str | list[st
697697
import re
698698

699699
pattern = re.compile(
700-
r'.*table "(?P<referenced_table>[^"]+)" violates foreign key constraint "(?P<name>[^"]+)" on table "(?P<referencing_table>[^"]+)"'
700+
r'.*table "(?P<referenced_table>[^"]+)" violates foreign key constraint '
701+
r'"(?P<name>[^"]+)" on table "(?P<referencing_table>[^"]+)"'
701702
)
702703

703704
match = pattern.match(error_message)

src/datajoint/heading.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -558,7 +558,7 @@ def _init_from_database(self) -> None:
558558

559559
keys[index_name][seq] = dict(
560560
column=column,
561-
unique=(non_unique == 0 or non_unique == False),
561+
unique=(non_unique == 0 or not non_unique),
562562
nullable=nullable,
563563
)
564564
self.indexes = {

src/datajoint/table.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import itertools
55
import json
66
import logging
7-
import re
87
import uuid
98
import warnings
109
from dataclasses import dataclass, field

0 commit comments

Comments
 (0)