Commit a9bd6d5e authored by Benjamin Peterson's avatar Benjamin Peterson

reject None as the buffering argument like the C implementation does #8546

parent 1dc6b08f
...@@ -61,7 +61,7 @@ Module Interface ...@@ -61,7 +61,7 @@ Module Interface
classes. :func:`.open` uses the file's blksize (as obtained by classes. :func:`.open` uses the file's blksize (as obtained by
:func:`os.stat`) if possible. :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, Open *file* and return a corresponding stream. If the file cannot be opened,
an :exc:`IOError` is raised. an :exc:`IOError` is raised.
......
...@@ -40,7 +40,7 @@ class BlockingIOError(IOError): ...@@ -40,7 +40,7 @@ class BlockingIOError(IOError):
self.characters_written = characters_written self.characters_written = characters_written
def open(file, mode="r", buffering=None, def open(file, mode="r", buffering=-1,
encoding=None, errors=None, encoding=None, errors=None,
newline=None, closefd=True): newline=None, closefd=True):
...@@ -155,7 +155,7 @@ def open(file, mode="r", buffering=None, ...@@ -155,7 +155,7 @@ def open(file, mode="r", buffering=None,
raise TypeError("invalid file: %r" % file) raise TypeError("invalid file: %r" % file)
if not isinstance(mode, basestring): if not isinstance(mode, basestring):
raise TypeError("invalid mode: %r" % mode) 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) raise TypeError("invalid buffering: %r" % buffering)
if encoding is not None and not isinstance(encoding, basestring): if encoding is not None and not isinstance(encoding, basestring):
raise TypeError("invalid encoding: %r" % encoding) raise TypeError("invalid encoding: %r" % encoding)
...@@ -192,8 +192,6 @@ def open(file, mode="r", buffering=None, ...@@ -192,8 +192,6 @@ def open(file, mode="r", buffering=None,
(appending and "a" or "") + (appending and "a" or "") +
(updating and "+" or ""), (updating and "+" or ""),
closefd) closefd)
if buffering is None:
buffering = -1
line_buffering = False line_buffering = False
if buffering == 1 or buffering < 0 and raw.isatty(): if buffering == 1 or buffering < 0 and raw.isatty():
buffering = -1 buffering = -1
......
...@@ -27,6 +27,8 @@ Core and Builtins ...@@ -27,6 +27,8 @@ Core and Builtins
Library Library
------- -------
- Issue #8546: Reject None given as the buffering argument to _pyio.open.
- Issue #8549: Fix compiling the _ssl extension under AIX. Patch by - Issue #8549: Fix compiling the _ssl extension under AIX. Patch by
Sridhar Ratnakumar. Sridhar Ratnakumar.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment