Home / Class/ FunctionNonLocals Class — langchain Architecture

FunctionNonLocals Class — langchain Architecture

Architecture documentation for the FunctionNonLocals class in utils.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  4c3cd6a5_6a64_daf4_cfa7_5dd764cdc784["FunctionNonLocals"]
  719a9f62_5ae2_b091_92e4_22d9bc04599d["utils.py"]
  4c3cd6a5_6a64_daf4_cfa7_5dd764cdc784 -->|defined in| 719a9f62_5ae2_b091_92e4_22d9bc04599d
  90745cc3_e04a_f10e_7162_c7b2d991f5cc["__init__()"]
  4c3cd6a5_6a64_daf4_cfa7_5dd764cdc784 -->|method| 90745cc3_e04a_f10e_7162_c7b2d991f5cc
  b1ea3777_eb5e_8a37_656f_792e9a118c36["visit_FunctionDef()"]
  4c3cd6a5_6a64_daf4_cfa7_5dd764cdc784 -->|method| b1ea3777_eb5e_8a37_656f_792e9a118c36
  a3f73bda_6a5c_d157_3659_b684da868c61["visit_AsyncFunctionDef()"]
  4c3cd6a5_6a64_daf4_cfa7_5dd764cdc784 -->|method| a3f73bda_6a5c_d157_3659_b684da868c61
  78109f7c_b5c1_155f_7ef9_9453981ff3eb["visit_Lambda()"]
  4c3cd6a5_6a64_daf4_cfa7_5dd764cdc784 -->|method| 78109f7c_b5c1_155f_7ef9_9453981ff3eb

Relationship Graph

Source Code

libs/core/langchain_core/runnables/utils.py lines 304–342

class FunctionNonLocals(ast.NodeVisitor):
    """Get the nonlocal variables accessed of a function."""

    def __init__(self) -> None:
        """Create a FunctionNonLocals visitor."""
        self.nonlocals: set[str] = set()

    @override
    def visit_FunctionDef(self, node: ast.FunctionDef) -> None:
        """Visit a function definition.

        Args:
            node: The node to visit.
        """
        visitor = NonLocals()
        visitor.visit(node)
        self.nonlocals.update(visitor.loads - visitor.stores)

    @override
    def visit_AsyncFunctionDef(self, node: ast.AsyncFunctionDef) -> None:
        """Visit an async function definition.

        Args:
            node: The node to visit.
        """
        visitor = NonLocals()
        visitor.visit(node)
        self.nonlocals.update(visitor.loads - visitor.stores)

    @override
    def visit_Lambda(self, node: ast.Lambda) -> None:
        """Visit a lambda function.

        Args:
            node: The node to visit.
        """
        visitor = NonLocals()
        visitor.visit(node)
        self.nonlocals.update(visitor.loads - visitor.stores)

Frequently Asked Questions

What is the FunctionNonLocals class?
FunctionNonLocals is a class in the langchain codebase, defined in libs/core/langchain_core/runnables/utils.py.
Where is FunctionNonLocals defined?
FunctionNonLocals is defined in libs/core/langchain_core/runnables/utils.py at line 304.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free