From 50254c57cd7a562441b7ff385d59c0255301f3ff Mon Sep 17 00:00:00 2001 From: Serhiy Storchaka Date: Thu, 29 Aug 2013 11:35:43 +0300 Subject: [PATCH] Issue #18743: Fix references to non-existant "StringIO" module in docstrings and comments. --- Lib/asynchat.py | 9 +++------ Lib/gzip.py | 2 +- Lib/tempfile.py | 2 +- Lib/test/pickletester.py | 4 ++-- Lib/test/test_httplib.py | 8 ++++---- Lib/test/test_logging.py | 7 +------ Misc/NEWS | 2 ++ Tools/gdb/libpython.py | 2 +- 8 files changed, 15 insertions(+), 21 deletions(-) diff --git a/Lib/asynchat.py b/Lib/asynchat.py index 4e26bb5856d..eea3418762d 100644 --- a/Lib/asynchat.py +++ b/Lib/asynchat.py @@ -69,12 +69,9 @@ class async_chat (asyncore.dispatcher): # for string terminator matching self.ac_in_buffer = b'' - # we use a list here rather than cStringIO for a few reasons... - # del lst[:] is faster than sio.truncate(0) - # lst = [] is faster than sio.truncate(0) - # cStringIO will be gaining unicode support in py3k, which - # will negatively affect the performance of bytes compared to - # a ''.join() equivalent + # we use a list here rather than io.BytesIO for a few reasons... + # del lst[:] is faster than bio.truncate(0) + # lst = [] is faster than bio.truncate(0) self.incoming = [] # we toss the use of the "simple producer" and replace it with diff --git a/Lib/gzip.py b/Lib/gzip.py index 67fe1d47c74..2fd03fa747f 100644 --- a/Lib/gzip.py +++ b/Lib/gzip.py @@ -144,7 +144,7 @@ class GzipFile(io.BufferedIOBase): non-trivial value. The new class instance is based on fileobj, which can be a regular - file, a StringIO object, or any other object which simulates a file. + file, an io.BytesIO object, or any other object which simulates a file. It defaults to None, in which case filename is opened to provide a file object. diff --git a/Lib/tempfile.py b/Lib/tempfile.py index ed5c857a1df..8a165ed1c1d 100644 --- a/Lib/tempfile.py +++ b/Lib/tempfile.py @@ -521,7 +521,7 @@ class SpooledTemporaryFile: # The method caching trick from NamedTemporaryFile # won't work here, because _file may change from a - # _StringIO instance to a real file. So we list + # BytesIO/StringIO instance to a real file. So we list # all the methods directly. # Context management protocol diff --git a/Lib/test/pickletester.py b/Lib/test/pickletester.py index 342346291ed..052290d7640 100644 --- a/Lib/test/pickletester.py +++ b/Lib/test/pickletester.py @@ -1547,14 +1547,14 @@ class AbstractPicklerUnpicklerObjectTests(unittest.TestCase): pickler.dump(data) first_pickled = f.getvalue() - # Reset StringIO object. + # Reset BytesIO object. f.seek(0) f.truncate() pickler.dump(data) second_pickled = f.getvalue() - # Reset the Pickler and StringIO objects. + # Reset the Pickler and BytesIO objects. pickler.clear_memo() f.seek(0) f.truncate() diff --git a/Lib/test/test_httplib.py b/Lib/test/test_httplib.py index 863e4bc22bc..769ab13fca7 100644 --- a/Lib/test/test_httplib.py +++ b/Lib/test/test_httplib.py @@ -51,8 +51,8 @@ class EPipeSocket(FakeSocket): def close(self): pass -class NoEOFStringIO(io.BytesIO): - """Like StringIO, but raises AssertionError on EOF. +class NoEOFBytesIO(io.BytesIO): + """Like BytesIO, but raises AssertionError on EOF. This is used below to test that http.client doesn't try to read more from the underlying file than it should. @@ -324,7 +324,7 @@ class BasicTest(TestCase): 'HTTP/1.1 200 OK\r\n' 'Content-Length: 14432\r\n' '\r\n', - NoEOFStringIO) + NoEOFBytesIO) resp = client.HTTPResponse(sock, method="HEAD") resp.begin() if resp.read(): @@ -337,7 +337,7 @@ class BasicTest(TestCase): 'HTTP/1.1 200 OK\r\n' 'Content-Length: 14432\r\n' '\r\n', - NoEOFStringIO) + NoEOFBytesIO) resp = client.HTTPResponse(sock, method="HEAD") resp.begin() b = bytearray(5) diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py index c9a051ae9f5..ae4ca184442 100644 --- a/Lib/test/test_logging.py +++ b/Lib/test/test_logging.py @@ -156,12 +156,7 @@ class BaseTest(unittest.TestCase): the expected_values list of tuples.""" stream = stream or self.stream pat = re.compile(self.expected_log_pat) - try: - stream.reset() - actual_lines = stream.readlines() - except AttributeError: - # StringIO.StringIO lacks a reset() method. - actual_lines = stream.getvalue().splitlines() + actual_lines = stream.getvalue().splitlines() self.assertEqual(len(actual_lines), len(expected_values)) for actual, expected in zip(actual_lines, expected_values): match = pat.search(actual) diff --git a/Misc/NEWS b/Misc/NEWS index ea44b00bdc2..be2dc9dde81 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -360,6 +360,8 @@ Tests Documentation ------------- +- Issue #18743: Fix references to non-existant "StringIO" module. + - Issue #18783: Removed existing mentions of Python long type in docstrings, error messages and comments. diff --git a/Tools/gdb/libpython.py b/Tools/gdb/libpython.py index 9f5e8b4e2c3..a85f50595cb 100644 --- a/Tools/gdb/libpython.py +++ b/Tools/gdb/libpython.py @@ -121,7 +121,7 @@ class StringTruncated(RuntimeError): pass class TruncatedStringIO(object): - '''Similar to cStringIO, but can truncate the output by raising a + '''Similar to io.StringIO, but can truncate the output by raising a StringTruncated exception''' def __init__(self, maxlen=None): self._val = ''