[Python-ideas] Adding a subprocess.CompletedProcess class (original) (raw)
Wes Turner wes.turner at gmail.com
Sun Feb 1 17:29:05 CET 2015
- Previous message: [Python-ideas] Adding a subprocess.CompletedProcess class
- Next message: [Python-ideas] Adding a subprocess.CompletedProcess class
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Sun, Feb 1, 2015 at 7:48 AM, Paul Moore <p.f.moore at gmail.com> wrote:
29 January 2015 at 21:09, Thomas Kluyver <thomas at kluyver.me.uk> wrote: > On 29 January 2015 at 03:47, Nick Coghlan <ncoghlan at gmail.com> wrote: >> >> I still suspect we should be offering a simpler way to decouple the >> creation of the pipes from the subprocess call, but I have no idea >> what that API should look like, > > > Presumably that would need some kind of object representing a > not-yet-started process.
http://sarge.readthedocs.org/en/latest/reference.html#Pipeline
p = sarge.run('sleep 60', async=True) assert type(p) == sarge.Pipeline
Technically, that could be Popen, but for backwards > compatibility the Popen constructor needs to start the process, and p = > Popen(..., start=False) seems inelegant.
The thing I've ended up needing to do once or twice, which is unreasonably hard with subprocess, is to run the command and capture the output, but still write it to stdout/stderr. So the user gets to see the command's progress, but you can introspect the results afterwards.
The hard bit is to do this while still displaying the output as it arrives. You basically need to manage the stdout and stderr pipes yourself, do nasty multi-stream interleaving, and deal with the encoding/universalnewlines stuff on the captured data. In a cross-platform way :-(
http://sarge.readthedocs.org/en/latest/tutorial.html#buffering-issues
'| tee filename.log' -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-ideas/attachments/20150201/8d659e9f/attachment.html>
- Previous message: [Python-ideas] Adding a subprocess.CompletedProcess class
- Next message: [Python-ideas] Adding a subprocess.CompletedProcess class
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]