def normalize(self, targets): """Return a normalized PythonDeclaration, transforming from relative imports to absolute imports. :param targets: list of filenames. Including __init__.py files. """ for target in targets: if "__init__.py" not in target: declaration = target declaration = declaration.replace("/", ".") python_extension_re = re.compile("\.py$") declaration = python_extension_re.sub('', declaration) original_import = self.python_import() alias = original_import.alias if original_import.is_aliasable(): alias = original_import.module updated_import = PythonImport(module=declaration, names=original_import.names, alias=alias) return PythonDeclaration(updated_import.to_python_statement())
def python_import(self): try: return self._python_import except AttributeError: self._python_import = PythonImport.parse(self.name) return self._python_import