[Pattern] fix pattern comparisons
This commit is contained in:
parent
c4dc9f9573
commit
92d0140093
1 changed files with 12 additions and 12 deletions
|
|
@ -201,7 +201,7 @@ class Pattern(PortList, AnnotatableImpl, Mirrorable):
|
||||||
|
|
||||||
def __lt__(self, other: 'Pattern') -> bool:
|
def __lt__(self, other: 'Pattern') -> bool:
|
||||||
self_nonempty_targets = [target for target, reflist in self.refs.items() if reflist]
|
self_nonempty_targets = [target for target, reflist in self.refs.items() if reflist]
|
||||||
other_nonempty_targets = [target for target, reflist in self.refs.items() if reflist]
|
other_nonempty_targets = [target for target, reflist in other.refs.items() if reflist]
|
||||||
self_tgtkeys = tuple(sorted((target is None, target) for target in self_nonempty_targets))
|
self_tgtkeys = tuple(sorted((target is None, target) for target in self_nonempty_targets))
|
||||||
other_tgtkeys = tuple(sorted((target is None, target) for target in other_nonempty_targets))
|
other_tgtkeys = tuple(sorted((target is None, target) for target in other_nonempty_targets))
|
||||||
|
|
||||||
|
|
@ -215,7 +215,7 @@ class Pattern(PortList, AnnotatableImpl, Mirrorable):
|
||||||
return refs_ours < refs_theirs
|
return refs_ours < refs_theirs
|
||||||
|
|
||||||
self_nonempty_layers = [ll for ll, elems in self.shapes.items() if elems]
|
self_nonempty_layers = [ll for ll, elems in self.shapes.items() if elems]
|
||||||
other_nonempty_layers = [ll for ll, elems in self.shapes.items() if elems]
|
other_nonempty_layers = [ll for ll, elems in other.shapes.items() if elems]
|
||||||
self_layerkeys = tuple(sorted(layer2key(ll) for ll in self_nonempty_layers))
|
self_layerkeys = tuple(sorted(layer2key(ll) for ll in self_nonempty_layers))
|
||||||
other_layerkeys = tuple(sorted(layer2key(ll) for ll in other_nonempty_layers))
|
other_layerkeys = tuple(sorted(layer2key(ll) for ll in other_nonempty_layers))
|
||||||
|
|
||||||
|
|
@ -224,21 +224,21 @@ class Pattern(PortList, AnnotatableImpl, Mirrorable):
|
||||||
|
|
||||||
for _, _, layer in self_layerkeys:
|
for _, _, layer in self_layerkeys:
|
||||||
shapes_ours = tuple(sorted(self.shapes[layer]))
|
shapes_ours = tuple(sorted(self.shapes[layer]))
|
||||||
shapes_theirs = tuple(sorted(self.shapes[layer]))
|
shapes_theirs = tuple(sorted(other.shapes[layer]))
|
||||||
if shapes_ours != shapes_theirs:
|
if shapes_ours != shapes_theirs:
|
||||||
return shapes_ours < shapes_theirs
|
return shapes_ours < shapes_theirs
|
||||||
|
|
||||||
self_nonempty_txtlayers = [ll for ll, elems in self.labels.items() if elems]
|
self_nonempty_txtlayers = [ll for ll, elems in self.labels.items() if elems]
|
||||||
other_nonempty_txtlayers = [ll for ll, elems in self.labels.items() if elems]
|
other_nonempty_txtlayers = [ll for ll, elems in other.labels.items() if elems]
|
||||||
self_txtlayerkeys = tuple(sorted(layer2key(ll) for ll in self_nonempty_txtlayers))
|
self_txtlayerkeys = tuple(sorted(layer2key(ll) for ll in self_nonempty_txtlayers))
|
||||||
other_txtlayerkeys = tuple(sorted(layer2key(ll) for ll in other_nonempty_txtlayers))
|
other_txtlayerkeys = tuple(sorted(layer2key(ll) for ll in other_nonempty_txtlayers))
|
||||||
|
|
||||||
if self_txtlayerkeys != other_txtlayerkeys:
|
if self_txtlayerkeys != other_txtlayerkeys:
|
||||||
return self_txtlayerkeys < other_txtlayerkeys
|
return self_txtlayerkeys < other_txtlayerkeys
|
||||||
|
|
||||||
for _, _, layer in self_layerkeys:
|
for _, _, layer in self_txtlayerkeys:
|
||||||
labels_ours = tuple(sorted(self.labels[layer]))
|
labels_ours = tuple(sorted(self.labels[layer]))
|
||||||
labels_theirs = tuple(sorted(self.labels[layer]))
|
labels_theirs = tuple(sorted(other.labels[layer]))
|
||||||
if labels_ours != labels_theirs:
|
if labels_ours != labels_theirs:
|
||||||
return labels_ours < labels_theirs
|
return labels_ours < labels_theirs
|
||||||
|
|
||||||
|
|
@ -255,7 +255,7 @@ class Pattern(PortList, AnnotatableImpl, Mirrorable):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
self_nonempty_targets = [target for target, reflist in self.refs.items() if reflist]
|
self_nonempty_targets = [target for target, reflist in self.refs.items() if reflist]
|
||||||
other_nonempty_targets = [target for target, reflist in self.refs.items() if reflist]
|
other_nonempty_targets = [target for target, reflist in other.refs.items() if reflist]
|
||||||
self_tgtkeys = tuple(sorted((target is None, target) for target in self_nonempty_targets))
|
self_tgtkeys = tuple(sorted((target is None, target) for target in self_nonempty_targets))
|
||||||
other_tgtkeys = tuple(sorted((target is None, target) for target in other_nonempty_targets))
|
other_tgtkeys = tuple(sorted((target is None, target) for target in other_nonempty_targets))
|
||||||
|
|
||||||
|
|
@ -269,7 +269,7 @@ class Pattern(PortList, AnnotatableImpl, Mirrorable):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
self_nonempty_layers = [ll for ll, elems in self.shapes.items() if elems]
|
self_nonempty_layers = [ll for ll, elems in self.shapes.items() if elems]
|
||||||
other_nonempty_layers = [ll for ll, elems in self.shapes.items() if elems]
|
other_nonempty_layers = [ll for ll, elems in other.shapes.items() if elems]
|
||||||
self_layerkeys = tuple(sorted(layer2key(ll) for ll in self_nonempty_layers))
|
self_layerkeys = tuple(sorted(layer2key(ll) for ll in self_nonempty_layers))
|
||||||
other_layerkeys = tuple(sorted(layer2key(ll) for ll in other_nonempty_layers))
|
other_layerkeys = tuple(sorted(layer2key(ll) for ll in other_nonempty_layers))
|
||||||
|
|
||||||
|
|
@ -278,21 +278,21 @@ class Pattern(PortList, AnnotatableImpl, Mirrorable):
|
||||||
|
|
||||||
for _, _, layer in self_layerkeys:
|
for _, _, layer in self_layerkeys:
|
||||||
shapes_ours = tuple(sorted(self.shapes[layer]))
|
shapes_ours = tuple(sorted(self.shapes[layer]))
|
||||||
shapes_theirs = tuple(sorted(self.shapes[layer]))
|
shapes_theirs = tuple(sorted(other.shapes[layer]))
|
||||||
if shapes_ours != shapes_theirs:
|
if shapes_ours != shapes_theirs:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
self_nonempty_txtlayers = [ll for ll, elems in self.labels.items() if elems]
|
self_nonempty_txtlayers = [ll for ll, elems in self.labels.items() if elems]
|
||||||
other_nonempty_txtlayers = [ll for ll, elems in self.labels.items() if elems]
|
other_nonempty_txtlayers = [ll for ll, elems in other.labels.items() if elems]
|
||||||
self_txtlayerkeys = tuple(sorted(layer2key(ll) for ll in self_nonempty_txtlayers))
|
self_txtlayerkeys = tuple(sorted(layer2key(ll) for ll in self_nonempty_txtlayers))
|
||||||
other_txtlayerkeys = tuple(sorted(layer2key(ll) for ll in other_nonempty_txtlayers))
|
other_txtlayerkeys = tuple(sorted(layer2key(ll) for ll in other_nonempty_txtlayers))
|
||||||
|
|
||||||
if self_txtlayerkeys != other_txtlayerkeys:
|
if self_txtlayerkeys != other_txtlayerkeys:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
for _, _, layer in self_layerkeys:
|
for _, _, layer in self_txtlayerkeys:
|
||||||
labels_ours = tuple(sorted(self.labels[layer]))
|
labels_ours = tuple(sorted(self.labels[layer]))
|
||||||
labels_theirs = tuple(sorted(self.labels[layer]))
|
labels_theirs = tuple(sorted(other.labels[layer]))
|
||||||
if labels_ours != labels_theirs:
|
if labels_ours != labels_theirs:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue