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