mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-python
synced 2026-01-15 01:52:56 +01:00
Fix errors reported by mypy
Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
parent
babd3ef933
commit
841b5a3391
2 changed files with 22 additions and 12 deletions
|
|
@ -29,8 +29,8 @@ class CompositeForeignKey: # export
|
||||||
assert(len(self.__child_col_set) == len(self.__parent_col_set))
|
assert(len(self.__child_col_set) == len(self.__parent_col_set))
|
||||||
self.__len = len(self.__child_col_set)
|
self.__len = len(self.__child_col_set)
|
||||||
self.__column_relations: Optional[list[SingleForeignKey]] = None
|
self.__column_relations: Optional[list[SingleForeignKey]] = None
|
||||||
self.__parent_columns_by_child_column: Optional[dict[str, Column]] = None
|
self.__parent_columns_by_child_column: Optional[dict[str, Any]] = None
|
||||||
self.__child_columns_by_parent_column: Optional[dict[str, Column]] = None
|
self.__child_columns_by_parent_column: Optional[dict[str, Any]] = None
|
||||||
|
|
||||||
def __table_rel_str(self):
|
def __table_rel_str(self):
|
||||||
return f'{self.__child_table.name} => {self.__parent_table.name}'
|
return f'{self.__child_table.name} => {self.__parent_table.name}'
|
||||||
|
|
@ -72,21 +72,21 @@ class CompositeForeignKey: # export
|
||||||
def parent_columns(self) -> ColumnSet:
|
def parent_columns(self) -> ColumnSet:
|
||||||
return self.__parent_col_set
|
return self.__parent_col_set
|
||||||
|
|
||||||
def parent_column(self, child_column):
|
def parent_column(self, child_column) -> Any:
|
||||||
child_column_name = child_column if isinstance(child_column, str) else child_column.name
|
child_column_name = child_column if isinstance(child_column, str) else child_column.name
|
||||||
if self.__parent_columns_by_child_column is None:
|
if self.__parent_columns_by_child_column is None:
|
||||||
d: dict[str, Column] = {}
|
d: dict[str, Any] = {}
|
||||||
assert(len(self.__child_col_set) == len(self.__parent_col_set))
|
assert(len(self.__child_col_set) == len(self.__parent_col_set))
|
||||||
for i in range(0, len(self.__child_col_set)):
|
for i in range(0, len(self.__child_col_set)):
|
||||||
d[self.__child_col_set[i].name] = self.__parent_col_set[i]
|
d[self.__child_col_set[i].name] = self.__parent_col_set[i]
|
||||||
self.__parent_columns_by_child_column = d
|
self.__parent_columns_by_child_column = d
|
||||||
return self.__parent_columns_by_child_column[child_column]
|
return self.__parent_columns_by_child_column[child_column]
|
||||||
|
|
||||||
def child_column(self, parent_column):
|
def child_column(self, parent_column) -> Any:
|
||||||
slog(WARNING, f'{self}: Looking for child column belonging to parent column "{parent_column}"')
|
slog(WARNING, f'{self}: Looking for child column belonging to parent column "{parent_column}"')
|
||||||
parent_column_name = parent_column if isinstance(parent_column, str) else parent_column.name
|
parent_column_name = parent_column if isinstance(parent_column, str) else parent_column.name
|
||||||
if self.__child_columns_by_parent_column is None:
|
if self.__child_columns_by_parent_column is None:
|
||||||
d: dict[str, Column] = {}
|
d: dict[str, Any] = {}
|
||||||
assert(len(self.__parent_col_set) == len(self.__child_col_set))
|
assert(len(self.__parent_col_set) == len(self.__child_col_set))
|
||||||
for i in range(0, len(self.__parent_col_set)):
|
for i in range(0, len(self.__parent_col_set)):
|
||||||
d[self.__parent_col_set[i].name] = self.__child_col_set[i]
|
d[self.__parent_col_set[i].name] = self.__child_col_set[i]
|
||||||
|
|
|
||||||
|
|
@ -78,8 +78,10 @@ class Table(abc.ABC): # export
|
||||||
if self.___add_child_row_location_rules is None:
|
if self.___add_child_row_location_rules is None:
|
||||||
ret: dict[str, str] = {}
|
ret: dict[str, str] = {}
|
||||||
for foreign_table_name, foreign_table in self.__relationship_by_foreign_table.items():
|
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)
|
rule = self._add_child_row_location_rule(foreign_table_name)
|
||||||
|
if rule is None:
|
||||||
|
continue
|
||||||
ret[foreign_table_name] = rule
|
ret[foreign_table_name] = rule
|
||||||
self.___add_child_row_location_rules = ret
|
self.___add_child_row_location_rules = ret
|
||||||
return self.___add_child_row_location_rules
|
return self.___add_child_row_location_rules
|
||||||
|
|
@ -133,12 +135,12 @@ class Table(abc.ABC): # export
|
||||||
return self._log_columns()
|
return self._log_columns()
|
||||||
|
|
||||||
@abc.abstractmethod
|
@abc.abstractmethod
|
||||||
def _display_columns(self) -> Iterable[str]:
|
def _display_columns(self) -> Optional[Iterable[str]]:
|
||||||
return None
|
return None
|
||||||
#return self._primary_keys()
|
#return self._primary_keys()
|
||||||
|
|
||||||
@abc.abstractmethod
|
@abc.abstractmethod
|
||||||
def _default_sort_columns(self) -> Iterable[str]:
|
def _default_sort_columns(self) -> Optional[Iterable[str]]:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
@abc.abstractmethod
|
@abc.abstractmethod
|
||||||
|
|
@ -200,11 +202,16 @@ class Table(abc.ABC): # export
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
def _add_row_location_rule(self) -> Optional[str]:
|
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]:
|
def _add_child_row_location_rule(self, parent_table_name: str) -> Optional[str]:
|
||||||
parent_table = self.schema[parent_table_name]
|
parent_table = self.schema[parent_table_name]
|
||||||
ret = self._add_row_location_rule()
|
ret = self._add_row_location_rule()
|
||||||
|
if ret is None:
|
||||||
|
return None
|
||||||
for cfk in self.foreign_keys_to_parent_table(parent_table):
|
for cfk in self.foreign_keys_to_parent_table(parent_table):
|
||||||
for fk in cfk:
|
for fk in cfk:
|
||||||
token = f'/<{fk.child_column.name}>'
|
token = f'/<{fk.child_column.name}>'
|
||||||
|
|
@ -249,7 +256,10 @@ class Table(abc.ABC): # export
|
||||||
@property
|
@property
|
||||||
def model_class(self) -> Any:
|
def model_class(self) -> Any:
|
||||||
if self.__model_class is None:
|
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():
|
for module_path, base_class in self._model_module_search_paths():
|
||||||
ret = load_class(module_path, base_class, class_name_filter=pattern)
|
ret = load_class(module_path, base_class, class_name_filter=pattern)
|
||||||
if ret is not None:
|
if ret is not None:
|
||||||
|
|
@ -453,7 +463,7 @@ class Table(abc.ABC): # export
|
||||||
self.__relationships = ret
|
self.__relationships = ret
|
||||||
return self.__relationships
|
return self.__relationships
|
||||||
|
|
||||||
def relationship(self, table: Union[Self, str]) -> bool:
|
def relationship(self, table: Union[Self, str]) -> Optional[Self]:
|
||||||
if isinstance(table, Table):
|
if isinstance(table, Table):
|
||||||
table = table.name
|
table = table.name
|
||||||
return self.__relationship_by_foreign_table.get(table)
|
return self.__relationship_by_foreign_table.get(table)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue