"""LangSmith Client.""" from importlib import metadata from typing import TYPE_CHECKING, Any if TYPE_CHECKING: from langsmith._expect import expect from langsmith.async_client import AsyncClient from langsmith.client import Client from langsmith.evaluation import aevaluate, evaluate from langsmith.evaluation.evaluator import EvaluationResult, RunEvaluator from langsmith.run_helpers import ( get_current_run_tree, get_tracing_context, trace, traceable, tracing_context, ) from langsmith.run_trees import RunTree from langsmith.testing._internal import test, unit from langsmith.utils import ( ContextThreadPoolExecutor, ) # Avoid calling into importlib on every call to __version__ version = "" try: version = metadata.version(__package__) except metadata.PackageNotFoundError: pass def __getattr__(name: str) -> Any: if name == "__version__": return version elif name == "Client": from langsmith.client import Client return Client elif name == "AsyncClient": from langsmith.async_client import AsyncClient return AsyncClient elif name == "RunTree": from langsmith.run_trees import RunTree return RunTree elif name == "EvaluationResult": from langsmith.evaluation.evaluator import EvaluationResult return EvaluationResult elif name == "RunEvaluator": from langsmith.evaluation.evaluator import RunEvaluator return RunEvaluator elif name == "trace": from langsmith.run_helpers import trace return trace elif name == "traceable": from langsmith.run_helpers import traceable return traceable elif name == "test": from langsmith.testing._internal import test return test elif name == "expect": from langsmith._expect import expect return expect elif name == "evaluate": from langsmith.evaluation import evaluate return evaluate elif name == "evaluate_existing": from langsmith.evaluation import evaluate_existing return evaluate_existing elif name == "aevaluate": from langsmith.evaluation import aevaluate return aevaluate elif name == "aevaluate_existing": from langsmith.evaluation import aevaluate_existing return aevaluate_existing elif name == "tracing_context": from langsmith.run_helpers import tracing_context return tracing_context elif name == "get_tracing_context": from langsmith.run_helpers import get_tracing_context return get_tracing_context elif name == "get_current_run_tree": from langsmith.run_helpers import get_current_run_tree return get_current_run_tree elif name == "unit": from langsmith.testing._internal import unit return unit elif name == "ContextThreadPoolExecutor": from langsmith.utils import ( ContextThreadPoolExecutor, ) return ContextThreadPoolExecutor raise AttributeError(f"module {__name__!r} has no attribute {name!r}") __all__ = [ "Client", "RunTree", "__version__", "EvaluationResult", "RunEvaluator", "anonymizer", "traceable", "trace", "unit", "test", "expect", "evaluate", "aevaluate", "tracing_context", "get_tracing_context", "get_current_run_tree", "ContextThreadPoolExecutor", "AsyncClient", ]
Memory