Commit 109d5735 authored by Florent Xicluna's avatar Florent Xicluna

Issue #13248: io: Remove obsolete argument "max_buffer_size" of BufferedWriter and BufferedRWPair.

parent af1adbee
...@@ -604,8 +604,6 @@ than raw I/O does. ...@@ -604,8 +604,6 @@ than raw I/O does.
*raw* stream. If the *buffer_size* is not given, it defaults to *raw* stream. If the *buffer_size* is not given, it defaults to
:data:`DEFAULT_BUFFER_SIZE`. :data:`DEFAULT_BUFFER_SIZE`.
A third argument, *max_buffer_size*, is supported, but unused and deprecated.
:class:`BufferedWriter` provides or overrides these methods in addition to :class:`BufferedWriter` provides or overrides these methods in addition to
those from :class:`BufferedIOBase` and :class:`IOBase`: those from :class:`BufferedIOBase` and :class:`IOBase`:
...@@ -631,8 +629,6 @@ than raw I/O does. ...@@ -631,8 +629,6 @@ than raw I/O does.
in the first argument. If the *buffer_size* is omitted it defaults to in the first argument. If the *buffer_size* is omitted it defaults to
:data:`DEFAULT_BUFFER_SIZE`. :data:`DEFAULT_BUFFER_SIZE`.
A third argument, *max_buffer_size*, is supported, but unused and deprecated.
:class:`BufferedRandom` is capable of anything :class:`BufferedReader` or :class:`BufferedRandom` is capable of anything :class:`BufferedReader` or
:class:`BufferedWriter` can do. :class:`BufferedWriter` can do.
...@@ -647,9 +643,6 @@ than raw I/O does. ...@@ -647,9 +643,6 @@ than raw I/O does.
writeable respectively. If the *buffer_size* is omitted it defaults to writeable respectively. If the *buffer_size* is omitted it defaults to
:data:`DEFAULT_BUFFER_SIZE`. :data:`DEFAULT_BUFFER_SIZE`.
A fourth argument, *max_buffer_size*, is supported, but unused and
deprecated.
:class:`BufferedRWPair` implements all of :class:`BufferedIOBase`\'s methods :class:`BufferedRWPair` implements all of :class:`BufferedIOBase`\'s methods
except for :meth:`~BufferedIOBase.detach`, which raises except for :meth:`~BufferedIOBase.detach`, which raises
:exc:`UnsupportedOperation`. :exc:`UnsupportedOperation`.
......
...@@ -5,7 +5,6 @@ Python implementation of the io module. ...@@ -5,7 +5,6 @@ Python implementation of the io module.
import os import os
import abc import abc
import codecs import codecs
import warnings
import errno import errno
# Import _thread instead of threading to reduce startup cost # Import _thread instead of threading to reduce startup cost
try: try:
...@@ -1065,19 +1064,13 @@ class BufferedWriter(_BufferedIOMixin): ...@@ -1065,19 +1064,13 @@ class BufferedWriter(_BufferedIOMixin):
DEFAULT_BUFFER_SIZE. DEFAULT_BUFFER_SIZE.
""" """
_warning_stack_offset = 2 def __init__(self, raw, buffer_size=DEFAULT_BUFFER_SIZE):
def __init__(self, raw,
buffer_size=DEFAULT_BUFFER_SIZE, max_buffer_size=None):
if not raw.writable(): if not raw.writable():
raise IOError('"raw" argument must be writable.') raise IOError('"raw" argument must be writable.')
_BufferedIOMixin.__init__(self, raw) _BufferedIOMixin.__init__(self, raw)
if buffer_size <= 0: if buffer_size <= 0:
raise ValueError("invalid buffer size") raise ValueError("invalid buffer size")
if max_buffer_size is not None:
warnings.warn("max_buffer_size is deprecated", DeprecationWarning,
self._warning_stack_offset)
self.buffer_size = buffer_size self.buffer_size = buffer_size
self._write_buf = bytearray() self._write_buf = bytearray()
self._write_lock = Lock() self._write_lock = Lock()
...@@ -1167,15 +1160,11 @@ class BufferedRWPair(BufferedIOBase): ...@@ -1167,15 +1160,11 @@ class BufferedRWPair(BufferedIOBase):
# XXX The usefulness of this (compared to having two separate IO # XXX The usefulness of this (compared to having two separate IO
# objects) is questionable. # objects) is questionable.
def __init__(self, reader, writer, def __init__(self, reader, writer, buffer_size=DEFAULT_BUFFER_SIZE):
buffer_size=DEFAULT_BUFFER_SIZE, max_buffer_size=None):
"""Constructor. """Constructor.
The arguments are two RawIO instances. The arguments are two RawIO instances.
""" """
if max_buffer_size is not None:
warnings.warn("max_buffer_size is deprecated", DeprecationWarning, 2)
if not reader.readable(): if not reader.readable():
raise IOError('"reader" argument must be readable.') raise IOError('"reader" argument must be readable.')
...@@ -1232,13 +1221,10 @@ class BufferedRandom(BufferedWriter, BufferedReader): ...@@ -1232,13 +1221,10 @@ class BufferedRandom(BufferedWriter, BufferedReader):
defaults to DEFAULT_BUFFER_SIZE. defaults to DEFAULT_BUFFER_SIZE.
""" """
_warning_stack_offset = 3 def __init__(self, raw, buffer_size=DEFAULT_BUFFER_SIZE):
def __init__(self, raw,
buffer_size=DEFAULT_BUFFER_SIZE, max_buffer_size=None):
raw._checkSeekable() raw._checkSeekable()
BufferedReader.__init__(self, raw, buffer_size) BufferedReader.__init__(self, raw, buffer_size)
BufferedWriter.__init__(self, raw, buffer_size, max_buffer_size) BufferedWriter.__init__(self, raw, buffer_size)
def seek(self, pos, whence=0): def seek(self, pos, whence=0):
if whence not in valid_seek_flags: if whence not in valid_seek_flags:
......
...@@ -1255,9 +1255,8 @@ class BufferedWriterTest(unittest.TestCase, CommonBufferedTests): ...@@ -1255,9 +1255,8 @@ class BufferedWriterTest(unittest.TestCase, CommonBufferedTests):
self.assertRaises(IOError, bufio.tell) self.assertRaises(IOError, bufio.tell)
self.assertRaises(IOError, bufio.write, b"abcdef") self.assertRaises(IOError, bufio.write, b"abcdef")
def test_max_buffer_size_deprecation(self): def test_max_buffer_size_removal(self):
with support.check_warnings(("max_buffer_size is deprecated", with self.assertRaises(TypeError):
DeprecationWarning)):
self.tp(self.MockRawIO(), 8, 12) self.tp(self.MockRawIO(), 8, 12)
...@@ -1313,9 +1312,8 @@ class BufferedRWPairTest(unittest.TestCase): ...@@ -1313,9 +1312,8 @@ class BufferedRWPairTest(unittest.TestCase):
pair = self.tp(self.MockRawIO(), self.MockRawIO()) pair = self.tp(self.MockRawIO(), self.MockRawIO())
self.assertRaises(self.UnsupportedOperation, pair.detach) self.assertRaises(self.UnsupportedOperation, pair.detach)
def test_constructor_max_buffer_size_deprecation(self): def test_constructor_max_buffer_size_removal(self):
with support.check_warnings(("max_buffer_size is deprecated", with self.assertRaises(TypeError):
DeprecationWarning)):
self.tp(self.MockRawIO(), self.MockRawIO(), 8, 12) self.tp(self.MockRawIO(), self.MockRawIO(), 8, 12)
def test_constructor_with_not_readable(self): def test_constructor_with_not_readable(self):
......
...@@ -23,6 +23,9 @@ Core and Builtins ...@@ -23,6 +23,9 @@ Core and Builtins
Library Library
------- -------
- Issue #13248: Remove obsolete argument "max_buffer_size" of BufferedWriter
and BufferedRWPair, from the io module.
- Issue #13248: Remove obsolete argument "version" of argparse.ArgumentParser. - Issue #13248: Remove obsolete argument "version" of argparse.ArgumentParser.
- Issue #14814: implement more consistent ordering and sorting behaviour - Issue #14814: implement more consistent ordering and sorting behaviour
......
...@@ -1759,15 +1759,6 @@ PyTypeObject PyBufferedReader_Type = { ...@@ -1759,15 +1759,6 @@ PyTypeObject PyBufferedReader_Type = {
static int
complain_about_max_buffer_size(void)
{
if (PyErr_WarnEx(PyExc_DeprecationWarning,
"max_buffer_size is deprecated", 1) < 0)
return 0;
return 1;
}
/* /*
* class BufferedWriter * class BufferedWriter
*/ */
...@@ -1776,7 +1767,7 @@ PyDoc_STRVAR(bufferedwriter_doc, ...@@ -1776,7 +1767,7 @@ PyDoc_STRVAR(bufferedwriter_doc,
"\n" "\n"
"The constructor creates a BufferedWriter for the given writeable raw\n" "The constructor creates a BufferedWriter for the given writeable raw\n"
"stream. If the buffer_size is not given, it defaults to\n" "stream. If the buffer_size is not given, it defaults to\n"
"DEFAULT_BUFFER_SIZE. max_buffer_size isn't used anymore.\n" "DEFAULT_BUFFER_SIZE.\n"
); );
static void static void
...@@ -1789,23 +1780,18 @@ _bufferedwriter_reset_buf(buffered *self) ...@@ -1789,23 +1780,18 @@ _bufferedwriter_reset_buf(buffered *self)
static int static int
bufferedwriter_init(buffered *self, PyObject *args, PyObject *kwds) bufferedwriter_init(buffered *self, PyObject *args, PyObject *kwds)
{ {
/* TODO: properly deprecate max_buffer_size */ char *kwlist[] = {"raw", "buffer_size", NULL};
char *kwlist[] = {"raw", "buffer_size", "max_buffer_size", NULL};
Py_ssize_t buffer_size = DEFAULT_BUFFER_SIZE; Py_ssize_t buffer_size = DEFAULT_BUFFER_SIZE;
Py_ssize_t max_buffer_size = -234;
PyObject *raw; PyObject *raw;
self->ok = 0; self->ok = 0;
self->detached = 0; self->detached = 0;
if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|nn:BufferedReader", kwlist, if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|n:BufferedReader", kwlist,
&raw, &buffer_size, &max_buffer_size)) { &raw, &buffer_size)) {
return -1; return -1;
} }
if (max_buffer_size != -234 && !complain_about_max_buffer_size())
return -1;
if (_PyIOBase_check_writable(raw, Py_True) == NULL) if (_PyIOBase_check_writable(raw, Py_True) == NULL)
return -1; return -1;
...@@ -2186,16 +2172,12 @@ bufferedrwpair_init(rwpair *self, PyObject *args, PyObject *kwds) ...@@ -2186,16 +2172,12 @@ bufferedrwpair_init(rwpair *self, PyObject *args, PyObject *kwds)
{ {
PyObject *reader, *writer; PyObject *reader, *writer;
Py_ssize_t buffer_size = DEFAULT_BUFFER_SIZE; Py_ssize_t buffer_size = DEFAULT_BUFFER_SIZE;
Py_ssize_t max_buffer_size = -234;
if (!PyArg_ParseTuple(args, "OO|nn:BufferedRWPair", &reader, &writer, if (!PyArg_ParseTuple(args, "OO|n:BufferedRWPair", &reader, &writer,
&buffer_size, &max_buffer_size)) { &buffer_size)) {
return -1; return -1;
} }
if (max_buffer_size != -234 && !complain_about_max_buffer_size())
return -1;
if (_PyIOBase_check_readable(reader, Py_True) == NULL) if (_PyIOBase_check_readable(reader, Py_True) == NULL)
return -1; return -1;
if (_PyIOBase_check_writable(writer, Py_True) == NULL) if (_PyIOBase_check_writable(writer, Py_True) == NULL)
...@@ -2420,28 +2402,24 @@ PyDoc_STRVAR(bufferedrandom_doc, ...@@ -2420,28 +2402,24 @@ PyDoc_STRVAR(bufferedrandom_doc,
"\n" "\n"
"The constructor creates a reader and writer for a seekable stream,\n" "The constructor creates a reader and writer for a seekable stream,\n"
"raw, given in the first argument. If the buffer_size is omitted it\n" "raw, given in the first argument. If the buffer_size is omitted it\n"
"defaults to DEFAULT_BUFFER_SIZE. max_buffer_size isn't used anymore.\n" "defaults to DEFAULT_BUFFER_SIZE.\n"
); );
static int static int
bufferedrandom_init(buffered *self, PyObject *args, PyObject *kwds) bufferedrandom_init(buffered *self, PyObject *args, PyObject *kwds)
{ {
char *kwlist[] = {"raw", "buffer_size", "max_buffer_size", NULL}; char *kwlist[] = {"raw", "buffer_size", NULL};
Py_ssize_t buffer_size = DEFAULT_BUFFER_SIZE; Py_ssize_t buffer_size = DEFAULT_BUFFER_SIZE;
Py_ssize_t max_buffer_size = -234;
PyObject *raw; PyObject *raw;
self->ok = 0; self->ok = 0;
self->detached = 0; self->detached = 0;
if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|nn:BufferedReader", kwlist, if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|n:BufferedReader", kwlist,
&raw, &buffer_size, &max_buffer_size)) { &raw, &buffer_size)) {
return -1; return -1;
} }
if (max_buffer_size != -234 && !complain_about_max_buffer_size())
return -1;
if (_PyIOBase_check_seekable(raw, Py_True) == NULL) if (_PyIOBase_check_seekable(raw, Py_True) == NULL)
return -1; return -1;
if (_PyIOBase_check_readable(raw, Py_True) == NULL) if (_PyIOBase_check_readable(raw, Py_True) == NULL)
......
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