reject None as the buffering argument like the C implementation does #8546
diff --git a/Doc/library/io.rst b/Doc/library/io.rst
index adde553..cf5e9f7 100644
--- a/Doc/library/io.rst
+++ b/Doc/library/io.rst
@@ -61,7 +61,7 @@
classes. :func:`.open` uses the file's blksize (as obtained by
:func:`os.stat`) if possible.
-.. function:: open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True)
+.. function:: open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True)
Open *file* and return a corresponding stream. If the file cannot be opened,
an :exc:`IOError` is raised.
diff --git a/Lib/_pyio.py b/Lib/_pyio.py
index 8098681..cafc51c 100644
--- a/Lib/_pyio.py
+++ b/Lib/_pyio.py
@@ -40,7 +40,7 @@
self.characters_written = characters_written
-def open(file, mode="r", buffering=None,
+def open(file, mode="r", buffering=-1,
encoding=None, errors=None,
newline=None, closefd=True):
@@ -155,7 +155,7 @@
raise TypeError("invalid file: %r" % file)
if not isinstance(mode, basestring):
raise TypeError("invalid mode: %r" % mode)
- if buffering is not None and not isinstance(buffering, (int, long)):
+ if not isinstance(buffering, (int, long)):
raise TypeError("invalid buffering: %r" % buffering)
if encoding is not None and not isinstance(encoding, basestring):
raise TypeError("invalid encoding: %r" % encoding)
@@ -192,8 +192,6 @@
(appending and "a" or "") +
(updating and "+" or ""),
closefd)
- if buffering is None:
- buffering = -1
line_buffering = False
if buffering == 1 or buffering < 0 and raw.isatty():
buffering = -1
diff --git a/Misc/NEWS b/Misc/NEWS
index 2c2d2f2..de05472 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -27,6 +27,8 @@
Library
-------
+- Issue #8546: Reject None given as the buffering argument to _pyio.open.
+
- Issue #8549: Fix compiling the _ssl extension under AIX. Patch by
Sridhar Ratnakumar.