[PATCH 01 of 10] contrib: have import-checker work mostly with native strings for mod names
Martin von Zweigbergk
martinvonz at google.com
Mon Aug 28 02:55:46 EDT 2017
On Wed, Aug 23, 2017 at 7:55 AM, Augie Fackler <raf at durin42.com> wrote:
> # 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')
Should this be 'if isinstance(modulename, bytes)' instead? That seems
clearer to me. Also, 'abc'.decode('ascii') seems to fail on Py3. Is
that a concern?
> 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(
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
More information about the Mercurial-devel
mailing list