langchain.py — langchain Source File
Architecture documentation for langchain.py, a python file in the langchain codebase. 16 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR fc379c05_5e7a_829b_6d3a_08c3919b3f80["langchain.py"] 2a7f66a7_8738_3d47_375b_70fcaa6ac169["logging"] fc379c05_5e7a_829b_6d3a_08c3919b3f80 --> 2a7f66a7_8738_3d47_375b_70fcaa6ac169 082415a8_067b_221f_7984_07d87009267d["concurrent.futures"] fc379c05_5e7a_829b_6d3a_08c3919b3f80 --> 082415a8_067b_221f_7984_07d87009267d af34f08b_0ede_2b87_0db6_983d74ed0249["datetime"] fc379c05_5e7a_829b_6d3a_08c3919b3f80 --> af34f08b_0ede_2b87_0db6_983d74ed0249 8e2034b7_ceb8_963f_29fc_2ea6b50ef9b3["typing"] fc379c05_5e7a_829b_6d3a_08c3919b3f80 --> 8e2034b7_ceb8_963f_29fc_2ea6b50ef9b3 8dfa0cac_d802_3ccd_f710_43a5e70da3a5["uuid"] fc379c05_5e7a_829b_6d3a_08c3919b3f80 --> 8dfa0cac_d802_3ccd_f710_43a5e70da3a5 023156c8_e306_6129_d953_9f1dac71e6fd["langsmith"] fc379c05_5e7a_829b_6d3a_08c3919b3f80 --> 023156c8_e306_6129_d953_9f1dac71e6fd 30db3e5b_4549_fdf8_eed3_1cfd8cacbe56["tenacity"] fc379c05_5e7a_829b_6d3a_08c3919b3f80 --> 30db3e5b_4549_fdf8_eed3_1cfd8cacbe56 91721f45_4909_e489_8c1f_084f8bd87145["typing_extensions"] fc379c05_5e7a_829b_6d3a_08c3919b3f80 --> 91721f45_4909_e489_8c1f_084f8bd87145 b0e25a43_5731_df3c_a118_b365c3f106a5["langchain_core.env"] fc379c05_5e7a_829b_6d3a_08c3919b3f80 --> b0e25a43_5731_df3c_a118_b365c3f106a5 36cce5da_d805_04c3_7e86_e1b4dd49b497["langchain_core.load"] fc379c05_5e7a_829b_6d3a_08c3919b3f80 --> 36cce5da_d805_04c3_7e86_e1b4dd49b497 4eb42b7a_5c64_04cb_fcec_1401d5c10628["langchain_core.messages.ai"] fc379c05_5e7a_829b_6d3a_08c3919b3f80 --> 4eb42b7a_5c64_04cb_fcec_1401d5c10628 707209ca_c3d6_f9c6_7ec7_2b2df92c9aa3["langchain_core.tracers._compat"] fc379c05_5e7a_829b_6d3a_08c3919b3f80 --> 707209ca_c3d6_f9c6_7ec7_2b2df92c9aa3 59d7001f_fb28_1819_31fc_7fb0380a8b32["langchain_core.tracers.base"] fc379c05_5e7a_829b_6d3a_08c3919b3f80 --> 59d7001f_fb28_1819_31fc_7fb0380a8b32 17e2fb09_6b0f_338f_1319_77bc43602969["langchain_core.tracers.schemas"] fc379c05_5e7a_829b_6d3a_08c3919b3f80 --> 17e2fb09_6b0f_338f_1319_77bc43602969 style fc379c05_5e7a_829b_6d3a_08c3919b3f80 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
"""A tracer implementation that records to LangChain endpoint."""
from __future__ import annotations
import logging
from concurrent.futures import ThreadPoolExecutor
from datetime import datetime, timezone
from typing import TYPE_CHECKING, Any
from uuid import UUID
from langsmith import Client, get_tracing_context
from langsmith import run_trees as rt
from langsmith import utils as ls_utils
from tenacity import (
Retrying,
retry_if_exception_type,
stop_after_attempt,
wait_exponential_jitter,
)
from typing_extensions import override
from langchain_core.env import get_runtime_environment
from langchain_core.load import dumpd
from langchain_core.messages.ai import UsageMetadata, add_usage
from langchain_core.tracers._compat import run_construct, run_to_dict
from langchain_core.tracers.base import BaseTracer
from langchain_core.tracers.schemas import Run
if TYPE_CHECKING:
from langchain_core.messages import BaseMessage
from langchain_core.outputs import ChatGenerationChunk, GenerationChunk
logger = logging.getLogger(__name__)
_LOGGED = set()
_EXECUTOR: ThreadPoolExecutor | None = None
def log_error_once(method: str, exception: Exception) -> None:
"""Log an error once.
Args:
method: The method that raised the exception.
exception: The exception that was raised.
"""
if (method, type(exception)) in _LOGGED:
return
_LOGGED.add((method, type(exception)))
logger.error(exception)
def wait_for_all_tracers() -> None:
"""Wait for all tracers to finish."""
if rt._CLIENT is not None: # noqa: SLF001
rt._CLIENT.flush() # noqa: SLF001
def get_client() -> Client:
"""Get the client.
Returns:
// ... (318 more lines)
Domain
Subdomains
Functions
Classes
Dependencies
- concurrent.futures
- datetime
- langchain_core.env
- langchain_core.load
- langchain_core.messages
- langchain_core.messages.ai
- langchain_core.outputs
- langchain_core.tracers._compat
- langchain_core.tracers.base
- langchain_core.tracers.schemas
- langsmith
- logging
- tenacity
- typing
- typing_extensions
- uuid
Source
Frequently Asked Questions
What does langchain.py do?
langchain.py is a source file in the langchain codebase, written in python. It belongs to the CoreAbstractions domain, RunnableInterface subdomain.
What functions are defined in langchain.py?
langchain.py defines 6 function(s): _get_executor, _get_usage_metadata_from_generations, get_client, langchain_core, log_error_once, wait_for_all_tracers.
What does langchain.py depend on?
langchain.py imports 16 module(s): concurrent.futures, datetime, langchain_core.env, langchain_core.load, langchain_core.messages, langchain_core.messages.ai, langchain_core.outputs, langchain_core.tracers._compat, and 8 more.
Where is langchain.py in the architecture?
langchain.py is located at libs/core/langchain_core/tracers/langchain.py (domain: CoreAbstractions, subdomain: RunnableInterface, directory: libs/core/langchain_core/tracers).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free