def METHOD_NAME(self, key):
    nodes = set()
    if not self.ring:
        return
    if self.nodes_len == 1:
        for node in self.nodes:
            yield node
    position = self.compute_ring_position(key)
    search_entry = (position, ())
    index = bisect.bisect_left(self.ring, search_entry) % self.ring_len
    last_index = (index - 1) % self.ring_len
    nodes_len = len(nodes)
    while nodes_len < self.nodes_len and index != last_index:
        next_entry = self.ring[index]
        (position, next_node) = next_entry
        if next_node not in nodes:
            nodes.add(next_node)
            nodes_len += 1
            yield next_node
        index = (index + 1) % self.ring_len