@diesel.call
    def put(self, bucket, key, value, indexes=None, **params):
        """Puts the value to the key in the named bucket.

        If an ``extra_content`` dictionary parameter is present, its content
        is merged into the RpbContent object.

        All other parameters are merged into the RpbPutReq object.

        """
        dict_content={'value':value}

        index_pairs = []
        if isinstance(indexes,list):
            for k,v in indexes:
                if not (k.endswith('_int') or k.endswith('_bin')):
                    msg = "Key must ends with _int or _bin"
                    raise NotImplementedError(msg)
                pair = riak_palm.RpbPair()
                pair.key = k
                pair.value = str(v)
                index_pairs.append(pair)

        if 'extra_content' is params:
            dict_content.update(params.pop('extra_content'))
        content = riak_palm.RpbContent(**dict_content)
        content.indexes.set(index_pairs)

        request = riak_palm.RpbPutReq(
            bucket=bucket,
            key=key,
            content=content,
        )
        for name, value in params.iteritems():
            setattr(request, name, value)
        self._send(request)
        response = self._receive()
        if response:
            return _to_dict(response)
dataset/ETHPy150Open dieseldev/diesel/diesel/protocols/riak.py/RiakClient.put/operator `in` -> `is`