diff options
author | Benjamin Peterson <benjamin@python.org> | 2009-03-26 17:10:29 (GMT) |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2009-03-26 17:10:29 (GMT) |
commit | 59406a9d857f3060f21269266a14a778aebf9904 (patch) | |
tree | 30f4ece28889e310b59296a9dfa282bfe9a61ee8 /Lib | |
parent | 1ef7c6bc85988092b7c4b964309b9e3f3a62afd9 (diff) | |
download | cpython-59406a9d857f3060f21269266a14a778aebf9904.zip cpython-59406a9d857f3060f21269266a14a778aebf9904.tar.gz cpython-59406a9d857f3060f21269266a14a778aebf9904.tar.bz2 |
officially deprecated max_buffer_size
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/_pyio.py | 21 | ||||
-rw-r--r-- | Lib/test/test_io.py | 26 |
2 files changed, 38 insertions, 9 deletions
diff --git a/Lib/_pyio.py b/Lib/_pyio.py index 5a7d2ca..654a69c 100644 --- a/Lib/_pyio.py +++ b/Lib/_pyio.py @@ -5,6 +5,7 @@ Python implementation of the io module. import os import abc import codecs +import warnings # Import _thread instead of threading to reduce startup cost try: from _thread import allocate_lock as Lock @@ -960,16 +961,20 @@ class BufferedWriter(_BufferedIOMixin): The constructor creates a BufferedWriter for the given writeable raw stream. If the buffer_size is not given, it defaults to - DEFAULT_BUFFER_SIZE. If max_buffer_size is omitted, it defaults to - twice the buffer size. + DEFAULT_BUFFER_SIZE. """ + _warning_stack_offset = 2 + def __init__(self, raw, buffer_size=DEFAULT_BUFFER_SIZE, max_buffer_size=None): raw._checkWritable() _BufferedIOMixin.__init__(self, raw) if buffer_size <= 0: 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._write_buf = bytearray() self._write_lock = Lock() @@ -1055,8 +1060,7 @@ class BufferedRWPair(BufferedIOBase): reader and writer are RawIOBase objects that are readable and writeable respectively. If the buffer_size is omitted it defaults to - DEFAULT_BUFFER_SIZE. The max_buffer_size (for the buffered writer) - defaults to twice the buffer size. + DEFAULT_BUFFER_SIZE. """ # XXX The usefulness of this (compared to having two separate IO @@ -1068,10 +1072,12 @@ class BufferedRWPair(BufferedIOBase): The arguments are two RawIO instances. """ + if max_buffer_size is not None: + warnings.warn("max_buffer_size is deprecated", DeprecationWarning, 2) reader._checkReadable() writer._checkWritable() self.reader = BufferedReader(reader, buffer_size) - self.writer = BufferedWriter(writer, buffer_size, max_buffer_size) + self.writer = BufferedWriter(writer, buffer_size) def read(self, n=None): if n is None: @@ -1117,10 +1123,11 @@ class BufferedRandom(BufferedWriter, BufferedReader): The constructor creates a reader and writer for a seekable stream, raw, given in the first argument. If the buffer_size is omitted it - defaults to DEFAULT_BUFFER_SIZE. The max_buffer_size (for the buffered - writer) defaults to twice the buffer size. + defaults to DEFAULT_BUFFER_SIZE. """ + _warning_stack_offset = 3 + def __init__(self, raw, buffer_size=DEFAULT_BUFFER_SIZE, max_buffer_size=None): raw._checkSeekable() diff --git a/Lib/test/test_io.py b/Lib/test/test_io.py index ef3fed9..1b80add 100644 --- a/Lib/test/test_io.py +++ b/Lib/test/test_io.py @@ -26,6 +26,7 @@ import array import threading import random import unittest +import warnings import weakref import gc import abc @@ -861,7 +862,7 @@ class BufferedWriterTest(unittest.TestCase, CommonBufferedTests): def test_write_non_blocking(self): raw = self.MockNonBlockWriterIO() - bufio = self.tp(raw, 8, 8) + bufio = self.tp(raw, 8) self.assertEquals(bufio.write(b"abcd"), 4) self.assertEquals(bufio.write(b"efghi"), 5) @@ -979,6 +980,17 @@ class BufferedWriterTest(unittest.TestCase, CommonBufferedTests): self.assertRaises(IOError, bufio.tell) self.assertRaises(IOError, bufio.write, b"abcdef") + def test_max_buffer_size_deprecation(self): + with support.check_warnings() as w: + warnings.simplefilter("always", DeprecationWarning) + self.tp(self.MockRawIO(), 8, 12) + self.assertEqual(len(w.warnings), 1) + warning = w.warnings[0] + self.assertTrue(warning.category is DeprecationWarning) + self.assertEqual(str(warning.message), + "max_buffer_size is deprecated") + + class CBufferedWriterTest(BufferedWriterTest): tp = io.BufferedWriter @@ -1029,6 +1041,16 @@ class BufferedRWPairTest(unittest.TestCase): pair = self.tp(r, w) self.assertFalse(pair.closed) + def test_max_buffer_size_deprecation(self): + with support.check_warnings() as w: + warnings.simplefilter("always", DeprecationWarning) + self.tp(self.MockRawIO(), self.MockRawIO(), 8, 12) + self.assertEqual(len(w.warnings), 1) + warning = w.warnings[0] + self.assertTrue(warning.category is DeprecationWarning) + self.assertEqual(str(warning.message), + "max_buffer_size is deprecated") + # XXX More Tests class CBufferedRWPairTest(BufferedRWPairTest): @@ -1048,7 +1070,7 @@ class BufferedRandomTest(BufferedReaderTest, BufferedWriterTest): def test_read_and_write(self): raw = self.MockRawIO((b"asdf", b"ghjk")) - rw = self.tp(raw, 8, 12) + rw = self.tp(raw, 8) self.assertEqual(b"as", rw.read(2)) rw.write(b"ddd") |