from typing import Any import sqlalchemy as sa from sqlalchemy.engine import Dialect from dmp.core.types import EncryptedToken class EncryptedTextType(sa.TypeDecorator): impl = sa.Text() cache_ok = True @property def python_type(self) -> Any: return self.impl.python_type def process_bind_param(self, value: Any, dialect: Dialect) -> Any: # noqa: ARG002 return value def process_result_value(self, value: Any, dialect: Dialect) -> Any: # noqa: ARG002 if value is None: return value return EncryptedToken(value) def process_literal_param(self, value: Any, dialect: Dialect) -> Any: # noqa: ARG002 return value