# HG changeset patch # User Siddharth Agarwal # Date 1495393741 25200 # Node ID d02888308235491f2511116a269058e577e895d3 # Parent 1651977596c008cce8a697f7e0277c4aff366ea8 import-checker: add a way to directly import certain symbols We'll use this for the 'demandimport' symbol in an upcoming patch. diff -r 1651977596c0 -r d02888308235 contrib/import-checker.py --- a/contrib/import-checker.py Sun May 21 13:34:42 2017 -0700 +++ b/contrib/import-checker.py Sun May 21 12:09:01 2017 -0700 @@ -24,6 +24,9 @@ 'mercurial.node', ) +# Whitelist of symbols that can be directly imported. +directsymbols = () + # Modules that must be aliased because they are commonly confused with # common variables and can create aliasing and readability issues. requirealias = { @@ -464,10 +467,11 @@ found = fromlocal(node.module, node.level) if found and found[2]: # node.module is a package prefix = found[0] + '.' - symbols = [n.name for n in node.names - if not fromlocal(prefix + n.name)] + symbols = (n.name for n in node.names + if not fromlocal(prefix + n.name)) else: - symbols = [n.name for n in node.names] + symbols = (n.name for n in node.names) + symbols = [sym for sym in symbols if sym not in directsymbols] if node.module and node.col_offset == root_col_offset: if symbols and fullname not in allowsymbolimports: yield msg('direct symbol import %s from %s',