Fix errors reported by mypy

Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
Jan Lindemann 2025-03-01 07:58:19 +01:00
commit 841b5a3391
2 changed files with 22 additions and 12 deletions

View file

@ -78,8 +78,10 @@ class Table(abc.ABC): # export
if self.___add_child_row_location_rules is None:
ret: dict[str, str] = {}
for foreign_table_name, foreign_table in self.__relationship_by_foreign_table.items():
if len(self.foreign_keys_to_parent_table(foreign_table)):
if len([self.foreign_keys_to_parent_table(foreign_table)]):
rule = self._add_child_row_location_rule(foreign_table_name)
if rule is None:
continue
ret[foreign_table_name] = rule
self.___add_child_row_location_rules = ret
return self.___add_child_row_location_rules
@ -133,12 +135,12 @@ class Table(abc.ABC): # export
return self._log_columns()
@abc.abstractmethod
def _display_columns(self) -> Iterable[str]:
def _display_columns(self) -> Optional[Iterable[str]]:
return None
#return self._primary_keys()
@abc.abstractmethod
def _default_sort_columns(self) -> Iterable[str]:
def _default_sort_columns(self) -> Optional[Iterable[str]]:
return None
@abc.abstractmethod
@ -200,11 +202,16 @@ class Table(abc.ABC): # export
return ret
def _add_row_location_rule(self) -> Optional[str]:
return self._location_rule() + '/new'
rule = self._location_rule()
if rule is None:
return None
return rule + '/new'
def _add_child_row_location_rule(self, parent_table_name: str) -> Optional[str]:
parent_table = self.schema[parent_table_name]
ret = self._add_row_location_rule()
if ret is None:
return None
for cfk in self.foreign_keys_to_parent_table(parent_table):
for fk in cfk:
token = f'/<{fk.child_column.name}>'
@ -249,7 +256,10 @@ class Table(abc.ABC): # export
@property
def model_class(self) -> Any:
if self.__model_class is None:
pattern = r'^' + self.model_name + '$'
model_name = self.model_name
if model_name is None:
return None
pattern = r'^' + model_name + '$'
for module_path, base_class in self._model_module_search_paths():
ret = load_class(module_path, base_class, class_name_filter=pattern)
if ret is not None:
@ -453,7 +463,7 @@ class Table(abc.ABC): # export
self.__relationships = ret
return self.__relationships
def relationship(self, table: Union[Self, str]) -> bool:
def relationship(self, table: Union[Self, str]) -> Optional[Self]:
if isinstance(table, Table):
table = table.name
return self.__relationship_by_foreign_table.get(table)