py3: use system strings when calling __import__
authorGregory Szorc <gregory.szorc@gmail.com>
Sun, 11 Feb 2018 16:02:32 -0800
changeset 36108 c4146cf4dd20
parent 36107 bff95b002e33
child 36109 361276a36d49
py3: use system strings when calling __import__ We must pass the native str type when importing. Differential Revision: https://phab.mercurial-scm.org/D2154
mercurial/hook.py
--- a/mercurial/hook.py	Sun Feb 11 15:58:31 2018 -0800
+++ b/mercurial/hook.py	Sun Feb 11 16:02:32 2018 -0800
@@ -49,12 +49,12 @@
                 modname = modfile
         with demandimport.deactivated():
             try:
-                obj = __import__(modname)
+                obj = __import__(pycompat.sysstr(modname))
             except (ImportError, SyntaxError):
                 e1 = sys.exc_info()
                 try:
                     # extensions are loaded with hgext_ prefix
-                    obj = __import__("hgext_%s" % modname)
+                    obj = __import__(r"hgext_%s" % pycompat.sysstr(modname))
                 except (ImportError, SyntaxError):
                     e2 = sys.exc_info()
                     if ui.tracebackflag: