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