diff mercurial/filemerge.py @ 50946:c642c03969ff

dynamic-import: use sysstr for importing extension and others This logic is used by extensions, and python hooks and merge-tools. All this logic eventually deals with native string (unicode in Python 3). This patch makes it handle `str` directly instead of relying on some pycompat low lever layer to do the conversion at the last minutes. We adjust the Python version filtering of a test as the output seems to be present with Python 3.7 too.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Thu, 31 Aug 2023 02:41:33 +0200
parents 2282d8ac0fa9
children 18c8c18993f0
line wrap: on
line diff
--- a/mercurial/filemerge.py	Thu Aug 31 01:54:48 2023 +0200
+++ b/mercurial/filemerge.py	Thu Aug 31 02:41:33 2023 +0200
@@ -834,12 +834,13 @@
                 # avoid cycle cmdutil->merge->filemerge->extensions->cmdutil
                 from . import extensions
 
-                mod = extensions.loadpath(toolpath, b'hgmerge.%s' % tool)
+                mod_name = 'hgmerge.%s' % pycompat.sysstr(tool)
+                mod = extensions.loadpath(toolpath, mod_name)
             except Exception:
                 raise error.Abort(
                     _(b"loading python merge script failed: %s") % toolpath
                 )
-            mergefn = getattr(mod, scriptfn, None)
+            mergefn = getattr(mod, pycompat.sysstr(scriptfn), None)
             if mergefn is None:
                 raise error.Abort(
                     _(b"%s does not have function: %s") % (toolpath, scriptfn)