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)