[Twisted-Python] tee method in twisted.internet.defer.py ?
exarkun at twistedmatrix.com
exarkun at twistedmatrix.com
Tue Nov 17 08:45:01 MST 2009
On 03:33 pm, terry at jon.es wrote:
>Is there a reason why the Deferred class doesn't have a tee method like
>the
>following (untested)?
>
> def tee(self, d):
> def _cb(arg):
> d.callback(arg)
> return arg
>
> def _eb(arg):
> d.errback(arg)
> return arg
>
> return self.addCallbacks(_cb, _eb)
>
>I suppose it could be called teeDeferred to correspond to
>chainDeferred.
>And I guess it's clear what it does and why it's quite different from
>chainDeferred. I at least would find it quite useful.
We implemented this 5 or 6 times at Divmod. The most recent incarnation
looks like this:
http://divmod.org/trac/browser/trunk/Epsilon/epsilon/pending.py
I admit that I'd probably find it about as useful as I find explicit
calls to Deferred.chainDeferred - perhaps even slightly more so. Though
that's a low bar, I can't remember the last time I explicitly called
chainDeferred; it's probably been a couple years.
Not to say it's a bad idea, but I don't think it's _obviously_ a great
idea. If someone wanted to contribute a documented, tested
implementation, particularly with examples of common patterns that it
simplifies, then you could probably convince someone to commit it.
Jean-Paul
More information about the Twisted-Python
mailing list