123456789101112131415161718192021222324252627 |
- from sqlalchemy import CHAR, TypeDecorator
- from sqlalchemy.dialects.postgresql import UUID
- class StringUUID(TypeDecorator):
- impl = CHAR
- cache_ok = True
- def process_bind_param(self, value, dialect):
- if value is None:
- return value
- elif dialect.name == "postgresql":
- return str(value)
- else:
- return value.hex
- def load_dialect_impl(self, dialect):
- if dialect.name == "postgresql":
- return dialect.type_descriptor(UUID())
- else:
- return dialect.type_descriptor(CHAR(36))
- def process_result_value(self, value, dialect):
- if value is None:
- return value
- return str(value)
|