This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author asvetlov
Recipients asvetlov
Date 2012-08-14.15:47:00
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1344959221.38.0.0409924242397.issue15649@psf.upfronthosting.co.za>
In-reply-to
Content
Currently Popen.communicate accept str is universal_newlines==True and bytes if universal_newlines==False.

I like to accept both str and bytes if universal_newlines is False and raise explicit exception for bytes if universal_newlines is True.

Looks like universal_newlines for bytes doesn't make sense, also we prefer to use str everywhere. Bytes should be used if it is really byte-stream or if unicode cannot be passed by some limitations of underlying OS etc.

There are couple dark corners:
1. What to do if stdin doesn't have `encoding` attribute? Convert to bytes using filesystemencoding? Raise explicit exception? Adding `encode` parameter for .communicate doesn't looks elegant.
2. How .communicate works on Windows? I see completely different implementation of this method for win32.
History
Date User Action Args
2012-08-14 15:47:01asvetlovsetrecipients: + asvetlov
2012-08-14 15:47:01asvetlovsetmessageid: <1344959221.38.0.0409924242397.issue15649@psf.upfronthosting.co.za>
2012-08-14 15:47:00asvetlovlinkissue15649 messages
2012-08-14 15:47:00asvetlovcreate