From fc3436becdc2b0c214afc2d9190e4114fb1a5254 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Thu, 24 May 2007 17:58:06 +0000 Subject: [PATCH] Add an encoding property to TextIOBase instances. Add sys.__std{in,out,err}__. Make test_sys pass. --- Lib/io.py | 9 +++++++++ Lib/site.py | 6 +++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/Lib/io.py b/Lib/io.py index 072b756e0d..67049e63b4 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 e00890ead9..f7ca83b380 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(): -- 2.50.1