def create_future(self): from twisted.internet.defer import Deferred d = Deferred() bridge.tag_object_with_id(d) #: Add then method so you can easily chain callbacks def catch(d, callback): d.addErrback(partial(self.safe_callback, callback)) return d #: Add custom API methods d.then = partial(self.add_done_callback, d) d.catch = partial(catch, d) d.set_result = partial(self.set_future_result, d) return d