[New-bugs-announce] [issue8198] Importing pydoc and overwriting sys.stdout, causes one char to be sent to the console when calling help()
François Granade
report at bugs.python.org
Mon Mar 22 06:22:04 CET 2010
New submission from François Granade <francois at granade.com>:
When the "pydoc" module is imported, and the sys.stdout is overwriten, a end-of-line is sent to the console (on sdtout) when the help() function is sent.
to reproduce (this is on Python 2.5 but the same happens on Pythjon 3.1):
bash-3.2$ python2.5 -c "import pydoc; import sys; from StringIO import StringIO; sys.stdout = StringIO(); help(sys)"
bash-3.2$
(note the one empty line)
whereas:
bash-3.2$ python2.5 -c "import sys; from StringIO import StringIO; sys.stdout = StringIO(); help(sys)"
bash-3.2$
(no empty line)
The funny thing is that the difference only occurs if sys.stdout is redirected; if it is not, importing pydoc doesn't change anything to the output:
bash-3.2$ python2.5 -c "import pydoc; import sys; help(sys)" | wc
256 1298 10690
bash-3.2$ python2.5 -c "import sys; help(sys)" | wc
256 1298 10690
bash-3.2$
Note that this is related to 1700304, but is actually *one specific case* since *only one character* is not redirected - I would expect them all or none
----------
components: Library (Lib)
messages: 101479
nosy: farialima
severity: normal
status: open
title: Importing pydoc and overwriting sys.stdout, causes one char to be sent to the console when calling help()
versions: Python 2.5, Python 2.6, Python 2.7, Python 3.1
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue8198>
_______________________________________
More information about the New-bugs-announce
mailing list