diff -r bc71b19b45ff -r f713566d5d01 editors/Viewer.py --- a/editors/Viewer.py Fri Oct 28 15:19:24 2022 +0800 +++ b/editors/Viewer.py Fri Oct 28 17:01:10 2022 +0800 @@ -23,6 +23,8 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +from functools import cmp_to_key +from operator import eq import math from time import time as gettime from threading import Lock @@ -223,9 +225,9 @@ x1, y1 = block_infos1[0].GetPosition() x2, y2 = block_infos2[0].GetPosition() if y1 == y2: - return cmp(x1, x2) + return eq(x1, x2) else: - return cmp(y1, y2) + return eq(y1, y2) # ------------------------------------------------------------------------------- # Graphic elements Viewer base class @@ -920,11 +922,13 @@ wires = list(self.Wires.keys()) comments = list(self.Comments.values()) if sort_blocks: - blocks.sort(lambda x, y: cmp(x.GetId(), y.GetId())) + blocks.sort(key=cmp_to_key(lambda x, y: eq(x.GetId(), y.GetId()))) if sort_wires: - wires.sort(lambda x, y: cmp(self.Wires[x], self.Wires[y])) + wires.sort(key=cmp_to_key(lambda x, y: eq(self.Wires[x], + self.Wires[y]))) if sort_comments: - comments.sort(lambda x, y: cmp(x.GetId(), y.GetId())) + comments.sort(key=cmp_to_key(lambda x, y: eq(x.GetId(), + y.GetId()))) return blocks + wires + comments def GetContinuationByName(self, name): @@ -3509,7 +3513,7 @@ block = self.Blocks.get(infos[2]) if block is not None: blocks.append((block, (infos[1:], start, end, SEARCH_RESULT_HIGHLIGHT))) - blocks.sort(sort_blocks) + blocks.sort(key=cmp_to_key(sort_blocks)) self.SearchResults.extend([infos for block, infos in blocks]) self.CurrentFindHighlight = None