Author: Brian Kearns <[email protected]>
Branch:
Changeset: r62596:3252c980a8b1
Date: 2013-03-20 20:32 -0400
http://bitbucket.org/pypy/pypy/changeset/3252c980a8b1/
Log: clean up the pickle StringBuilder modifications
diff --git a/lib-python/2/pickle.py b/lib-python/2/pickle.py
--- a/lib-python/2/pickle.py
+++ b/lib-python/2/pickle.py
@@ -34,8 +34,6 @@
import struct
import re
-from __pypy__.builders import StringBuilder
-
__all__ = ["PickleError", "PicklingError", "UnpicklingError", "Pickler",
"Unpickler", "dump", "dumps", "load", "loads"]
@@ -1411,18 +1409,19 @@
except ImportError:
from StringIO import StringIO
-
-class StringBuilderFile(object):
- ''' pickle uses only file.write - provide this method,
- use StringBuilder for speed
- '''
- def __init__(self):
- self.builder = StringBuilder()
- self.write = self.builder.append
-
- def getvalue(self):
- return self.builder.build()
-
+try:
+ from __pypy__.builders import StringBuilder
+except ImportError:
+ StringBuilderFile = StringIO
+else:
+ class StringBuilderFile(object):
+ ''' pickle uses only file.write - provide this method,
+ use StringBuilder for speed
+ '''
+ def __init__(self):
+ self.builder = StringBuilder()
+ self.write = self.builder.append
+ self.getvalue = self.builder.build
def dump(obj, file, protocol=None):
Pickler(file, protocol).dump(obj)
diff --git a/lib_pypy/cPickle.py b/lib_pypy/cPickle.py
--- a/lib_pypy/cPickle.py
+++ b/lib_pypy/cPickle.py
@@ -96,18 +96,18 @@
# closer to the ones produced by cPickle in CPython
from pickle import StringIO
+
try:
from pickle import StringBuilderFile
except ImportError:
- assert '__pypy__' not in sys.builtin_module_names
- from pickle import StringIO as StringBuilderFile
+ StringBuilderFile = StringIO
PythonPickler = Pickler
class Pickler(PythonPickler):
def __init__(self, *args, **kw):
self.__f = None
if len(args) == 1 and isinstance(args[0], int):
- self.__f = StringIO()
+ self.__f = StringBuilderFile()
PythonPickler.__init__(self, self.__f, args[0], **kw)
else:
PythonPickler.__init__(self, *args, **kw)
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit