Visitor Class — langchain Architecture
Architecture documentation for the Visitor class in structured_query.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD 18e3bab6_a53a_ad0f_2cea_5bfc37a5d878["Visitor"] 3255809f_c60a_7efd_1576_4239e9059ea0["Operator"] 18e3bab6_a53a_ad0f_2cea_5bfc37a5d878 -->|extends| 3255809f_c60a_7efd_1576_4239e9059ea0 c1377b5d_a079_68f1_77b9_1103b2e76982["Comparator"] 18e3bab6_a53a_ad0f_2cea_5bfc37a5d878 -->|extends| c1377b5d_a079_68f1_77b9_1103b2e76982 2910db70_4057_4517_fbc4_a618465c787c["structured_query.py"] 18e3bab6_a53a_ad0f_2cea_5bfc37a5d878 -->|defined in| 2910db70_4057_4517_fbc4_a618465c787c c613e8c3_4678_966f_08bb_558583123227["_validate_func()"] 18e3bab6_a53a_ad0f_2cea_5bfc37a5d878 -->|method| c613e8c3_4678_966f_08bb_558583123227 e60fdb48_09a5_cf10_4a8e_b6c2ad50e479["visit_operation()"] 18e3bab6_a53a_ad0f_2cea_5bfc37a5d878 -->|method| e60fdb48_09a5_cf10_4a8e_b6c2ad50e479 86621f70_1be4_21db_f786_d01ed732acc0["visit_comparison()"] 18e3bab6_a53a_ad0f_2cea_5bfc37a5d878 -->|method| 86621f70_1be4_21db_f786_d01ed732acc0 71e6cfdd_ff3b_fa0b_6c5e_62319d1afa02["visit_structured_query()"] 18e3bab6_a53a_ad0f_2cea_5bfc37a5d878 -->|method| 71e6cfdd_ff3b_fa0b_6c5e_62319d1afa02
Relationship Graph
Source Code
libs/core/langchain_core/structured_query.py lines 15–68
class Visitor(ABC):
"""Defines interface for IR translation using a visitor pattern."""
allowed_comparators: Sequence[Comparator] | None = None
"""Allowed comparators for the visitor."""
allowed_operators: Sequence[Operator] | None = None
"""Allowed operators for the visitor."""
def _validate_func(self, func: Operator | Comparator) -> None:
if (
isinstance(func, Operator)
and self.allowed_operators is not None
and func not in self.allowed_operators
):
msg = (
f"Received disallowed operator {func}. Allowed "
f"comparators are {self.allowed_operators}"
)
raise ValueError(msg)
if (
isinstance(func, Comparator)
and self.allowed_comparators is not None
and func not in self.allowed_comparators
):
msg = (
f"Received disallowed comparator {func}. Allowed "
f"comparators are {self.allowed_comparators}"
)
raise ValueError(msg)
@abstractmethod
def visit_operation(self, operation: Operation) -> Any:
"""Translate an Operation.
Args:
operation: Operation to translate.
"""
@abstractmethod
def visit_comparison(self, comparison: Comparison) -> Any:
"""Translate a Comparison.
Args:
comparison: Comparison to translate.
"""
@abstractmethod
def visit_structured_query(self, structured_query: StructuredQuery) -> Any:
"""Translate a StructuredQuery.
Args:
structured_query: StructuredQuery to translate.
"""
Defined In
Extends
Source
Frequently Asked Questions
What is the Visitor class?
Visitor is a class in the langchain codebase, defined in libs/core/langchain_core/structured_query.py.
Where is Visitor defined?
Visitor is defined in libs/core/langchain_core/structured_query.py at line 15.
What does Visitor extend?
Visitor extends Operator, Comparator.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free