def wrapper(*args, **kwargs): d = Deferred() try: d.resolve(func(*args, **kwargs)) except Exception as e: d.reject(exception=e) return d.promise()