code: def set(self, key, value, lease=None, return_previous=None, timeout=None):
          
          assembler = commons.PutRequestAssembler(self._url, key, value, lease, return_previous)
  
          obj = yield self._post(assembler.url, assembler.data, timeout)
  
          revision = Revision._parse(obj)
  
          returnValue(revision)
docs: Set the value for the key in the key-value store.
  
          Setting a value on a key increments the revision
          of the key-value store and generates one event in
          the event history.
  
          :param key: key is the key, in bytes, to put into
              the key-value store.
          :type key: bytes
  
          :param value: value is the value, in bytes, to
              associate with the key in the key-value store.
          :key value: bytes
  
          :param lease: Lease to associate the key in the
              key-value store with.
          :type lease: instance of :class:`txaioetcd.Lease` or None
  
          :param return_previous: If set, return the previous key-value.
          :type return_previous: bool or None
  
          :param timeout: Request timeout in seconds.
          :type timeout: int
  
          :returns: Revision info
          :rtype: instance of :class:`txaioetcd.Revision`