1234567891011121314151617181920212223242526 |
- 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)
|