def _swap_pos()

in heap.py [0:0]


    def _swap_pos(self, i, j):
        ori_i_is_invalid = i in self.invalid_pos
        ori_j_is_invalid = j in self.invalid_pos
        (self.data[i], self.data[j]) = (self.data[j], self.data[i])

        # Note: we have swapped positions now
        if ori_i_is_invalid:
            self.invalid_pos.add(j)
        else:
            self.invalid_pos.discard(j)
            self.inverse_index[self.keyf(self.data[j])] = j

        if ori_j_is_invalid:
            self.invalid_pos.add(i)
        else:
            self.invalid_pos.discard(i)
            self.inverse_index[self.keyf(self.data[i])] = i