TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Pipes in Python

14 pointsby sulamiover 6 years ago

1 comment

joshuamortonover 6 years ago
I&#x27;ve mentioned this before, but both of these are overengineered. You need only define a custom class that overrides the | operator.<p>Then you get (from the original article)<p><pre><code> Pype(Users.find_all) | partial(group_by_category, max=5) | print </code></pre> where you have something like<p>class Pype: def __init__(self, f): self.f = f<p><pre><code> def __or__(self, f): return type(self)(f(self.f)) </code></pre> You need fancier tricks to be able to make the Pipe object transparent, but its possible.<p>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.