# HG changeset patch # User Gregory Szorc # Date 1457760446 28800 # Node ID 3c6e94d0811ce186094f8da72a297707bdc0426a # Parent 9bcbd941222561ae3abf3a40a484d2da7d8dccf0 encoding: use range() instead of xrange() Python 3 doesn't have xrange(). Instead, range() on Python 3 is a generator, like xrange() is on Python 2. The benefits of xrange() over range() are when there are very large ranges that are too expensive to pre-allocate. The code here is only creating <128 values, so the benefits of xrange() should be negligible. With this patch, encoding.py imports safely on Python 3. diff -r 9bcbd9412225 -r 3c6e94d0811c mercurial/encoding.py --- a/mercurial/encoding.py Fri Mar 11 21:23:34 2016 -0800 +++ b/mercurial/encoding.py Fri Mar 11 21:27:26 2016 -0800 @@ -387,8 +387,8 @@ other = 0 _jsonmap = [] -_jsonmap.extend("\\u%04x" % x for x in xrange(32)) -_jsonmap.extend(chr(x) for x in xrange(32, 127)) +_jsonmap.extend("\\u%04x" % x for x in range(32)) +_jsonmap.extend(chr(x) for x in range(32, 127)) _jsonmap.append('\\u007f') _jsonmap[0x09] = '\\t' _jsonmap[0x0a] = '\\n' @@ -400,7 +400,7 @@ _paranoidjsonmap = _jsonmap[:] _paranoidjsonmap[0x3c] = '\\u003c' # '<' (e.g. escape "") _paranoidjsonmap[0x3e] = '\\u003e' # '>' -_jsonmap.extend(chr(x) for x in xrange(128, 256)) +_jsonmap.extend(chr(x) for x in range(128, 256)) def jsonescape(s, paranoid=False): '''returns a string suitable for JSON