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