From 0b562a83baf6c605aace2a3587ab2096d0b71b94 Mon Sep 17 00:00:00 2001 From: Julien Muchembled <jm@nexedi.com> Date: Mon, 6 Jun 2016 14:09:48 +0200 Subject: [PATCH] Partial support for more recent versions of ZODB --- product/ERP5Type/patches/DemoStorage.py | 6 +++--- product/ERP5Type/patches/XMLExportImport.py | 6 +++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/product/ERP5Type/patches/DemoStorage.py b/product/ERP5Type/patches/DemoStorage.py index f521562220..87ce80303f 100644 --- a/product/ERP5Type/patches/DemoStorage.py +++ b/product/ERP5Type/patches/DemoStorage.py @@ -16,8 +16,6 @@ from ZODB import DemoStorage as _DemoStorage from ZODB.ConflictResolution import ConflictResolvingStorage, ResolvedSerial from ZODB.POSException import ConflictError -assert not issubclass(_DemoStorage.DemoStorage, ConflictResolvingStorage) - class DemoStorage(_DemoStorage.DemoStorage, ConflictResolvingStorage): ## # Implement conflict resolution for DemoStorage @@ -33,4 +31,6 @@ class DemoStorage(_DemoStorage.DemoStorage, ConflictResolvingStorage): self.changes.store(oid, old, rdata, '', transaction) return ResolvedSerial -_DemoStorage.DemoStorage = DemoStorage +if not issubclass(_DemoStorage.DemoStorage, ConflictResolvingStorage): + # BBB: ZODB < 4.3 + _DemoStorage.DemoStorage = DemoStorage diff --git a/product/ERP5Type/patches/XMLExportImport.py b/product/ERP5Type/patches/XMLExportImport.py index c72b3ceaf7..e23922441a 100644 --- a/product/ERP5Type/patches/XMLExportImport.py +++ b/product/ERP5Type/patches/XMLExportImport.py @@ -59,7 +59,11 @@ class OrderedPickler(Pickler): dispatch[PyStringMap] = save_dict def reorderPickle(jar, p): - from ZODB.ExportImport import Ghost, Unpickler, Pickler, StringIO, persistent_id + try: + from ZODB._compat import Unpickler, Pickler + except ImportError: # BBB: ZODB 3.10 + from ZODB.ExportImport import Unpickler, Pickler + from ZODB.ExportImport import Ghost, persistent_id oids = {} storage = jar._storage -- 2.30.9