diff --git a/Lib/io.py b/Lib/io.py index 072b756e0da..67049e63b44 100644 --- a/Lib/io.py +++ b/Lib/io.py @@ -925,6 +925,11 @@ class TextIOBase(IOBase): raise StopIteration return line + @property + def encoding(self): + """Subclasses should override.""" + return None + # The following are provided for backwards compatibility def readlines(self, hint=None): @@ -970,6 +975,10 @@ class TextIOWrapper(TextIOBase): self._snapshot = None self._seekable = self._telling = self.buffer.seekable() + @property + def encoding(self): + return self._encoding + # A word about _snapshot. This attribute is either None, or a # tuple (decoder_state, readahead, pending) where decoder_state is # the second (integer) item of the decoder state, readahead is the diff --git a/Lib/site.py b/Lib/site.py index e00890ead97..f7ca83b3805 100644 --- a/Lib/site.py +++ b/Lib/site.py @@ -411,9 +411,9 @@ def installnewio(): def __new__(cls, *args, **kwds): return io.open(*args, **kwds) __builtin__.open = open - sys.stdin = io.open(0, "r") - sys.stdout = io.open(1, "w") - sys.stderr = io.open(2, "w") + sys.__stdin__ = sys.stdin = io.open(0, "r") + sys.__stdout__ = sys.stdout = io.open(1, "w") + sys.__stderr__ = sys.stderr = io.open(2, "w") def main():