[SQL-CVS] r4601 - SQLObject/branches/1.3/sqlobject
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
|
From: <sub...@co...> - 2013-05-26 15:05:24
|
Author: phd
Date: Sun May 26 09:05:11 2013
New Revision: 4601
Log:
Remove and restore _SO_validatorState and _SO_createValues
Call syncUpdate and remove _SO_validatorState and _SO_createValues before
pickling to avoid pickling a weak proxy to self.
Restore _SO_validatorState and _SO_createValues on unpickling.
Modified:
SQLObject/branches/1.3/sqlobject/main.py
Modified: SQLObject/branches/1.3/sqlobject/main.py
==============================================================================
--- SQLObject/branches/1.3/sqlobject/main.py Sat May 18 03:36:59 2013 (r4600)
+++ SQLObject/branches/1.3/sqlobject/main.py Sun May 26 09:05:11 2013 (r4601)
@@ -1676,14 +1676,20 @@
if self.sqlmeta._perConnection:
from pickle import PicklingError
raise PicklingError('Cannot pickle an SQLObject instance that has a per-instance connection')
+ if self.sqlmeta.lazyUpdate and self._SO_createValues:
+ self.syncUpdate()
d = self.__dict__.copy()
del d['sqlmeta']
+ del d['_SO_validatorState']
del d['_SO_writeLock']
+ del d['_SO_createValues']
return d
def __setstate__(self, d):
self.__init__(_SO_fetch_no_create=1)
+ self._SO_validatorState = sqlbuilder.SQLObjectState(self)
self._SO_writeLock = threading.Lock()
+ self._SO_createValues = {}
self.__dict__.update(d)
cls = self.__class__
cache = self._connection.cache
|