Insist that the argument to TextIOWrapper.write() is a basestring
instance. This was effectively already the case, but the error
reporting was lousy.
diff --git a/Lib/io.py b/Lib/io.py
index 7aa79ce..375ae6e 100644
--- a/Lib/io.py
+++ b/Lib/io.py
@@ -1093,6 +1093,9 @@
def write(self, s: str):
if self.closed:
raise ValueError("write to closed file")
+ if not isinstance(s, basestring):
+ raise TypeError("can't write %s to text stream" %
+ s.__class__.__name__)
haslf = "\n" in s
if haslf and self._writetranslate and self._writenl != "\n":
s = s.replace("\n", self._writenl)