mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-python
synced 2026-01-15 09:53:32 +01:00
db.schema: Add location definition to API
Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
parent
e688cd2364
commit
9cfcc1bd68
2 changed files with 57 additions and 0 deletions
|
|
@ -16,6 +16,7 @@ class Schema(abc.ABC): # export
|
|||
def __init__(self) -> None:
|
||||
self.___tables: Optional[List[Table]] = None
|
||||
self.__foreign_keys: Optional[List[CompositeForeignKey]] = None
|
||||
self.__access_defining_columns: Optional[List[str]] = None
|
||||
|
||||
@property
|
||||
def __tables(self):
|
||||
|
|
@ -44,6 +45,10 @@ class Schema(abc.ABC): # export
|
|||
def _foreign_keys(self) -> List[CompositeForeignKey]:
|
||||
pass
|
||||
|
||||
@abc.abstractmethod
|
||||
def _access_defining_columns(self):
|
||||
pass
|
||||
|
||||
# ------ API to be called
|
||||
|
||||
@property
|
||||
|
|
@ -54,6 +59,12 @@ class Schema(abc.ABC): # export
|
|||
def tables(self) -> Iterable[Table]:
|
||||
return self.__tables.values()
|
||||
|
||||
@property
|
||||
def access_defining_columns(self):
|
||||
if self.__access_defining_columns is None:
|
||||
self.__access_defining_columns = self._access_defining_columns()
|
||||
return self.__access_defining_columns
|
||||
|
||||
@property
|
||||
def foreign_key_constraints(self) -> List[CompositeForeignKey]:
|
||||
if self.__foreign_keys is None:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue