Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 109d573

Browse files
committed
Issue #13248: io: Remove obsolete argument "max_buffer_size" of BufferedWriter and BufferedRWPair.
1 parent af1adbe commit 109d573

5 files changed

Lines changed: 21 additions & 63 deletions

File tree

Doc/library/io.rst

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -604,8 +604,6 @@ than raw I/O does.
604604
*raw* stream. If the *buffer_size* is not given, it defaults to
605605
:data:`DEFAULT_BUFFER_SIZE`.
606606

607-
A third argument, *max_buffer_size*, is supported, but unused and deprecated.
608-
609607
:class:`BufferedWriter` provides or overrides these methods in addition to
610608
those from :class:`BufferedIOBase` and :class:`IOBase`:
611609

@@ -631,8 +629,6 @@ than raw I/O does.
631629
in the first argument. If the *buffer_size* is omitted it defaults to
632630
:data:`DEFAULT_BUFFER_SIZE`.
633631

634-
A third argument, *max_buffer_size*, is supported, but unused and deprecated.
635-
636632
:class:`BufferedRandom` is capable of anything :class:`BufferedReader` or
637633
:class:`BufferedWriter` can do.
638634

@@ -647,9 +643,6 @@ than raw I/O does.
647643
writeable respectively. If the *buffer_size* is omitted it defaults to
648644
:data:`DEFAULT_BUFFER_SIZE`.
649645

650-
A fourth argument, *max_buffer_size*, is supported, but unused and
651-
deprecated.
652-
653646
:class:`BufferedRWPair` implements all of :class:`BufferedIOBase`\'s methods
654647
except for :meth:`~BufferedIOBase.detach`, which raises
655648
:exc:`UnsupportedOperation`.

Lib/_pyio.py

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import os
66
import abc
77
import codecs
8-
import warnings
98
import errno
109
# Import _thread instead of threading to reduce startup cost
1110
try:
@@ -1065,19 +1064,13 @@ class BufferedWriter(_BufferedIOMixin):
10651064
DEFAULT_BUFFER_SIZE.
10661065
"""
10671066

1068-
_warning_stack_offset = 2
1069-
1070-
def __init__(self, raw,
1071-
buffer_size=DEFAULT_BUFFER_SIZE, max_buffer_size=None):
1067+
def __init__(self, raw, buffer_size=DEFAULT_BUFFER_SIZE):
10721068
if not raw.writable():
10731069
raise IOError('"raw" argument must be writable.')
10741070

10751071
_BufferedIOMixin.__init__(self, raw)
10761072
if buffer_size <= 0:
10771073
raise ValueError("invalid buffer size")
1078-
if max_buffer_size is not None:
1079-
warnings.warn("max_buffer_size is deprecated", DeprecationWarning,
1080-
self._warning_stack_offset)
10811074
self.buffer_size = buffer_size
10821075
self._write_buf = bytearray()
10831076
self._write_lock = Lock()
@@ -1167,15 +1160,11 @@ class BufferedRWPair(BufferedIOBase):
11671160
# XXX The usefulness of this (compared to having two separate IO
11681161
# objects) is questionable.
11691162

1170-
def __init__(self, reader, writer,
1171-
buffer_size=DEFAULT_BUFFER_SIZE, max_buffer_size=None):
1163+
def __init__(self, reader, writer, buffer_size=DEFAULT_BUFFER_SIZE):
11721164
"""Constructor.
11731165
11741166
The arguments are two RawIO instances.
11751167
"""
1176-
if max_buffer_size is not None:
1177-
warnings.warn("max_buffer_size is deprecated", DeprecationWarning, 2)
1178-
11791168
if not reader.readable():
11801169
raise IOError('"reader" argument must be readable.')
11811170

@@ -1232,13 +1221,10 @@ class BufferedRandom(BufferedWriter, BufferedReader):
12321221
defaults to DEFAULT_BUFFER_SIZE.
12331222
"""
12341223

1235-
_warning_stack_offset = 3
1236-
1237-
def __init__(self, raw,
1238-
buffer_size=DEFAULT_BUFFER_SIZE, max_buffer_size=None):
1224+
def __init__(self, raw, buffer_size=DEFAULT_BUFFER_SIZE):
12391225
raw._checkSeekable()
12401226
BufferedReader.__init__(self, raw, buffer_size)
1241-
BufferedWriter.__init__(self, raw, buffer_size, max_buffer_size)
1227+
BufferedWriter.__init__(self, raw, buffer_size)
12421228

12431229
def seek(self, pos, whence=0):
12441230
if whence not in valid_seek_flags:

Lib/test/test_io.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1255,9 +1255,8 @@ def test_misbehaved_io(self):
12551255
self.assertRaises(IOError, bufio.tell)
12561256
self.assertRaises(IOError, bufio.write, b"abcdef")
12571257

1258-
def test_max_buffer_size_deprecation(self):
1259-
with support.check_warnings(("max_buffer_size is deprecated",
1260-
DeprecationWarning)):
1258+
def test_max_buffer_size_removal(self):
1259+
with self.assertRaises(TypeError):
12611260
self.tp(self.MockRawIO(), 8, 12)
12621261

12631262

@@ -1313,9 +1312,8 @@ def test_detach(self):
13131312
pair = self.tp(self.MockRawIO(), self.MockRawIO())
13141313
self.assertRaises(self.UnsupportedOperation, pair.detach)
13151314

1316-
def test_constructor_max_buffer_size_deprecation(self):
1317-
with support.check_warnings(("max_buffer_size is deprecated",
1318-
DeprecationWarning)):
1315+
def test_constructor_max_buffer_size_removal(self):
1316+
with self.assertRaises(TypeError):
13191317
self.tp(self.MockRawIO(), self.MockRawIO(), 8, 12)
13201318

13211319
def test_constructor_with_not_readable(self):

Misc/NEWS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ Core and Builtins
2323
Library
2424
-------
2525

26+
- Issue #13248: Remove obsolete argument "max_buffer_size" of BufferedWriter
27+
and BufferedRWPair, from the io module.
28+
2629
- Issue #13248: Remove obsolete argument "version" of argparse.ArgumentParser.
2730

2831
- Issue #14814: implement more consistent ordering and sorting behaviour

Modules/_io/bufferedio.c

Lines changed: 10 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1759,15 +1759,6 @@ PyTypeObject PyBufferedReader_Type = {
17591759

17601760

17611761

1762-
static int
1763-
complain_about_max_buffer_size(void)
1764-
{
1765-
if (PyErr_WarnEx(PyExc_DeprecationWarning,
1766-
"max_buffer_size is deprecated", 1) < 0)
1767-
return 0;
1768-
return 1;
1769-
}
1770-
17711762
/*
17721763
* class BufferedWriter
17731764
*/
@@ -1776,7 +1767,7 @@ PyDoc_STRVAR(bufferedwriter_doc,
17761767
"\n"
17771768
"The constructor creates a BufferedWriter for the given writeable raw\n"
17781769
"stream. If the buffer_size is not given, it defaults to\n"
1779-
"DEFAULT_BUFFER_SIZE. max_buffer_size isn't used anymore.\n"
1770+
"DEFAULT_BUFFER_SIZE.\n"
17801771
);
17811772

17821773
static void
@@ -1789,23 +1780,18 @@ _bufferedwriter_reset_buf(buffered *self)
17891780
static int
17901781
bufferedwriter_init(buffered *self, PyObject *args, PyObject *kwds)
17911782
{
1792-
/* TODO: properly deprecate max_buffer_size */
1793-
char *kwlist[] = {"raw", "buffer_size", "max_buffer_size", NULL};
1783+
char *kwlist[] = {"raw", "buffer_size", NULL};
17941784
Py_ssize_t buffer_size = DEFAULT_BUFFER_SIZE;
1795-
Py_ssize_t max_buffer_size = -234;
17961785
PyObject *raw;
17971786

17981787
self->ok = 0;
17991788
self->detached = 0;
18001789

1801-
if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|nn:BufferedReader", kwlist,
1802-
&raw, &buffer_size, &max_buffer_size)) {
1790+
if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|n:BufferedReader", kwlist,
1791+
&raw, &buffer_size)) {
18031792
return -1;
18041793
}
18051794

1806-
if (max_buffer_size != -234 && !complain_about_max_buffer_size())
1807-
return -1;
1808-
18091795
if (_PyIOBase_check_writable(raw, Py_True) == NULL)
18101796
return -1;
18111797

@@ -2186,16 +2172,12 @@ bufferedrwpair_init(rwpair *self, PyObject *args, PyObject *kwds)
21862172
{
21872173
PyObject *reader, *writer;
21882174
Py_ssize_t buffer_size = DEFAULT_BUFFER_SIZE;
2189-
Py_ssize_t max_buffer_size = -234;
21902175

2191-
if (!PyArg_ParseTuple(args, "OO|nn:BufferedRWPair", &reader, &writer,
2192-
&buffer_size, &max_buffer_size)) {
2176+
if (!PyArg_ParseTuple(args, "OO|n:BufferedRWPair", &reader, &writer,
2177+
&buffer_size)) {
21932178
return -1;
21942179
}
21952180

2196-
if (max_buffer_size != -234 && !complain_about_max_buffer_size())
2197-
return -1;
2198-
21992181
if (_PyIOBase_check_readable(reader, Py_True) == NULL)
22002182
return -1;
22012183
if (_PyIOBase_check_writable(writer, Py_True) == NULL)
@@ -2420,28 +2402,24 @@ PyDoc_STRVAR(bufferedrandom_doc,
24202402
"\n"
24212403
"The constructor creates a reader and writer for a seekable stream,\n"
24222404
"raw, given in the first argument. If the buffer_size is omitted it\n"
2423-
"defaults to DEFAULT_BUFFER_SIZE. max_buffer_size isn't used anymore.\n"
2405+
"defaults to DEFAULT_BUFFER_SIZE.\n"
24242406
);
24252407

24262408
static int
24272409
bufferedrandom_init(buffered *self, PyObject *args, PyObject *kwds)
24282410
{
2429-
char *kwlist[] = {"raw", "buffer_size", "max_buffer_size", NULL};
2411+
char *kwlist[] = {"raw", "buffer_size", NULL};
24302412
Py_ssize_t buffer_size = DEFAULT_BUFFER_SIZE;
2431-
Py_ssize_t max_buffer_size = -234;
24322413
PyObject *raw;
24332414

24342415
self->ok = 0;
24352416
self->detached = 0;
24362417

2437-
if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|nn:BufferedReader", kwlist,
2438-
&raw, &buffer_size, &max_buffer_size)) {
2418+
if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|n:BufferedReader", kwlist,
2419+
&raw, &buffer_size)) {
24392420
return -1;
24402421
}
24412422

2442-
if (max_buffer_size != -234 && !complain_about_max_buffer_size())
2443-
return -1;
2444-
24452423
if (_PyIOBase_check_seekable(raw, Py_True) == NULL)
24462424
return -1;
24472425
if (_PyIOBase_check_readable(raw, Py_True) == NULL)

0 commit comments

Comments
 (0)