[PATCH 01 of 10] contrib: have import-checker work mostly with native strings for mod names
Augie Fackler
raf at durin42.com
Wed Aug 23 14:55:00 UTC 2017
# HG changeset patch
# User Augie Fackler <raf at durin42.com>
# Date 1503421161 14400
# Tue Aug 22 12:59:21 2017 -0400
# Node ID e915b9703f675b2f76c512347ddff0f6c65a9748
# Parent edf503e5dfd408f900f3bad0a6923573813e276b
contrib: have import-checker work mostly with native strings for mod names
Module names are a bit awkward to deal with portably otherwise.
diff --git a/contrib/import-checker.py b/contrib/import-checker.py
--- a/contrib/import-checker.py
+++ b/contrib/import-checker.py
@@ -147,6 +147,8 @@ def fromlocalfunc(modulename, localmods)
>>> fromlocal2('bar', 2)
('foo.bar', 'foo.bar.__init__', True)
"""
+ if not isinstance(modulename, str):
+ modulename = modulename.decode('ascii')
prefix = '.'.join(modulename.split('.')[:-1])
if prefix:
prefix += '.'
@@ -406,6 +408,8 @@ def verify_modern_convention(module, roo
* Certain modules must be aliased to alternate names to avoid aliasing
and readability problems. See `requirealias`.
"""
+ if not isinstance(module, str):
+ module = module.decode('ascii')
topmodule = module.split('.')[0]
fromlocal = fromlocalfunc(module, localmods)
@@ -724,6 +728,9 @@ def main(argv):
localmodpaths[modname] = source_path
localmods = populateextmods(localmodpaths)
for localmodname, source_path in sorted(localmodpaths.items()):
+ if not isinstance(localmodname, bytes):
+ # This is only safe because all hg's files are ascii
+ localmodname = localmodname.encode('ascii')
for src, modname, name, line in sources(source_path, localmodname):
try:
used_imports[modname] = sorted(
More information about the Mercurial-devel
mailing list