def visit_import(self, node: Import) -> None: node.is_top_level = self.sem.is_module_scope() # This is similar to visit_import_from -- see the comment there. if not self.sem.is_module_scope(): return for id, as_id in node.ids: imported_id = as_id or id # For 'import a.b.c' we create symbol 'a'. imported_id = imported_id.split('.')[0] if imported_id not in self.sem.globals: self.add_symbol(imported_id, SymbolTableNode(UNBOUND_IMPORTED, None), node)
def visit_Import(self, n: ast27.Import) -> Import: names = [] # type: List[Tuple[str, Optional[str]]] for alias in n.names: name = self.translate_module_id(alias.name) asname = alias.asname if asname is None and name != alias.name: # if the module name has been translated (and it's not already # an explicit import-as), make it an implicit import-as the # original name asname = alias.name names.append((name, asname)) i = Import(names) self.imports.append(i) return i
def visit_import(self, node: Import) -> None: if node.assignments: node.assignments = [] else: if self.names: # Reset entries in the symbol table. This is necessary since # otherwise the semantic analyzer will think that the import # assigns to an existing name instead of defining a new one. for name, as_name in node.ids: imported_name = as_name or name initial = imported_name.split('.')[0] symnode = self.names[initial] symnode.kind = UNBOUND_IMPORTED symnode.node = None
def visit_Import(self, n: ast35.Import) -> Node: i = Import([(self.translate_module_id(a.name), a.asname) for a in n.names]) self.imports.append(i) return i
def visit_import(self, node: Import) -> Node: return Import(node.ids[:])
def visit_import(self, node: Import) -> None: node.is_top_level = self.is_global_scope super().visit_import(node)
def visit_import(self, node: Import) -> None: node.is_mypy_only = True
def visit_import(self, node: Import) -> None: node.is_unreachable = True
def visit_Import(self, n): i = Import([(a.name, a.asname) for a in n.names]) self.imports.append(i) return i