Patch from jbalogh fixes issue #2282 (misnamed seekable() method).
diff --git a/Lib/io.py b/Lib/io.py
index 24bf37b..98843d3 100644
--- a/Lib/io.py
+++ b/Lib/io.py
@@ -1203,7 +1203,7 @@
# were rendered by the decoder after feeding it those bytes. We
# use this to reconstruct intermediate decoder states in tell().
- def _seekable(self):
+ def seekable(self):
return self._seekable
def flush(self):
diff --git a/Lib/test/test_io.py b/Lib/test/test_io.py
index 4963416..0bc2b48 100644
--- a/Lib/test/test_io.py
+++ b/Lib/test/test_io.py
@@ -895,6 +895,12 @@
txt.seek(pos)
self.assertEquals(txt.read(4), "BBB\n")
+ def test_issue2282(self):
+ buffer = io.BytesIO(self.testdata)
+ txt = io.TextIOWrapper(buffer, encoding="ascii")
+
+ self.assertEqual(buffer.seekable(), txt.seekable())
+
def test_newline_decoder(self):
import codecs
decoder = codecs.getincrementaldecoder("utf-8")()
diff --git a/Misc/ACKS b/Misc/ACKS
index 0c431c0..1ae773f 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -33,6 +33,7 @@
Stig Bakken
Greg Ball
Luigi Ballabio
+Jeff Balogh
Michael J. Barber
Chris Barker
Quentin Barnes
diff --git a/Misc/NEWS b/Misc/NEWS
index b654516..1665256 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -30,6 +30,8 @@
Core and Builtins
-----------------
+- Issue #2282: io.TextIOWrapper was not overriding seekable() from io.IOBase.
+
- Issue #2115: Important speedup in setting __slot__ attributes. Also
prevent a possible crash: an Abstract Base Class would try to access a slot
on a registered virtual subclass.