New submission from François Granade <[email protected]>:
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 <[email protected]>
<http://bugs.python.org/issue8198>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com