[Twisted-Python] deferredGenerator ad errbacks

Manlio Perillo manlio_perillo at libero.it
Sat Apr 15 04:02:21 MDT 2006


Hi again!

I have started to use deferredGenerator:


from twisted.internet import defer, reactor


def waitFor(seconds):
    """It would be nice to have this in twisted.internet.defer.
       Thanks to Matt Goodall.
    """

    d = defer.Deferred()
    reactor.callLater(seconds, lambda: d.callback(None))

    return defer.waitForDeferred(d)


@defer.deferredGenerator
def generator():
    d = defer.waitForDeferred(defer.succeed(1))
    yield d

    d = defer.waitForDeferred(defer.fail(Exception("error 1")))
    yield d

#    raise Exception("error 2")

    yield waitFor(3)

    d = defer.waitForDeferred(defer.succeed(2))
    yield d



def callback(result=None):
    print result


def errback(reason):
    print reason


g = generator()
g.addCallbacks(callback, errback)
reactor.run()



The "problem" is that my errback is never called.
Is this a limitation of the deferred Generators?





Thanks   Manlio Perillo




More information about the Twisted-Python mailing list