[PATCH 1 of 6] import-checker: refactor source reading
timeless
timeless at gmail.com
Wed Apr 13 12:30:51 EDT 2016
Thanks, I didn't like it either, but I couldn't come up w/ a better
thing (and i did a bunch of refactors to make things happy, which is
why the linecont thing glitched).
On Wed, Apr 13, 2016 at 6:35 AM, Simon Farnsworth <simonfar at fb.com> wrote:
> 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
>
> _______________________________________________
> 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