py3: stop implicitly importing unicode
authorGregory Szorc <gregory.szorc@gmail.com>
Sun, 06 Oct 2019 14:51:45 -0400
changeset 43086 bbcbb82e3589
parent 43085 eef9a2d67051
child 43087 66f2cc210a29
py3: stop implicitly importing unicode We should be pycompat.unicode everywhere. It turns out we were doing this everywhere except for one place in templatefilters! Differential Revision: https://phab.mercurial-scm.org/D7006
mercurial/__init__.py
mercurial/templatefilters.py
--- a/mercurial/__init__.py	Sun Oct 06 13:28:56 2019 -0400
+++ b/mercurial/__init__.py	Sun Oct 06 14:51:45 2019 -0400
@@ -171,8 +171,7 @@
                 r, c = t.start
                 l = (
                     b'; from mercurial.pycompat import '
-                    b'delattr, getattr, hasattr, setattr, '
-                    b'unicode\n'
+                    b'delattr, getattr, hasattr, setattr\n'
                 )
                 for u in tokenize.tokenize(io.BytesIO(l).readline):
                     if u.type in (tokenize.ENCODING, token.ENDMARKER):
@@ -221,7 +220,7 @@
     # ``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\x0d'
+    BYTECODEHEADER = b'HG\x00\x0e'
 
     class hgloader(importlib.machinery.SourceFileLoader):
         """Custom module loader that transforms source code.
--- a/mercurial/templatefilters.py	Sun Oct 06 13:28:56 2019 -0400
+++ b/mercurial/templatefilters.py	Sun Oct 06 14:51:45 2019 -0400
@@ -367,7 +367,7 @@
     """Any text. Returns the input text rendered as a sequence of
     XML entities.
     """
-    text = unicode(text, pycompat.sysstr(encoding.encoding), r'replace')
+    text = pycompat.unicode(text, pycompat.sysstr(encoding.encoding), r'replace')
     return b''.join([b'&#%d;' % ord(c) for c in text])