[Python-Dev] PEP 324: popen5 - New POSIX process module

Peter Astrand astrand at lysator.liu.se
Tue Jan 6 16:25:51 EST 2004


> The example from the code is:
> 
>     p1 = Popen(["dmesg"], stdout=PIPE)
>     p2 = Popen(["grep", "hda"], stdin=p1.fromchild)
>     result = p2.communicate()[0]
> 
> Some things immediately spring from this:
> 
> 1. stdout=PIPE doesn't feel like it adds anything. It's "obvious" that
>    I want a pipe. But of course there's no way the code realises that
>    unless I say so.
> 2. fromchild doesn't look too nice. I'd prefer to use "stdin=p1.stdout".

You too? :-) I'm almost convinced now that we should really drop this
popen2 syntax...


> 3. communicate() doesn't really describe what it does very well.

Give me some other alternatives...


> Maybe inverting the sense of the argument, and saying pipe=STDOUT, or in
> the case of multiple pipes, pipe=(STDIN, STDOUT), is better. What do
> people think? 

I think this is worse than the current syntax. 


> PS If this becomes a design discussion, is python-dev (or even python-list)
>    appropriate? Would it be better to set up a SIG for this, much like
>    optparse had the getopt-sig for a while?

If there's interest, I can arrange a mailing list in matter of minutes. 


-- 
/Peter Åstrand <astrand at lysator.liu.se>





More information about the Python-Dev mailing list