[PATCH 2 of 3] py3: factor out bytechr() function
Augie Fackler
raf at durin42.com
Wed Mar 8 17:43:24 EST 2017
On Thu, Mar 09, 2017 at 12:52:49AM +0900, Yuya Nishihara wrote:
> # HG changeset patch
> # User Yuya Nishihara <yuya at tcha.org>
> # Date 1488979812 -32400
> # Wed Mar 08 22:30:12 2017 +0900
> # Node ID a17d13eaa30ec9ef28deba953d281faba0b79909
> # Parent 9fc739fcfb59421146294285d450eff80f8dc587
> py3: factor out bytechr() function
I've taken this one. Will try to look at patch 3 soon.
>
> I also changed xrange(127) to range(127) as the number is relatively small.
>
> diff --git a/mercurial/pycompat.py b/mercurial/pycompat.py
> --- a/mercurial/pycompat.py
> +++ b/mercurial/pycompat.py
> @@ -71,6 +71,9 @@ if ispy3:
> # 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 @@ if ispy3:
> return [a.encode('latin-1') for a in ret]
>
> else:
> + bytechr = chr
> +
> def sysstr(s):
> return s
>
> diff --git a/mercurial/store.py b/mercurial/store.py
> --- a/mercurial/store.py
> +++ b/mercurial/store.py
> @@ -99,12 +99,8 @@ def _buildencodefun():
> 'the\\x07quick\\xadshot'
> '''
> e = '_'
> - if pycompat.ispy3:
> - xchr = lambda x: bytes([x])
> - asciistr = [xchr(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 --git a/mercurial/ui.py b/mercurial/ui.py
> --- a/mercurial/ui.py
> +++ b/mercurial/ui.py
> @@ -40,12 +40,8 @@ from . import (
> 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':
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
More information about the Mercurial-devel
mailing list