code: def cas(self, conn, key, value, cas_token, exptime=0):
          
          flags = 0  # TODO: fix when exception removed
          resp = yield from self._storage_command(
              conn, b'cas', key, value, flags, exptime, cas=cas_token)
          return resp
docs: Sets a key to a value on the server
          with an optional exptime (0 means don't auto-expire)
          only if value hasn't change from first retrieval
  
          :param key: ``bytes``, is the key of the item.
          :param value: ``bytes``, data to store.
          :param exptime: ``int``, is expiration time. If it's 0, the
          item never expires.
          :param cas_token: ``int``, unique cas token retrieve from previous
              ``gets``
          :return: ``bool``, True in case of success.