[Python-Dev] test_popen broken on Win2K
Oren Tirosh
oren-py-d@hishome.net
Mon, 10 Mar 2003 20:19:20 -0500
On Mon, Mar 10, 2003 at 11:52:39AM +1300, Greg Ewing wrote:
> > Those would be quite different functions, then, unless you proposed to have
> > Python interpret native shell metacharacters on its own too (e.g., set up
> > pipes, do the indicated file redirections, interpolate envars, and fake
> > whatever other shell gimmicks people may use).
>
> What we need is a function which does all those things,
> but uses some way of specifying them *other* than shell
> metacharacters. E.g.
>
> os.plumb(("sed", "-e", "s/dead/resting/", "parrots"),
> ("grep", "norwegian"), output = myfile))
How about this:
cmd.sed('-e', 's/dead/resting', 'parrots') / cmd.grep('norwegian') >> myfile
or this:
def mygrep(pattern):
def tran(upstream):
for s in upstream:
if re.search(pattern, s):
yield s
return transformation(tran)
open('parrots') / (lambda s:s.replace('dead','resting')) / mygrep('norwegian')) >> open('myfile', 'w')
This is not some hypothetical syntax - I have a module that actually
does this. It can mix python functions, generators and external commands
in the same flow, use any iterable object as source, use a file, list
or other data consumer as destination and a few more goodies.
It's not finished but it mostly works. I don't have much time to
work on it, though.
oh-dear-what-have-I-done-now-I'll-have-to-finish-it-ly yours,
Oren