Skip to content

visitor ¤

Code parsing and data extraction utilies.

This module exposes a public function, visit(), which parses the module code using parse(), and returns a new Module instance, populating its members recursively, by using a NodeVisitor-like class.

Classes:

  • Visitor

    This class is used to instantiate a visitor.

Functions:

  • visit

    Parse and visit a module file.

Visitor ¤

Visitor(
    module_name: str,
    filepath: Path,
    code: str,
    extensions: Extensions,
    parent: Module | None = None,
    docstring_parser: Parser | None = None,
    docstring_options: dict[str, Any] | None = None,
    lines_collection: LinesCollection | None = None,
    modules_collection: ModulesCollection | None = None,
)

This class is used to instantiate a visitor.

Visitors iterate on AST nodes to extract data from them.

Parameters:

  • module_name (str) –

    The module name.

  • filepath (Path) –

    The module filepath.

  • code (str) –

    The module source code.

  • extensions (Extensions) –

    The extensions to use when visiting.

  • parent (Module | None, default: None ) –

    An optional parent for the final module object.

  • docstring_parser (Parser | None, default: None ) –

    The docstring parser to use.

  • docstring_options (dict[str, Any] | None, default: None ) –

    The docstring parsing options.

  • lines_collection (LinesCollection | None, default: None ) –

    A collection of source code lines.

  • modules_collection (ModulesCollection | None, default: None ) –

    A collection of modules.

Methods:

decorators_to_labels ¤

decorators_to_labels(
    decorators: list[Decorator],
) -> set[str]

Build and return a set of labels based on decorators.

Parameters:

Returns:

  • set[str]

    A set of labels.

generic_visit ¤

generic_visit(node: AST) -> None

Extend the base generic visit with extensions.

Parameters:

  • node (AST) –

    The node to visit.

get_base_property ¤

get_base_property(
    decorators: list[Decorator], function: Function
) -> str | None

Check decorators to return the base property in case of setters and deleters.

Parameters:

Returns:

  • base_property ( str | None ) –

    The property for which the setter/deleted is set.

  • property_function ( str | None ) –

    Either "setter" or "deleter".

get_module ¤

get_module() -> Module

Build and return the object representing the module attached to this visitor.

This method triggers a complete visit of the module nodes.

Returns:

  • Module

    A module instance.

handle_attribute ¤

handle_attribute(
    node: Assign | AnnAssign,
    annotation: str | Expr | None = None,
) -> None

Handle an attribute (assignment) node.

Parameters:

  • node (Assign | AnnAssign) –

    The node to visit.

  • annotation (str | Expr | None, default: None ) –

    A potential annotation.

handle_function ¤

handle_function(
    node: AsyncFunctionDef | FunctionDef,
    labels: set | None = None,
) -> None

Handle a function definition node.

Parameters:

visit ¤

visit(node: AST) -> None

Extend the base visit with extensions.

Parameters:

  • node (AST) –

    The node to visit.

visit_annassign ¤

visit_annassign(node: AnnAssign) -> None

Visit an annotated assignment node.

Parameters:

visit_assign ¤

visit_assign(node: Assign) -> None

Visit an assignment node.

Parameters:

  • node (Assign) –

    The node to visit.

visit_asyncfunctiondef ¤

visit_asyncfunctiondef(node: AsyncFunctionDef) -> None

Visit an async function definition node.

Parameters:

visit_augassign ¤

visit_augassign(node: AugAssign) -> None

Visit an augmented assignment node.

Parameters:

visit_classdef ¤

visit_classdef(node: ClassDef) -> None

Visit a class definition node.

Parameters:

  • node (ClassDef) –

    The node to visit.

visit_functiondef ¤

visit_functiondef(node: FunctionDef) -> None

Visit a function definition node.

Parameters:

visit_if ¤

visit_if(node: If) -> None

Visit an "if" node.

Parameters:

  • node (If) –

    The node to visit.

visit_import ¤

visit_import(node: Import) -> None

Visit an import node.

Parameters:

  • node (Import) –

    The node to visit.

visit_importfrom ¤

visit_importfrom(node: ImportFrom) -> None

Visit an "import from" node.

Parameters:

visit_module ¤

visit_module(node: Module) -> None

Visit a module node.

Parameters:

  • node (Module) –

    The node to visit.

visit ¤

visit(
    module_name: str,
    filepath: Path,
    code: str,
    *,
    extensions: Extensions | None = None,
    parent: Module | None = None,
    docstring_parser: Parser | None = None,
    docstring_options: dict[str, Any] | None = None,
    lines_collection: LinesCollection | None = None,
    modules_collection: ModulesCollection | None = None
) -> Module

Parse and visit a module file.

Parameters:

  • module_name (str) –

    The module name (as when importing [from] it).

  • filepath (Path) –

    The module file path.

  • code (str) –

    The module contents.

  • extensions (Extensions | None, default: None ) –

    The extensions to use when visiting the AST.

  • parent (Module | None, default: None ) –

    The optional parent of this module.

  • docstring_parser (Parser | None, default: None ) –

    The docstring parser to use. By default, no parsing is done.

  • docstring_options (dict[str, Any] | None, default: None ) –

    Additional docstring parsing options.

  • lines_collection (LinesCollection | None, default: None ) –

    A collection of source code lines.

  • modules_collection (ModulesCollection | None, default: None ) –

    A collection of modules.

Returns:

  • Module

    The module, with its members populated.