code: def set(self, name, value, autodeclare=False):
          
  
          if not autodeclare and name not in self._data:
              raise KeyError("Key {} has not been declared and autodeclare=False".format(name))
  
          self._ensure_declared(name)
          self._data[name].set_result(value)
docs: Set the value of a key.
  
          This method will cause anyone waiting on a key (and any future
          waiters) to unblock and be returned the value you pass here.
  
          If the key has not been declared previously, a KeyError() is
          raised unless you pass ``autodeclare=True`` which will cause
          the key to be declared.  Normally you don't want to autodeclare.
  
          This method is not a coroutine and does not block.
  
          Args:
              name (str): The key to set
              value (object): The value to set
              autodeclare (bool): Whether to automatically declare the
                  key if is has not already been declared.  Defaults to
                  False.