D3504: cborutil: port to Python 3
durin42 (Augie Fackler)
phabricator at mercurial-scm.org
Tue May 8 16:22:47 EDT 2018
This revision was automatically updated to reflect the committed changes.
Closed by commit rHG2ae6a3134362: cborutil: port to Python 3 (authored by durin42, committed by ).
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D3504?vs=8572&id=8580
REVISION DETAIL
https://phab.mercurial-scm.org/D3504
AFFECTED FILES
mercurial/utils/cborutil.py
CHANGE DETAILS
diff --git a/mercurial/utils/cborutil.py b/mercurial/utils/cborutil.py
--- a/mercurial/utils/cborutil.py
+++ b/mercurial/utils/cborutil.py
@@ -140,12 +140,15 @@
yield BREAK
+def _mixedtypesortkey(v):
+ return type(v).__name__, v
+
def streamencodeset(s):
# https://www.iana.org/assignments/cbor-tags/cbor-tags.xhtml defines
# semantic tag 258 for finite sets.
yield encodelength(MAJOR_TYPE_SEMANTIC, 258)
- for chunk in streamencodearray(sorted(s)):
+ for chunk in streamencodearray(sorted(s, key=_mixedtypesortkey)):
yield chunk
def streamencodemap(d):
@@ -155,7 +158,8 @@
"""
yield encodelength(MAJOR_TYPE_MAP, len(d))
- for key, value in sorted(d.iteritems()):
+ for key, value in sorted(d.iteritems(),
+ key=lambda x: _mixedtypesortkey(x[0])):
for chunk in streamencode(key):
yield chunk
for chunk in streamencode(value):
To: durin42, #hg-reviewers, indygreg
Cc: indygreg, mercurial-devel
More information about the Mercurial-devel
mailing list