
Pipes in Python - sulami
http://sulami.github.io/posts/pipes-in-python/
======
joshuamorton
I've mentioned this before, but both of these are overengineered. You need
only define a custom class that overrides the | operator.

Then you get (from the original article)

    
    
        Pype(Users.find_all) | partial(group_by_category, max=5) | print
    

where you have something like

class Pype: def __init__(self, f): self.f = f

    
    
        def __or__(self, f):
            return type(self)(f(self.f))
    

You need fancier tricks to be able to make the Pipe object transparent, but
its possible.

The approach provided in this article is bad, it tries to reinvent a bunch of
things (the operator module, for itemgetter, and stuff like getattr by
wrapping them in strings.

