
Hi, I have a blog entry, http://paddy3118.blogspot.com/2009/05/pipe-fitting-with-python-generators.ht..., in which I define a helper function to get around the problem of reversion in the nesting of generators and the proliferation of nested brackets. See the blog entry for a fuller treatment, but in essence if you have a series of generators, and want the data to conceptually flow like this: gen1 -> gen2 -> gen3 -> gen4 ... You have to write: ...(gen4(gen3(gen2(gen1()))))... With pipe, you would write: pipe(gen1, gen2, gen3, gen4, ...) Which you could use like this: for data in pipe(...): do_something_with_data() If I use dots for indentation, then maybe the definition will come through to the group: def pipe(*cmds): ....gen = cmds[0] ....for cmd in cmds[1:]: ....... gen = cmd(gen) ....for x in gen: ....... yield x A couple of readers thought that it might be a good tool for itertools to have. There are other solutions out there that use classes to overload '|', or, but it seems more natural to me to use pipe(), even though I am a heavy Unix user. Please discuss.