From 91d751705406c2644b712267db512bf584312a7e Mon Sep 17 00:00:00 2001 From: Jan Lindemann Date: Fri, 14 Feb 2025 08:12:02 +0100 Subject: [PATCH] schema.Column: Add property translate Signed-off-by: Jan Lindemann --- tools/python/jwutils/db/schema/Column.py | 7 +++++++ tools/python/jwutils/db/schema/Table.py | 11 +++++++++++ 2 files changed, 18 insertions(+) diff --git a/tools/python/jwutils/db/schema/Column.py b/tools/python/jwutils/db/schema/Column.py index ab8e235..18064e9 100644 --- a/tools/python/jwutils/db/schema/Column.py +++ b/tools/python/jwutils/db/schema/Column.py @@ -19,6 +19,7 @@ class Column(abc.ABC): # export self.__default_value: Optional[Any] = None self.__default_value_cached: bool = False self.__is_auto_increment: Optional[bool] = None + self.__translate: Optional[bool] = None self.__data_type: DataType = data_type self.__foreign_keys: Optional[Any] = None self.__foreign_keys_cached: bool = False @@ -84,6 +85,12 @@ class Column(abc.ABC): # export self.__is_auto_increment = self.__name in self.__table.auto_increment_columns return self.__is_auto_increment + @property + def translate(self) -> bool: + if self.__translate is None: + self.__translate = self.__name in self.__table.translate_columns + return self.__translate + @property def default_value(self) -> Optional[Any]: if self.__default_value_cached is False: diff --git a/tools/python/jwutils/db/schema/Table.py b/tools/python/jwutils/db/schema/Table.py index 878a005..5b7c1e6 100644 --- a/tools/python/jwutils/db/schema/Table.py +++ b/tools/python/jwutils/db/schema/Table.py @@ -32,6 +32,7 @@ class Table(abc.ABC): # export self.__null_insertible_columns: Optional[Iterable[str]] = None self.__not_null_insertible_columns: Optional[Iterable[str]] = None self.__log_columns: Optional[Iterable[str]] = None + self.__translate_columns: Optional[Iterable[str]] = None self.__display_columns: Optional[Iterable[str]] = None self.__column_default: Optional[dict[str, Any]] = None self.__base_location_rule: Optional[Iterable[str]] = None @@ -117,6 +118,10 @@ class Table(abc.ABC): # export def _auto_increment_columns(self) -> Iterable[str]: pass + @abc.abstractmethod + def _translate_columns(self) -> Iterable[str]: + pass + @abc.abstractmethod def _column_default(self, name) -> Any: pass @@ -268,6 +273,12 @@ class Table(abc.ABC): # export def auto_increment_columns(self) -> Iterable[str]: return self._auto_increment_columns() + @property + def translate_columns(self) -> Iterable[str]: + if self.__translate_columns is None: + self.__translate_columns = self._translate_columns() + return self.__translate_columns + @property def nullable_columns(self) -> Iterable[str]: if self.__nullable_columns is None: