def METHOD_NAME(self, left_key):
    while True:
        # No more right items remaining: return None
        if self.right_item is None:
            return
        right_key = self.get_key(self.right_item)
        # Keys match: this is the item we want
        if right_key == left_key:
            return self.right_item
        # Right key is greater: return None until left catches up
        elif right_key > left_key:
            return
        # Right key is lesser: grab the next right item and try again
        else:
            self.right_item = next(self.right_iter, None)