From de55edc5e0031d09040284f2b6d4e84f74de90fd Mon Sep 17 00:00:00 2001 From: Leander Karp <karp@cl.uni-heidelberg.de> Date: Sat, 17 Aug 2024 10:48:51 +0200 Subject: [PATCH] Fix typing in UtcDateTime and Uuid Update to solve the LSP errors via typing changes and not by code changes. This undos LSP-violation related code changes. --- portal/model/UtcDateTime.py | 8 ++++---- portal/model/Uuid.py | 6 ++++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/portal/model/UtcDateTime.py b/portal/model/UtcDateTime.py index fb18092..64c0220 100644 --- a/portal/model/UtcDateTime.py +++ b/portal/model/UtcDateTime.py @@ -28,12 +28,12 @@ class UtcDateTime(types.TypeDecorator): return types.String(32) def process_bind_param( - self, value: Any | None, dialect: Dialect + self, value: datetime | None, dialect: Dialect ) -> Optional[str | datetime]: - if isinstance(value, datetime): - return value.astimezone(timezone.utc).isoformat() + if value is None: + return None - return None + return value.astimezone(timezone.utc).isoformat() def process_result_value( self, value: str | None, dialect: Dialect diff --git a/portal/model/Uuid.py b/portal/model/Uuid.py index 452b477..ebb8625 100644 --- a/portal/model/Uuid.py +++ b/portal/model/Uuid.py @@ -26,12 +26,14 @@ class Uuid(types.TypeDecorator): def load_dialect_impl(self, dialect: Dialect) -> types.TypeEngine[Any]: return types.String(UUID_LENGTH) - def process_bind_param(self, value: Any | None, dialect: Dialect) -> Optional[str]: + def process_bind_param( + self, value: None | str | UUID, dialect: Dialect + ) -> Optional[str]: if isinstance(value, str): # Manually create UUID from string, to raise an error if the string is malformed UUID(value) - return str(value) if isinstance(value, UUID) else None + return str(value) if value else None def process_result_value( self, value: Optional[str], dialect: Dialect -- GitLab