Commit fc3436be authored by Guido van Rossum's avatar Guido van Rossum

Add an encoding property to TextIOBase instances.

Add sys.__std{in,out,err}__.
Make test_sys pass.
parent 75d6f1a2
...@@ -925,6 +925,11 @@ class TextIOBase(IOBase): ...@@ -925,6 +925,11 @@ class TextIOBase(IOBase):
raise StopIteration raise StopIteration
return line return line
@property
def encoding(self):
"""Subclasses should override."""
return None
# The following are provided for backwards compatibility # The following are provided for backwards compatibility
def readlines(self, hint=None): def readlines(self, hint=None):
...@@ -970,6 +975,10 @@ class TextIOWrapper(TextIOBase): ...@@ -970,6 +975,10 @@ class TextIOWrapper(TextIOBase):
self._snapshot = None self._snapshot = None
self._seekable = self._telling = self.buffer.seekable() 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 # A word about _snapshot. This attribute is either None, or a
# tuple (decoder_state, readahead, pending) where decoder_state is # tuple (decoder_state, readahead, pending) where decoder_state is
# the second (integer) item of the decoder state, readahead is the # the second (integer) item of the decoder state, readahead is the
......
...@@ -411,9 +411,9 @@ def installnewio(): ...@@ -411,9 +411,9 @@ def installnewio():
def __new__(cls, *args, **kwds): def __new__(cls, *args, **kwds):
return io.open(*args, **kwds) return io.open(*args, **kwds)
__builtin__.open = open __builtin__.open = open
sys.stdin = io.open(0, "r") sys.__stdin__ = sys.stdin = io.open(0, "r")
sys.stdout = io.open(1, "w") sys.__stdout__ = sys.stdout = io.open(1, "w")
sys.stderr = io.open(2, "w") sys.__stderr__ = sys.stderr = io.open(2, "w")
def main(): def main():
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment