What is ast.ImportFrom(module, names, level) in Python?
ast.ImportFrom(module, names, level) is a class defined in the ast module that is used to express the from x import y statement in Python in the form of an
When the parse() method of ast is called on a Python source code that contains the import keyword preceded by from, the ast.ImportFrom class is invoked, which expresses the from x import y statement to a node in an ast tree data structure.
The ast.Import class represents the ImportFrom node type in the ast tree. The module in the class parameter contains the name of the module, names contains the list of alias nodes representing the methods imported from the module, and level is an integer representing the level of import. For instance, means absolute import.
Note: If the
importstatement is NOT preceded by thefromkeyword, then theast.Importclass is invoked instead.
Example
import astfrom pprint import pprintclass ImportFromVisitor(ast.NodeVisitor):def visit_ImportFrom(self, node):print('Node type: ImportFrom\nFields:', node._fields)ast.NodeVisitor.generic_visit(self, node)def visit_alias(self, node):print('Node type: alias\nFields:', node._fields)ast.NodeVisitor.generic_visit(self, node)visitor = ImportFromVisitor()tree = ast.parse('from ast import parse, dump')pprint(ast.dump(tree))visitor.visit(tree)
Explanation
- We define an
ImportFromVisitorclass that extends from the parent classast.NodeVisitor. We override the predefinedvisit_ImportFromandvisit_aliasmethods in the parent class, which receive theImportFromandaliasnodes, respectively. In the method, we print the type and the fields inside the node and call thegeneric_visit()method, which invokes the propagation of visit on the children nodes of the input node. - We initialize a
visitorobject of the classImportFromVisitor. - We write the Python statement
from ast import parse, dumpand send it to theast.parse()method, which returns the result of the expression after evaluation, and then store it intree. - The
ast.dump()method returns a formatted string of the tree structure intree. - The
visitmethod available to thevisitorobject visits all the nodes in the tree structure.
Free Resources