After looking more closely at the types bundled with SQLite, I changed 
my code as follows:

class UUID(TypeDecorator):
     impl = String
     def __init__(self):
         self.length = 36
     def adapt(self, impltype):
         return impltype(length=self.length)
     def convert_bind_param(self, value, dialect):
         if isinstance(value, uuid.UUID):
             value = str(value)
         elif isinstance(value, str):
             value = str(uuid.UUID(value))
         return super(UUID, self).convert_bind_param(value, dialect)
     def convert_result_value(self, value, dialect):
         return uuid.UUID(super(UUID, self).convert_result_value(value, 
dialect))

...and all is well and right with the world. (For those watching from 
the bleachers -- I'm now inheriting directly from TypeDecorator and 
setting impl to String, rather than trying to inherit from String).


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Sqlalchemy-users mailing list
Sqlalchemy-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users

Reply via email to