contrib/import-checker.py
changeset 28704 1fa6fdb72275
parent 28703 a274c4f9087a
child 28713 806d260c6f3b
equal deleted inserted replaced
28703:a274c4f9087a 28704:1fa6fdb72275
   552     >>> print('\\n'.join(sorted(find_cycles(imports))))
   552     >>> print('\\n'.join(sorted(find_cycles(imports))))
   553     top.bar -> top.baz -> top.foo -> top.bar
   553     top.bar -> top.baz -> top.foo -> top.bar
   554     top.foo -> top.qux -> top.foo
   554     top.foo -> top.qux -> top.foo
   555     """
   555     """
   556     cycles = set()
   556     cycles = set()
   557     for mod in sorted(imports.iterkeys()):
   557     for mod in sorted(imports.keys()):
   558         try:
   558         try:
   559             checkmod(mod, imports)
   559             checkmod(mod, imports)
   560         except CircularImport as e:
   560         except CircularImport as e:
   561             cycle = e.args[0]
   561             cycle = e.args[0]
   562             cycles.add(" -> ".join(rotatecycle(cycle)))
   562             cycles.add(" -> ".join(rotatecycle(cycle)))
   576     used_imports = {}
   576     used_imports = {}
   577     any_errors = False
   577     any_errors = False
   578     for source_path in argv[1:]:
   578     for source_path in argv[1:]:
   579         modname = dotted_name_of_path(source_path, trimpure=True)
   579         modname = dotted_name_of_path(source_path, trimpure=True)
   580         localmods[modname] = source_path
   580         localmods[modname] = source_path
   581     for modname, source_path in sorted(localmods.iteritems()):
   581     for modname, source_path in sorted(localmods.items()):
   582         f = open(source_path)
   582         f = open(source_path)
   583         src = f.read()
   583         src = f.read()
   584         used_imports[modname] = sorted(
   584         used_imports[modname] = sorted(
   585             imported_modules(src, modname, localmods, ignore_nested=True))
   585             imported_modules(src, modname, localmods, ignore_nested=True))
   586         for error, lineno in verify_import_convention(modname, src, localmods):
   586         for error, lineno in verify_import_convention(modname, src, localmods):