예제 #1
0
 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)
예제 #2
0
 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
예제 #3
0
파일: aststrip.py 프로젝트: kgisl/mypy
 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
예제 #4
0
 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
예제 #5
0
파일: fastparse.py 프로젝트: tony/mypy
 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
예제 #6
0
 def visit_import(self, node: Import) -> Node:
     return Import(node.ids[:])
예제 #7
0
 def visit_import(self, node: Import) -> None:
     node.is_top_level = self.is_global_scope
     super().visit_import(node)
예제 #8
0
 def visit_import(self, node: Import) -> None:
     node.is_mypy_only = True
예제 #9
0
 def visit_import(self, node: Import) -> None:
     node.is_unreachable = True
예제 #10
0
 def visit_import(self, node: Import) -> None:
     node.is_top_level = self.is_global_scope
     super().visit_import(node)
예제 #11
0
 def visit_Import(self, n):
     i = Import([(a.name, a.asname) for a in n.names])
     self.imports.append(i)
     return i
예제 #12
0
 def visit_import(self, node: Import) -> None:
     node.is_mypy_only = True
예제 #13
0
 def visit_import(self, node: Import) -> None:
     node.is_unreachable = True