[PATCH 1 of 6] import-checker: refactor source reading
Simon Farnsworth
simonfar at fb.com
Wed Apr 13 06:35:27 EDT 2016
On 12/04/2016 22:53, timeless wrote:
> # HG changeset patch
> # User timeless <timeless at mozdev.org>
> # Date 1460414044 0
> # Mon Apr 11 22:34:04 2016 +0000
> # Node ID df592defa539bf8a1f338a81bfbbb73f6e7d9935
> # Parent 16255662446d2ce08bd0a4210df30afe3d6377f6
> import-checker: refactor source reading
>
> This will allow .t files to generate multiple sources.
> It will also allow .py doctests to generate additional sources.
>
> diff --git a/contrib/import-checker.py b/contrib/import-checker.py
> --- a/contrib/import-checker.py
> +++ b/contrib/import-checker.py
> @@ -567,6 +567,11 @@
> def _cycle_sortkey(c):
> return len(c), c
>
> +def sources(f, modname):
> + if f.endswith('.py'):
> + with open(f) as src:
> + yield src.read(), modname
> +
> def main(argv):
> if len(argv) < 2 or (argv[1] == '-' and len(argv) > 2):
> print('Usage: %s {-|file [file] [file] ...}')
> @@ -581,14 +586,13 @@
> modname = dotted_name_of_path(source_path, trimpure=True)
> localmods[modname] = source_path
I really dislike the use of modname2 below:
> for modname, source_path in sorted(localmods.items()):
If you made "modname" here into "localmodname", then...
> - f = open(source_path)
> - src = f.read()
> - used_imports[modname] = sorted(
> - imported_modules(src, modname, localmods, ignore_nested=True))
> - for error, lineno in verify_import_convention(modname, src, localmods):
> - any_errors = True
> - print('%s:%d: %s' % (source_path, lineno, error))
> - f.close()
> + for src, modname2 in sources(source_path, modname):
you could remove the digit 2 from modname here.
> + used_imports[modname2] = sorted(
> + imported_modules(src, modname2, localmods, ignore_nested=True))
> + for error, lineno in verify_import_convention(modname2, src,
> + localmods):
> + any_errors = True
> + print('%s:%d: %s' % (source_path, lineno, error))
> cycles = find_cycles(used_imports)
> if cycles:
> firstmods = set()
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org
> https://urldefense.proofpoint.com/v2/url?u=https-3A__www.mercurial-2Dscm.org_mailman_listinfo_mercurial-2Ddevel&d=CwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=mEgSWILcY4c4W3zjApBQLA&m=pvGuifaQhTCM-DbZ9YFx6ITbkTOsLkXTgbVo2sN8MVo&s=SZABDGHssoBhSJ53F_ZcpwW1xKL94YLKC76VTbFc3vg&e=
>
--
Simon Farnsworth
More information about the Mercurial-devel
mailing list