# HG changeset patch # User Pulkit Goyal <7895pulkit@gmail.com> # Date 2017-04-07 18:05:51 # Node ID 526e4597cca5d3baa0edced648fbcd8bd273a924 # Parent c130d092042a01134990a17ced3d567e9e5b564b py3: add pycompat.unicode and add it to importer On python 3, builtins.unicode does not exist. diff --git a/mercurial/__init__.py b/mercurial/__init__.py --- a/mercurial/__init__.py +++ b/mercurial/__init__.py @@ -283,7 +283,8 @@ if sys.version_info[0] >= 3: continue r, c = t.start l = (b'; from mercurial.pycompat import ' - b'delattr, getattr, hasattr, setattr, xrange, open\n') + b'delattr, getattr, hasattr, setattr, xrange, ' + b'open, unicode\n') for u in tokenize.tokenize(io.BytesIO(l).readline): if u.type in (tokenize.ENCODING, token.ENDMARKER): continue @@ -323,7 +324,7 @@ if sys.version_info[0] >= 3: # ``replacetoken`` or any mechanism that changes semantics of module # loading is changed. Otherwise cached bytecode may get loaded without # the new transformation mechanisms applied. - BYTECODEHEADER = b'HG\x00\x09' + BYTECODEHEADER = b'HG\x00\x0a' class hgloader(importlib.machinery.SourceFileLoader): """Custom module loader that transforms source code. diff --git a/mercurial/pycompat.py b/mercurial/pycompat.py --- a/mercurial/pycompat.py +++ b/mercurial/pycompat.py @@ -174,6 +174,7 @@ if ispy3: hasattr = _wrapattrfunc(builtins.hasattr) setattr = _wrapattrfunc(builtins.setattr) xrange = builtins.range + unicode = str def open(name, mode='r', buffering=-1): return builtins.open(name, sysstr(mode), buffering)