[Python-Dev] [Python-checkins] cpython (3.3): Issue #17860: explicitly mention that std* streams are opened in binary mode by (original) (raw)

R. David Murray rdmurray at bitdance.com
Sat Jul 6 13:59:07 CEST 2013


On Sat, 06 Jul 2013 10:25:19 +0200, ronald.oussoren <python-checkins at python.org> wrote:

http://hg.python.org/cpython/rev/a2c2ffa1a41c changeset: 84453:a2c2ffa1a41c branch: 3.3 parent: 84449:df79735b21c1 user: Ronald Oussoren <ronaldoussoren at mac.com> date: Sat Jul 06 10:23:59 2013 +0200 summary: Issue #17860: explicitly mention that std* streams are opened in binary mode by default.

The documentation does mention that the streams are opened in text mode when univeralnewlines is true, but not that that they are opened in binary mode when that argument is false and that seems to confuse at least some users. files: Doc/library/subprocess.rst | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/Doc/library/subprocess.rst b/Doc/library/subprocess.rst --- a/Doc/library/subprocess.rst +++ b/Doc/library/subprocess.rst @@ -293,7 +293,8 @@ If universalnewlines is True, the file objects stdin, stdout and stderr will be opened as text streams in :term:universal newlines mode using the encoding returned by :func:locale.getpreferredencoding(False)_ _- <locale.getpreferredencoding>. For stdin, line ending characters + <locale.getpreferredencoding>, otherwise these streams will be opened_ _+ as binary streams. For *stdin*, line ending characters_ _``'\n'`` in the input will be converted to the default line separator_ _:data:os.linesep`. For *stdout* and *stderr*, all line endings in the_ _output will be converted to '\n'. For more information see the

IMO, either the default should be mentioned first, or the default should be mentioned in a parenthetical. Otherwise it sounds like newline translation is being done in both modes. Logically that makes no sense, so the above construction will likely lead to, at a minimum, an interruption in the flow for the reader, and at worse even more confusion than not mentioning it at all.

--David



More information about the Python-Dev mailing list