docs: 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