|
@@ -21,6 +21,9 @@ shared context between all objects written by that Pickler.
|
|
|
Unfortunately, cPickle cannot be supported, because it does not
|
|
Unfortunately, cPickle cannot be supported, because it does not
|
|
|
support extensions of this nature. """
|
|
support extensions of this nature. """
|
|
|
|
|
|
|
|
|
|
+__all__ = ["PickleError", "PicklingError", "UnpicklingError", "Pickler",
|
|
|
|
|
+ "Unpickler", "dump", "dumps", "load", "loads"]
|
|
|
|
|
+
|
|
|
import sys
|
|
import sys
|
|
|
from panda3d.core import BamWriter, BamReader, TypedObject
|
|
from panda3d.core import BamWriter, BamReader, TypedObject
|
|
|
|
|
|
|
@@ -33,7 +36,9 @@ else:
|
|
|
# with the local pickle.py.
|
|
# with the local pickle.py.
|
|
|
pickle = __import__('pickle')
|
|
pickle = __import__('pickle')
|
|
|
|
|
|
|
|
|
|
+PickleError = pickle.PickleError
|
|
|
PicklingError = pickle.PicklingError
|
|
PicklingError = pickle.PicklingError
|
|
|
|
|
+UnpicklingError = pickle.UnpicklingError
|
|
|
|
|
|
|
|
if sys.version_info >= (3, 0):
|
|
if sys.version_info >= (3, 0):
|
|
|
BasePickler = pickle._Pickler
|
|
BasePickler = pickle._Pickler
|
|
@@ -43,13 +48,18 @@ else:
|
|
|
BaseUnpickler = pickle.Unpickler
|
|
BaseUnpickler = pickle.Unpickler
|
|
|
|
|
|
|
|
|
|
|
|
|
-class _Pickler(BasePickler):
|
|
|
|
|
|
|
+class Pickler(BasePickler):
|
|
|
|
|
|
|
|
def __init__(self, *args, **kw):
|
|
def __init__(self, *args, **kw):
|
|
|
self.bamWriter = BamWriter()
|
|
self.bamWriter = BamWriter()
|
|
|
self._canonical = {}
|
|
self._canonical = {}
|
|
|
BasePickler.__init__(self, *args, **kw)
|
|
BasePickler.__init__(self, *args, **kw)
|
|
|
|
|
|
|
|
|
|
+ def clear_memo(self):
|
|
|
|
|
+ BasePickler.clear_memo(self)
|
|
|
|
|
+ self._canonical.clear()
|
|
|
|
|
+ self.bamWriter = BamWriter()
|
|
|
|
|
+
|
|
|
# We have to duplicate most of the save() method, so we can add
|
|
# We have to duplicate most of the save() method, so we can add
|
|
|
# support for __reduce_persist__().
|
|
# support for __reduce_persist__().
|
|
|
|
|
|
|
@@ -172,12 +182,6 @@ class Unpickler(BaseUnpickler):
|
|
|
BaseUnpickler.dispatch[pickle.REDUCE] = load_reduce
|
|
BaseUnpickler.dispatch[pickle.REDUCE] = load_reduce
|
|
|
|
|
|
|
|
|
|
|
|
|
-Pickler = _Pickler
|
|
|
|
|
-
|
|
|
|
|
-if sys.version_info < (3, 0):
|
|
|
|
|
- del _Pickler
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
# Shorthands
|
|
# Shorthands
|
|
|
from io import BytesIO
|
|
from io import BytesIO
|
|
|
|
|
|