Skip to content

Comment on Pipes in Python

Comments

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.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.