diff --git a/portal/model/UtcDateTime.py b/portal/model/UtcDateTime.py index fb180926f393853310d8d5db7c4b76df67829389..64c022021ff8ab7262d25c06fa03834fd0c351be 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 452b477c43486cd69e02d15b0b3512e32da9f584..ebb8625c6904517e134fec5094bb2c8ff697ae5c 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