diff -r 646c2388d8f5 Lib/asynchat.py --- a/Lib/asynchat.py Sun Aug 18 12:43:24 2013 +0200 +++ b/Lib/asynchat.py Sun Aug 18 20:45:35 2013 +0300 @@ -69,12 +69,9 @@ # 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 -r 646c2388d8f5 Lib/gzip.py --- a/Lib/gzip.py Sun Aug 18 12:43:24 2013 +0200 +++ b/Lib/gzip.py Sun Aug 18 20:45:35 2013 +0300 @@ -141,7 +141,7 @@ 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 -r 646c2388d8f5 Lib/tempfile.py --- a/Lib/tempfile.py Sun Aug 18 12:43:24 2013 +0200 +++ b/Lib/tempfile.py Sun Aug 18 20:45:35 2013 +0300 @@ -523,7 +523,7 @@ # 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 -r 646c2388d8f5 Lib/test/pickletester.py --- a/Lib/test/pickletester.py Sun Aug 18 12:43:24 2013 +0200 +++ b/Lib/test/pickletester.py Sun Aug 18 20:45:35 2013 +0300 @@ -1552,14 +1552,14 @@ 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 -r 646c2388d8f5 Lib/test/test_httplib.py --- a/Lib/test/test_httplib.py Sun Aug 18 12:43:24 2013 +0200 +++ b/Lib/test/test_httplib.py Sun Aug 18 20:45:35 2013 +0300 @@ -53,8 +53,8 @@ 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. @@ -326,7 +326,7 @@ '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(): @@ -339,7 +339,7 @@ '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 -r 646c2388d8f5 Lib/test/test_logging.py --- a/Lib/test/test_logging.py Sun Aug 18 12:43:24 2013 +0200 +++ b/Lib/test/test_logging.py Sun Aug 18 20:45:35 2013 +0300 @@ -160,15 +160,7 @@ the expected_values list of tuples.""" stream = stream or self.stream pat = re.compile(pat or self.expected_log_pat) - try: - if hasattr(stream, 'reset'): - stream.reset() - elif hasattr(stream, 'seek'): - stream.seek(0) - 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 -r 646c2388d8f5 Tools/gdb/libpython.py --- a/Tools/gdb/libpython.py Sun Aug 18 12:43:24 2013 +0200 +++ b/Tools/gdb/libpython.py Sun Aug 18 20:45:35 2013 +0300 @@ -121,7 +121,7 @@ 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 = ''