[pypy-commit] pypy use-file-star-for-file: expose file._setbufsize

bdkearns noreply at buildbot.pypy.org
Thu Sep 11 04:53:07 CEST 2014


Author: Brian Kearns <bdkearns at gmail.com>
Branch: use-file-star-for-file
Changeset: r73439:cb5bd9b58319
Date: 2014-09-10 22:46 -0400
http://bitbucket.org/pypy/pypy/changeset/cb5bd9b58319/

Log:	expose file._setbufsize

diff --git a/pypy/module/_file/interp_file.py b/pypy/module/_file/interp_file.py
--- a/pypy/module/_file/interp_file.py
+++ b/pypy/module/_file/interp_file.py
@@ -231,6 +231,10 @@
     def direct_isatty(self):
         return self.getstream().isatty()
 
+    @unwrap_spec(bufsize=int)
+    def descr_setbufsize(self, bufsize):
+        self.getstream()._setbufsize(bufsize)
+
     # ____________________________________________________________
     #
     # The 'file_' methods are the one exposed to app-level.
@@ -520,6 +524,7 @@
     __repr__ = interp2app(W_File.file__repr__),
     readinto = interp2app(W_File.file_readinto),
     writelines = interp2app(W_File.file_writelines),
+    _setbufsize = interp2app(W_File.descr_setbufsize),
     __exit__ = interp2app(W_File.file__exit__),
     __weakref__ = make_weakref_descr(W_File),
     **dict([(name, interp2app(getattr(W_File, 'file_' + name)))
diff --git a/pypy/module/_file/test/test_file.py b/pypy/module/_file/test/test_file.py
--- a/pypy/module/_file/test/test_file.py
+++ b/pypy/module/_file/test/test_file.py
@@ -453,6 +453,16 @@
             s = os.read(f.fileno(), 10)
             assert s == 'bar\n'
 
+        import sys
+        if '__pypy__' in sys.builtin_module_names:
+            with self.file(self.temppath, 'rb') as f:
+                f._setbufsize(0)
+                s = f.readline()
+                assert s == 'foo\n'
+                s = os.read(f.fileno(), 10)
+                assert s == 'bar\n'
+
+
 def test_flush_at_exit():
     from pypy import conftest
     from pypy.tool.option import make_config, make_objspace


More information about the pypy-commit mailing list