From 6979c6d8a1e5307bbde49ccc7690a2372c92f41e Mon Sep 17 00:00:00 2001 From: Julien Muchembled <jm@nexedi.com> Date: Mon, 20 Sep 2010 13:28:13 +0000 Subject: [PATCH] Generate Zope2.12-like class representation on xml export of BTrees objects git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@38488 20353a03-c40f-0410-a6d1-a30d3c3de9de --- product/ERP5Type/patches/XMLExportImport.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/product/ERP5Type/patches/XMLExportImport.py b/product/ERP5Type/patches/XMLExportImport.py index c4ad5820ec..00d1459683 100644 --- a/product/ERP5Type/patches/XMLExportImport.py +++ b/product/ERP5Type/patches/XMLExportImport.py @@ -14,6 +14,7 @@ # Make sure the xml export will be ordered +import re from ZODB.utils import u64, p64 from Shared.DC.xml import ppml from base64 import encodestring @@ -68,9 +69,11 @@ class OrderedPickler(Pickler): from ExtensionClass import Base Base__getnewargs__ = getattr(Base, '__getnewargs__', None) if Base__getnewargs__ is None: + is_old_btree = lambda pickle: None def maybeSimplifyClass(klass): return klass else: + is_old_btree = re.compile('cBTrees\\._(..)BTree\n(\\1)BTree\n').match def maybeSimplifyClass(klass): if isinstance(klass, tuple): pureclass, newargs = klass @@ -122,6 +125,8 @@ def reorderPickle(jar, p): obj = unpickler.load() pickler.dump(obj) p=newp.getvalue() + if is_old_btree(p): + p = p.replace('_','',1) return obj, p def XMLrecord(oid, plen, p, id_mapping): -- 2.30.9