def _discardAnyTrackedPairsThatOverlapWithAorB(self, uidA, uidB):
''' Update to discard remaining pairs that overlap uidA/uidB.
Post Condition
--------------
Attributes mUIDPairs and _MergeTerms dont have any more info
about other pairs (uidj,uidk) where where uidA or uidB are involved.
'''
if hasattr(self, 'mUIDPairs'):
mUIDPairs = self.mUIDPairs
# Remove any other pairs associated with kA or kB
keepRowIDs = ((mUIDPairs[:, 0] != uidA) *
(mUIDPairs[:, 1] != uidA) *
(mUIDPairs[:, 0] != uidB) *
(mUIDPairs[:, 1] != uidB))
keepRowIDs = np.flatnonzero(keepRowIDs)
self.setMergeUIDPairs(mUIDPairs[keepRowIDs])
# Remove any other pairs related to kA, kB
if self.hasMergeTerms():
for key, dims in self._MergeTerms._FieldDims.items():
mArr = getattr(self._MergeTerms, key)
if dims[0] == 'M':
mArr = mArr[keepRowIDs]
self._MergeTerms.setField(key, mArr, dims=dims)
评论列表
文章目录