utils.py — langchain Source File
Architecture documentation for utils.py, a python file in the langchain codebase. 15 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 02897ee0_0cd2_75d9_9323_b7df8540b3b3["utils.py"] 69e1d8cc_6173_dcd0_bfdf_2132d8e1ce56["contextlib"] 02897ee0_0cd2_75d9_9323_b7df8540b3b3 --> 69e1d8cc_6173_dcd0_bfdf_2132d8e1ce56 af34f08b_0ede_2b87_0db6_983d74ed0249["datetime"] 02897ee0_0cd2_75d9_9323_b7df8540b3b3 --> af34f08b_0ede_2b87_0db6_983d74ed0249 c990f2d7_9509_7cea_ca95_51ad57dbe5c6["functools"] 02897ee0_0cd2_75d9_9323_b7df8540b3b3 --> c990f2d7_9509_7cea_ca95_51ad57dbe5c6 3888b2bf_bffe_7c16_770f_a406d400119c["importlib"] 02897ee0_0cd2_75d9_9323_b7df8540b3b3 --> 3888b2bf_bffe_7c16_770f_a406d400119c 9e98f0a7_ec6e_708f_4f1b_e9428b316e1c["os"] 02897ee0_0cd2_75d9_9323_b7df8540b3b3 --> 9e98f0a7_ec6e_708f_4f1b_e9428b316e1c 0c635125_6987_b8b3_7ff7_d60249aecde7["warnings"] 02897ee0_0cd2_75d9_9323_b7df8540b3b3 --> 0c635125_6987_b8b3_7ff7_d60249aecde7 cfe2bde5_180e_e3b0_df2b_55b3ebaca8e7["collections.abc"] 02897ee0_0cd2_75d9_9323_b7df8540b3b3 --> cfe2bde5_180e_e3b0_df2b_55b3ebaca8e7 fdba230d_a403_6744_bc5b_7eb58b19f200["importlib.metadata"] 02897ee0_0cd2_75d9_9323_b7df8540b3b3 --> fdba230d_a403_6744_bc5b_7eb58b19f200 8e2034b7_ceb8_963f_29fc_2ea6b50ef9b3["typing"] 02897ee0_0cd2_75d9_9323_b7df8540b3b3 --> 8e2034b7_ceb8_963f_29fc_2ea6b50ef9b3 23a1b3c0_d78f_7f2f_8eca_25b1ca6a84a6["uuid.py"] 02897ee0_0cd2_75d9_9323_b7df8540b3b3 --> 23a1b3c0_d78f_7f2f_8eca_25b1ca6a84a6 4e1b1c3b_a825_6d90_8484_f45a18e7a581["packaging.version"] 02897ee0_0cd2_75d9_9323_b7df8540b3b3 --> 4e1b1c3b_a825_6d90_8484_f45a18e7a581 930c470c_e6f2_ae5f_1129_48cfd16873f9["pydantic.py"] 02897ee0_0cd2_75d9_9323_b7df8540b3b3 --> 930c470c_e6f2_ae5f_1129_48cfd16873f9 792c09b7_7372_31d2_e29c_dc98949aa3c2["requests"] 02897ee0_0cd2_75d9_9323_b7df8540b3b3 --> 792c09b7_7372_31d2_e29c_dc98949aa3c2 91721f45_4909_e489_8c1f_084f8bd87145["typing_extensions"] 02897ee0_0cd2_75d9_9323_b7df8540b3b3 --> 91721f45_4909_e489_8c1f_084f8bd87145 style 02897ee0_0cd2_75d9_9323_b7df8540b3b3 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
"""Generic utility functions."""
import contextlib
import datetime
import functools
import importlib
import os
import warnings
from collections.abc import Callable, Iterator, Sequence
from importlib.metadata import version
from typing import Any, overload
from uuid import uuid4
from packaging.version import parse
from pydantic import SecretStr
from requests import HTTPError, Response
from typing_extensions import override
from langchain_core.utils.pydantic import (
is_pydantic_v1_subclass,
)
def xor_args(*arg_groups: tuple[str, ...]) -> Callable:
"""Validate specified keyword args are mutually exclusive.
Args:
*arg_groups: Groups of mutually exclusive keyword args.
Returns:
Decorator that validates the specified keyword args are mutually exclusive.
"""
def decorator(func: Callable) -> Callable:
@functools.wraps(func)
def wrapper(*args: Any, **kwargs: Any) -> Any:
"""Validate exactly one arg in each group is not None."""
counts = [
sum(1 for arg in arg_group if kwargs.get(arg) is not None)
for arg_group in arg_groups
]
invalid_groups = [i for i, count in enumerate(counts) if count != 1]
if invalid_groups:
invalid_group_names = [", ".join(arg_groups[i]) for i in invalid_groups]
msg = (
"Exactly one argument in each of the following"
" groups must be defined:"
f" {', '.join(invalid_group_names)}"
)
raise ValueError(msg)
return func(*args, **kwargs)
return wrapper
return decorator
def raise_for_status_with_text(response: Response) -> None:
"""Raise an error with the response text.
// ... (462 more lines)
Domain
Subdomains
Functions
Classes
Dependencies
- collections.abc
- contextlib
- datetime
- functools
- importlib
- importlib.metadata
- langchain_core.utils.pydantic
- os
- packaging.version
- pydantic.py
- requests
- typing
- typing_extensions
- uuid.py
- warnings
Source
Frequently Asked Questions
What does utils.py do?
utils.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 utils.py?
utils.py defines 12 function(s): _build_model_kwargs, build_extra_kwargs, check_package_version, convert_to_secret_str, ensure_id, from_env, get_pydantic_field_names, guard_import, mock_now, raise_for_status_with_text, and 2 more.
What does utils.py depend on?
utils.py imports 15 module(s): collections.abc, contextlib, datetime, functools, importlib, importlib.metadata, langchain_core.utils.pydantic, os, and 7 more.
Where is utils.py in the architecture?
utils.py is located at libs/core/langchain_core/utils/utils.py (domain: CoreAbstractions, subdomain: RunnableInterface, directory: libs/core/langchain_core/utils).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free