[SQL-CVS] r547 - trunk/SQLObject/sqlobject
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
From: <sub...@co...> - 2005-01-15 12:50:23
|
Author: phd Date: 2005-01-15 12:50:16 +0000 (Sat, 15 Jan 2005) New Revision: 547 Modified: trunk/SQLObject/sqlobject/col.py Log: PickleCol now has a parameter pickleProtocol. Default is 1 (binary) for compatibility with Python 2.2. Modified: trunk/SQLObject/sqlobject/col.py =================================================================== --- trunk/SQLObject/sqlobject/col.py 2005-01-15 11:55:33 UTC (rev 546) +++ trunk/SQLObject/sqlobject/col.py 2005-01-15 12:50:16 UTC (rev 547) @@ -936,18 +936,25 @@ return None if isinstance(value, str): return pickle.loads(value) - return value + raise validators.InvalidField("expected a pickle string in the PickleCol '%s', got %s instead" % \ + (self.name, type(value)), value, state) def fromPython(self, value, state): if value is None: return None - pickled = pickle.dumps(value) - return BinaryValidator.fromPython(self, pickled, state) + return pickle.dumps(value) - class SOPickleCol(SOBLOBCol): validatorClass = PickleValidator # can be overriden in descendants + def __init__(self, **kw): + self.pickleProtocol = popKey(kw, 'pickleProtocol', 1) + SOBLOBCol.__init__(self, **kw) + + def createValidator(self): + """Create a validator for the column. Can be overriden in descendants.""" + return self.validatorClass(name=self.name, pickleProtocol=self.pickleProtocol) + class PickleCol(BLOBCol): baseClass = SOPickleCol |