#8198: the Helper class should not save the stdin and stdout objects

at import time, rather by default use the current streams like the
other APIs that output help.
This commit is contained in:
Georg Brandl 2010-07-31 21:51:48 +00:00
parent bb1901529d
commit 78aa396415
2 changed files with 15 additions and 4 deletions

View File

@ -1695,9 +1695,17 @@ class Helper:
'CONTEXTMANAGERS': ('context-managers', 'with'),
}
def __init__(self, input, output):
self.input = input
self.output = output
def __init__(self, input=None, output=None):
self._input = input
self._output = output
@property
def input(self):
return self._input or sys.stdin
@property
def output(self):
return self._output or sys.stdout
def __repr__(self):
if inspect.stack()[1][3] == '?':
@ -1874,7 +1882,7 @@ Enter any module name to get more help. Or, type "modules spam" to search
for modules whose descriptions contain the word "spam".
''')
help = Helper(sys.stdin, sys.stdout)
help = Helper()
class Scanner:
"""A generic tree iterator."""

View File

@ -15,6 +15,9 @@ Core and Builtins
Library
-------
- Issue #8198: In pydoc, output all help text to the correct stream
when sys.stdout is reassigned.
- Issue #7909: Do not touch paths with the special prefixes ``\\.\``
or ``\\?\`` in ntpath.normpath().