[Checkins] SVN: zope.keyreference/trunk/ Add a quick hack to make old keyreferences available if zope.app.keyreference is gone after update.
Dan Korostelev
nadako at gmail.com
Sat Jan 31 18:03:17 EST 2009
Log message for revision 95800:
Add a quick hack to make old keyreferences available if zope.app.keyreference is gone after update.
Changed:
U zope.keyreference/trunk/CHANGES.txt
U zope.keyreference/trunk/src/zope/keyreference/persistent.py
-=-
Modified: zope.keyreference/trunk/CHANGES.txt
===================================================================
--- zope.keyreference/trunk/CHANGES.txt 2009-01-31 21:17:09 UTC (rev 95799)
+++ zope.keyreference/trunk/CHANGES.txt 2009-01-31 23:03:16 UTC (rev 95800)
@@ -5,7 +5,9 @@
3.6.1 (unreleased)
------------------
-- ...
+- Load keyreferences, pickled by old zope.app.keyreference even
+ if its not installed anymore (so don't break if one updates a
+ project that don't directly depends on zope.app.keyreference).
3.6.0 (2009-01-31)
------------------
Modified: zope.keyreference/trunk/src/zope/keyreference/persistent.py
===================================================================
--- zope.keyreference/trunk/src/zope/keyreference/persistent.py 2009-01-31 21:17:09 UTC (rev 95799)
+++ zope.keyreference/trunk/src/zope/keyreference/persistent.py 2009-01-31 23:03:16 UTC (rev 95800)
@@ -113,3 +113,17 @@
if cur is None:
return None
return cur._p_jar
+
+# BBB: If zope.app.keyreference is not installed, we still want
+# old key references to be available. So fake a module to make
+# them unpickleable.
+try:
+ import zope.app.keyreference
+except ImportError:
+ import sys
+ from types import ModuleType as module
+ z_a_k = module('zope.app.keyreference')
+ sys.modules['zope.app.keyreference'] = z_a_k
+ z_a_k_p = module('zope.app.keyreference.persistent')
+ z_a_k_p.KeyReferenceToPersistent = KeyReferenceToPersistent
+ sys.modules['zope.app.keyreference.persistent'] = z_a_k_p
More information about the Checkins
mailing list