# HG changeset patch # User Yuya Nishihara # Date 1488979812 -32400 # Node ID 64596338ba10b6ce8be83ad3e49019937202ca81 # Parent e7a35f18d91f0fda820084b3d655ecff966736ca py3: factor out bytechr() function I also changed xrange(127) to range(127) as the number is relatively small. diff -r e7a35f18d91f -r 64596338ba10 mercurial/pycompat.py --- a/mercurial/pycompat.py Thu Mar 02 13:34:01 2017 +0100 +++ b/mercurial/pycompat.py Wed Mar 08 22:30:12 2017 +0900 @@ -71,6 +71,9 @@ # workaround to simulate the Python 2 (i.e. ANSI Win32 API) behavior. sysargv = list(map(os.fsencode, sys.argv)) + def bytechr(i): + return bytes([i]) + def sysstr(s): """Return a keyword str to be passed to Python functions such as getattr() and str.encode() @@ -134,6 +137,8 @@ return [a.encode('latin-1') for a in ret] else: + bytechr = chr + def sysstr(s): return s diff -r e7a35f18d91f -r 64596338ba10 mercurial/store.py --- a/mercurial/store.py Thu Mar 02 13:34:01 2017 +0100 +++ b/mercurial/store.py Wed Mar 08 22:30:12 2017 +0900 @@ -99,12 +99,8 @@ 'the\\x07quick\\xadshot' ''' e = '_' - if pycompat.ispy3: - xchr = lambda x: bytes([x]) - asciistr = [bytes([a]) for a in range(127)] - else: - xchr = chr - asciistr = map(chr, xrange(127)) + xchr = pycompat.bytechr + asciistr = list(map(xchr, range(127))) capitals = list(range(ord("A"), ord("Z") + 1)) cmap = dict((x, x) for x in asciistr) diff -r e7a35f18d91f -r 64596338ba10 mercurial/ui.py --- a/mercurial/ui.py Thu Mar 02 13:34:01 2017 +0100 +++ b/mercurial/ui.py Wed Mar 08 22:30:12 2017 +0900 @@ -40,12 +40,8 @@ urlreq = util.urlreq # for use with str.translate(None, _keepalnum), to keep just alphanumerics -if pycompat.ispy3: - _bytes = [bytes([c]) for c in range(256)] - _notalnum = [s for s in _bytes if not s.isalnum()] -else: - _notalnum = [c for c in map(chr, range(256)) if not c.isalnum()] -_keepalnum = ''.join(_notalnum) +_keepalnum = ''.join(c for c in map(pycompat.bytechr, range(256)) + if not c.isalnum()) samplehgrcs = { 'user':