def dictPromise(m):
    """
    A special function that takes a dictionary of promises
    and turns them into a promise for a dictionary of values.
    In other words, this turns an dictionary of promises for values
    into a promise for a dictionary of values.
    """
    ret = Promise()

    def handleSuccess(v, ret):
        for p in m.values():
            if not p.isFulfilled():
                return

        value = {}
        for k in m:
            value[k] = m[k].value
        ret.fulfill(value)

    for p in m.values():
        p.addCallback(lambda v: handleSuccess(v, ret))
        p.addErrback(lambda r: ret.reject(r))

    # Check to see if all the promises are already fulfilled
    handleSuccess(None, ret)

    return ret
def dictPromise ( m ) : ret = Promise ( ) def handleSuccess ( v , ret ) : for p in m . values ( ) : if not p . isFulfilled ( ) : return value = { } for k in m : value [ k ] = m [ k ] . value ret . fulfill ( value ) for p in m . values ( ) : p . addCallback ( lambda v : handleSuccess ( v , ret ) ) p . addErrback ( lambda r : ret . reject ( r ) ) handleSuccess ( None , ret ) return ret
A special function that takes a dictionary of promises
    and turns them into a promise for a dictionary of values.
    In other words, this turns an dictionary of promises for values
    into a promise for a dictionary of values.