Coverage for langsmith/__init__.py: 62%
74 statements
« prev ^ index » next coverage.py v7.10.1, created at 2025-12-11 16:15 -0800
« prev ^ index » next coverage.py v7.10.1, created at 2025-12-11 16:15 -0800
1"""LangSmith Client."""
3from typing import TYPE_CHECKING, Any
5if TYPE_CHECKING:
6 from langsmith._expect import expect
7 from langsmith.async_client import AsyncClient
8 from langsmith.client import Client
9 from langsmith.evaluation import aevaluate, evaluate
10 from langsmith.evaluation.evaluator import EvaluationResult, RunEvaluator
11 from langsmith.run_helpers import (
12 get_current_run_tree,
13 get_tracing_context,
14 set_run_metadata,
15 trace,
16 traceable,
17 tracing_context,
18 )
19 from langsmith.run_trees import RunTree
20 from langsmith.testing._internal import test, unit
21 from langsmith.utils import ContextThreadPoolExecutor
22 from langsmith.uuid import uuid7, uuid7_from_datetime
24# Avoid calling into importlib on every call to __version__
26__version__ = "0.4.59"
27version = __version__ # for backwards compatibility
30def __getattr__(name: str) -> Any:
31 if name == "__version__":
32 return version
33 elif name == "Client":
34 from langsmith.client import Client
36 return Client
37 elif name == "AsyncClient":
38 from langsmith.async_client import AsyncClient
40 return AsyncClient
41 elif name == "RunTree":
42 from langsmith.run_trees import RunTree
44 return RunTree
45 elif name == "EvaluationResult":
46 from langsmith.evaluation.evaluator import EvaluationResult
48 return EvaluationResult
49 elif name == "RunEvaluator":
50 from langsmith.evaluation.evaluator import RunEvaluator
52 return RunEvaluator
53 elif name == "trace":
54 from langsmith.run_helpers import trace
56 return trace
57 elif name == "traceable":
58 from langsmith.run_helpers import traceable
60 return traceable
62 elif name == "test":
63 from langsmith.testing._internal import test
65 return test
67 elif name == "expect":
68 from langsmith._expect import expect
70 return expect
71 elif name == "evaluate":
72 from langsmith.evaluation import evaluate
74 return evaluate
76 elif name == "evaluate_existing":
77 from langsmith.evaluation import evaluate_existing
79 return evaluate_existing
80 elif name == "aevaluate":
81 from langsmith.evaluation import aevaluate
83 return aevaluate
84 elif name == "aevaluate_existing":
85 from langsmith.evaluation import aevaluate_existing
87 return aevaluate_existing
88 elif name == "tracing_context":
89 from langsmith.run_helpers import tracing_context
91 return tracing_context
93 elif name == "get_tracing_context":
94 from langsmith.run_helpers import get_tracing_context
96 return get_tracing_context
97 elif name == "get_current_run_tree":
98 from langsmith.run_helpers import get_current_run_tree
100 return get_current_run_tree
101 elif name == "set_run_metadata":
102 from langsmith.run_helpers import set_run_metadata
104 return set_run_metadata
106 elif name == "unit":
107 from langsmith.testing._internal import unit
109 return unit
110 elif name == "ContextThreadPoolExecutor":
111 from langsmith.utils import ContextThreadPoolExecutor
113 return ContextThreadPoolExecutor
114 elif name == "configure":
115 from langsmith.run_trees import configure
117 return configure
118 elif name == "uuid7":
119 from langsmith.uuid import uuid7
121 return uuid7
122 elif name == "uuid7_from_datetime":
123 from langsmith.uuid import uuid7_from_datetime
125 return uuid7_from_datetime
127 raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
130__all__ = [
131 "Client",
132 "RunTree",
133 "__version__",
134 "EvaluationResult",
135 "RunEvaluator",
136 "anonymizer",
137 "traceable",
138 "trace",
139 "unit",
140 "test",
141 "expect",
142 "evaluate",
143 "aevaluate",
144 "tracing_context",
145 "get_tracing_context",
146 "get_current_run_tree",
147 "set_run_metadata",
148 "ContextThreadPoolExecutor",
149 "AsyncClient",
150 "uuid7",
151 "uuid7_from_datetime",
152]