def _sample_random_pair(self) -> Tuple[str, str]:
        """
        Produce a random pair of different mesh names

        Return:
            tuple(str, str): a pair of different mesh names
        """
        if self.cur_pos >= len(self.all_shape_pairs):
            random.shuffle(self.all_shape_pairs)
            self.cur_pos = 0
        shape_pair = self.all_shape_pairs[self.cur_pos]
        self.cur_pos += 1
        return shape_pair

        Produce a random pair of different mesh names

        Return:
            tuple(str, str): a pair of different mesh names
        
EVA-02/det/projects/DensePose/densepose/modeling/losses/cycle_shape2shape.py