def _handle_response(self, key, response, resave=True):
        # Returns responses for non-conflicting content. Resolves conflicts
        # if there are multiple values for a key.
        resave = resave or self.track_siblings(key, len(response['content']))
        if len(response['content']) == 1:
            self._vclocks[key] = response['vclock']
            return self.loads(response['content'][0]['value'])
        else:
            res = (self.name, key)
            if res in resolutions_in_progress:
                ev = resolutions_in_progress[res]
                if ev.resolver == self:
                    # recursing on put() with > 1 response
                    return self._resolve(key, response, resave=resave)
                ev.wait()
                if not ev.error:
                    return ev.value
                else:
                    return self._handle_response(key, response, resave=resave)
            with in_resolution(*(res + (self,))) as ev:
                result = self._resolve(key, response, resave=resave)
                ev.value = result
                ev.set()
            return result
dataset/ETHPy150Open dieseldev/diesel/diesel/protocols/riak.py/Bucket._handle_response/operator `and` -> `or`