def set_remove(self, key, value, **kwargs):
        """
        Remove an item from a set.

        :param key: The docuent ID
        :param value: Value to remove
        :param kwargs: Arguments to :meth:`mutate_in`
        :return: A :class:`OperationResult` if the item was removed, false
                 otherwise
        :raise: :cb_exc:`NotFoundError` if the set does not exist.

        .. seealso:: :meth:`set_add`, :meth:`map_add`
        """
        while True:
            rv = self.get(key)
            try:
                ix = rv.value.index(value)
                kwargs['cas'] = rv.cas
                return self.list_remove(key, ix, **kwargs)
            except E.KeyExistsError:
                pass
            except ValueError:
                return
def set_remove ( self , key , value , ** kwargs ) : while True : rv = self . get ( key ) try : ix = rv . value . index ( value ) kwargs [ 'cas' ] = rv . cas return self . list_remove ( key , ix , ** kwargs ) except E . KeyExistsError : pass except ValueError : return
Remove an item from a set.

        :param key: The docuent ID
        :param value: Value to remove
        :param kwargs: Arguments to :meth:`mutate_in`
        :return: A :class:`OperationResult` if the item was removed, false
                 otherwise
        :raise: :cb_exc:`NotFoundError` if the set does not exist.

        .. seealso:: :meth:`set_add`, :meth:`map_add`