tool.py — langchain Source File
Architecture documentation for tool.py, a python file in the langchain codebase. 4 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 4b3b0b9c_6ea4_ab20_7f16_83ea9fcdd0b6["tool.py"] feec1ec4_6917_867b_d228_b134d0ff8099["typing"] 4b3b0b9c_6ea4_ab20_7f16_83ea9fcdd0b6 --> feec1ec4_6917_867b_d228_b134d0ff8099 e4596b95_ed91_0e47_96dd_7e987bc14a69["langchain_classic._api"] 4b3b0b9c_6ea4_ab20_7f16_83ea9fcdd0b6 --> e4596b95_ed91_0e47_96dd_7e987bc14a69 ad50b10a_ee26_4916_fcfc_d87d63a8ad76["langchain_community.tools"] 4b3b0b9c_6ea4_ab20_7f16_83ea9fcdd0b6 --> ad50b10a_ee26_4916_fcfc_d87d63a8ad76 50b8f807_7205_fe2a_dcef_88e1256072b7["langchain_community.tools.json.tool"] 4b3b0b9c_6ea4_ab20_7f16_83ea9fcdd0b6 --> 50b8f807_7205_fe2a_dcef_88e1256072b7 style 4b3b0b9c_6ea4_ab20_7f16_83ea9fcdd0b6 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
"""This module provides dynamic access to deprecated JSON tools in LangChain.
It ensures backward compatibility by forwarding references such as
`JsonGetValueTool`, `JsonListKeysTool`, and `JsonSpec` to their updated
locations within the `langchain_community.tools` namespace.
This setup allows legacy code to continue working while guiding developers
toward using the updated module paths.
"""
from typing import TYPE_CHECKING, Any
from langchain_classic._api import create_importer
if TYPE_CHECKING:
from langchain_community.tools import JsonGetValueTool, JsonListKeysTool
from langchain_community.tools.json.tool import JsonSpec
# Create a way to dynamically look up deprecated imports.
# Used to consolidate logic for raising deprecation warnings and
# handling optional imports.
DEPRECATED_LOOKUP = {
"JsonSpec": "langchain_community.tools.json.tool",
"JsonListKeysTool": "langchain_community.tools",
"JsonGetValueTool": "langchain_community.tools",
}
_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP)
def __getattr__(name: str) -> Any:
"""Dynamically retrieve attributes from the updated module path.
This method is used to resolve deprecated attribute imports
at runtime and forward them to their new locations.
Args:
name: The name of the attribute to import.
Returns:
The resolved attribute from the appropriate updated module.
"""
return _import_attribute(name)
__all__ = [
"JsonGetValueTool",
"JsonListKeysTool",
"JsonSpec",
]
Domain
Subdomains
Functions
Dependencies
- langchain_classic._api
- langchain_community.tools
- langchain_community.tools.json.tool
- typing
Source
Frequently Asked Questions
What does tool.py do?
tool.py is a source file in the langchain codebase, written in python. It belongs to the LangChainCore domain, MessageInterface subdomain.
What functions are defined in tool.py?
tool.py defines 2 function(s): __getattr__, langchain_community.
What does tool.py depend on?
tool.py imports 4 module(s): langchain_classic._api, langchain_community.tools, langchain_community.tools.json.tool, typing.
Where is tool.py in the architecture?
tool.py is located at libs/langchain/langchain_classic/tools/json/tool.py (domain: LangChainCore, subdomain: MessageInterface, directory: libs/langchain/langchain_classic/tools/json).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free