def visitFromImport(self, import_stmt, import_info): resource = import_info.get_imported_resource(self.context) if resource is None: return None absolute_name = importinfo.get_module_name(self.pycore, resource) if import_info.module_name != absolute_name: import_stmt.import_info = importinfo.FromImport( absolute_name, 0, import_info.names_and_aliases)
def get_from_import(self, resource, name): """The from import statement for `name` in `resource`""" module_name = get_module_name(self.pycore, resource) names = [] if isinstance(name, list): names = [(imported, None) for imported in name] else: names = [(name, None),] return FromImport(module_name, 0, tuple(names))
def _get_relative_to_absolute_list(self, import_info): result = [] for name, alias in import_info.names_and_aliases: if alias is not None: continue resource = self.pycore.find_module(name, current_folder=self.folder) if resource is None: continue absolute_name = importinfo.get_module_name(self.pycore, resource) if absolute_name != name: result.append((name, absolute_name)) return result
def visitNormalImport(self, import_stmt, import_info): self.to_be_absolute.extend(self._get_relative_to_absolute_list(import_info)) new_pairs = [] for name, alias in import_info.names_and_aliases: resource = self.pycore.find_module(name, current_folder=self.folder) if resource is None: new_pairs.append((name, alias)) continue absolute_name = importinfo.get_module_name(self.pycore, resource) new_pairs.append((absolute_name, alias)) if not import_info._are_name_and_alias_lists_equal( new_pairs, import_info.names_and_aliases): import_stmt.import_info = importinfo.NormalImport(new_pairs)
def get_import(self, resource): """The import statement for `resource`""" module_name = get_module_name(self.pycore, resource) return NormalImport(((module_name, None), ))