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

Reply via email to