Author: Brian Kearns <[email protected]>
Branch: 
Changeset: r62691:ab34cd919592
Date: 2013-03-21 03:21 -0400
http://bitbucket.org/pypy/pypy/changeset/ab34cd919592/

Log:    switch pickle/cPickle back to using cStringIO now that it's as fast
        as StringBuilder (removing pypy modifications of stdlib)

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
@@ -1409,26 +1409,11 @@
 except ImportError:
     from StringIO import StringIO
 
-try:
-    from __pypy__.builders import StringBuilder
-except ImportError:
-    assert '__pypy__' not in sys.builtin_module_names
-    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)
 
 def dumps(obj, protocol=None):
-    file = StringBuilderFile()
+    file = StringIO()
     Pickler(file, protocol).dump(obj)
     return file.getvalue()
 
diff --git a/lib_pypy/cPickle.py b/lib_pypy/cPickle.py
--- a/lib_pypy/cPickle.py
+++ b/lib_pypy/cPickle.py
@@ -97,18 +97,12 @@
 
 from pickle import StringIO
 
-try:
-    from pickle import StringBuilderFile
-except ImportError:
-    assert '__pypy__' not in sys.builtin_module_names
-    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 = StringBuilderFile()
+            self.__f = StringIO()
             PythonPickler.__init__(self, self.__f, args[0], **kw)
         else:
             PythonPickler.__init__(self, *args, **kw)
@@ -126,7 +120,7 @@
 
 @builtinify
 def dumps(obj, protocol=None):
-    file = StringBuilderFile()
+    file = StringIO()
     Pickler(file, protocol).dump(obj)
     return file.getvalue()
 
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to