lmnr 0.6.19__py3-none-any.whl → 0.6.21__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- lmnr/opentelemetry_lib/decorators/__init__.py +188 -138
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/__init__.py +674 -0
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/config.py +13 -0
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/event_emitter.py +211 -0
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/event_models.py +41 -0
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/span_utils.py +256 -0
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/streaming.py +295 -0
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/utils.py +179 -0
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/version.py +1 -0
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/__init__.py +485 -0
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/config.py +8 -0
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/event_emitter.py +143 -0
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/event_models.py +41 -0
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/span_utils.py +229 -0
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/utils.py +92 -0
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/version.py +1 -0
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/utils.py +3 -3
- lmnr/opentelemetry_lib/tracing/__init__.py +1 -1
- lmnr/opentelemetry_lib/tracing/_instrument_initializers.py +12 -7
- lmnr/opentelemetry_lib/tracing/processor.py +1 -1
- lmnr/opentelemetry_lib/utils/package_check.py +9 -0
- lmnr/sdk/browser/browser_use_otel.py +4 -2
- lmnr/sdk/browser/patchright_otel.py +0 -26
- lmnr/sdk/browser/playwright_otel.py +51 -78
- lmnr/sdk/browser/pw_utils.py +359 -114
- lmnr/sdk/client/asynchronous/async_client.py +13 -0
- lmnr/sdk/client/asynchronous/resources/__init__.py +2 -0
- lmnr/sdk/client/asynchronous/resources/evaluators.py +85 -0
- lmnr/sdk/client/asynchronous/resources/tags.py +4 -10
- lmnr/sdk/client/synchronous/resources/__init__.py +2 -1
- lmnr/sdk/client/synchronous/resources/evaluators.py +85 -0
- lmnr/sdk/client/synchronous/resources/tags.py +4 -10
- lmnr/sdk/client/synchronous/sync_client.py +14 -0
- lmnr/sdk/decorators.py +39 -4
- lmnr/sdk/evaluations.py +23 -9
- lmnr/sdk/laminar.py +75 -48
- lmnr/sdk/utils.py +23 -0
- lmnr/version.py +1 -1
- {lmnr-0.6.19.dist-info → lmnr-0.6.21.dist-info}/METADATA +8 -7
- {lmnr-0.6.19.dist-info → lmnr-0.6.21.dist-info}/RECORD +42 -25
- {lmnr-0.6.19.dist-info → lmnr-0.6.21.dist-info}/WHEEL +1 -1
- {lmnr-0.6.19.dist-info → lmnr-0.6.21.dist-info}/entry_points.txt +0 -0
lmnr/sdk/laminar.py
CHANGED
@@ -60,10 +60,15 @@ class Laminar:
|
|
60
60
|
cls,
|
61
61
|
project_api_key: str | None = None,
|
62
62
|
base_url: str | None = None,
|
63
|
+
base_http_url: str | None = None,
|
63
64
|
http_port: int | None = None,
|
64
65
|
grpc_port: int | None = None,
|
65
|
-
instruments:
|
66
|
-
|
66
|
+
instruments: (
|
67
|
+
list[Instruments] | set[Instruments] | tuple[Instruments] | None
|
68
|
+
) = None,
|
69
|
+
disabled_instruments: (
|
70
|
+
list[Instruments] | set[Instruments] | tuple[Instruments] | None
|
71
|
+
) = None,
|
67
72
|
disable_batch: bool = False,
|
68
73
|
max_export_batch_size: int | None = None,
|
69
74
|
export_timeout_seconds: int | None = None,
|
@@ -76,40 +81,45 @@ class Laminar:
|
|
76
81
|
|
77
82
|
Args:
|
78
83
|
project_api_key (str | None, optional): Laminar project api key.\
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
in os.environ or in .env file.
|
84
|
-
Defaults to None.
|
84
|
+
You can generate one by going to the projects settings page on\
|
85
|
+
the Laminar dashboard. If not specified, we will try to read\
|
86
|
+
from the LMNR_PROJECT_API_KEY environment variable in os.environ\
|
87
|
+
or in .env file. Defaults to None.
|
85
88
|
base_url (str | None, optional): Laminar API url. Do NOT include\
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
89
|
+
the port number, use `http_port` and `grpc_port`. If not\
|
90
|
+
specified, defaults to https://api.lmnr.ai.
|
91
|
+
base_http_url (str | None, optional): Laminar API http url. Only\
|
92
|
+
set this if your Laminar backend HTTP is proxied through a\
|
93
|
+
different host. If not specified, defaults to\
|
94
|
+
https://api.lmnr.ai.
|
95
|
+
http_port (int | None, optional): Laminar API http port. If not\
|
96
|
+
specified, defaults to 443.
|
97
|
+
grpc_port (int | None, optional): Laminar API grpc port. If not\
|
98
|
+
specified, defaults to 8443.
|
99
|
+
instruments (set[Instruments] | list[Instruments] | tuple[Instruments] | None, optional):
|
100
|
+
Instruments to enable. Defaults to all instruments. You can pass\
|
101
|
+
an empty set to disable all instruments. Read more:\
|
102
|
+
https://docs.lmnr.ai/tracing/automatic-instrumentation
|
103
|
+
disabled_instruments (set[Instruments] | list[Instruments] | tuple[Instruments] | None, optional):
|
104
|
+
Instruments to disable. Defaults to None.
|
98
105
|
disable_batch (bool, optional): If set to True, spans will be sent\
|
99
|
-
|
100
|
-
|
101
|
-
|
106
|
+
immediately to the backend. Useful for debugging, but may cause\
|
107
|
+
performance overhead in production. Defaults to False.
|
108
|
+
max_export_batch_size (int | None, optional): Maximum number of spans\
|
109
|
+
to export in a single batch. If not specified, defaults to 64\
|
110
|
+
(lower than the OpenTelemetry default of 512). If you see\
|
111
|
+
`DEADLINE_EXCEEDED` errors, try reducing this value.
|
102
112
|
export_timeout_seconds (int | None, optional): Timeout for the OTLP\
|
103
|
-
|
104
|
-
|
105
|
-
Defaults to None.
|
113
|
+
exporter. Defaults to 30 seconds (unlike the OpenTelemetry\
|
114
|
+
default of 10 seconds). Defaults to None.
|
106
115
|
set_global_tracer_provider (bool, optional): If set to True, the\
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
116
|
+
Laminar tracer provider will be set as the global tracer provider.\
|
117
|
+
OpenTelemetry allows only one tracer provider per app, so set this\
|
118
|
+
to False, if you are using another tracing library. Setting this to\
|
119
|
+
False may break some external instrumentations, e.g. LiteLLM.\
|
120
|
+
Defaults to True.
|
121
|
+
otel_logger_level (int, optional): OpenTelemetry logger level. Defaults\
|
122
|
+
to logging.ERROR.
|
113
123
|
|
114
124
|
Raises:
|
115
125
|
ValueError: If project API key is not set
|
@@ -132,10 +142,17 @@ class Laminar:
|
|
132
142
|
|
133
143
|
url = base_url or from_env("LMNR_BASE_URL") or "https://api.lmnr.ai"
|
134
144
|
url = url.rstrip("/")
|
135
|
-
if not url.startswith("http"):
|
145
|
+
if not url.startswith("http:") and not url.startswith("https:"):
|
136
146
|
url = f"https://{url}"
|
137
147
|
if match := re.search(r":(\d{1,5})$", url):
|
138
148
|
url = url[: -len(match.group(0))]
|
149
|
+
cls.__logger.info(f"Ignoring port in base URL: {match.group(1)}")
|
150
|
+
|
151
|
+
http_url = base_http_url or url
|
152
|
+
if not http_url.startswith("http:") and not http_url.startswith("https:"):
|
153
|
+
http_url = f"https://{http_url}"
|
154
|
+
if match := re.search(r":(\d{1,5})$", http_url):
|
155
|
+
http_url = http_url[: -len(match.group(0))]
|
139
156
|
if http_port is None:
|
140
157
|
cls.__logger.info(f"Using HTTP port from base URL: {match.group(1)}")
|
141
158
|
http_port = int(match.group(1))
|
@@ -143,7 +160,7 @@ class Laminar:
|
|
143
160
|
cls.__logger.info(f"Using HTTP port passed as an argument: {http_port}")
|
144
161
|
|
145
162
|
cls.__initialized = True
|
146
|
-
cls.__base_http_url = f"{
|
163
|
+
cls.__base_http_url = f"{http_url}:{http_port or 443}"
|
147
164
|
|
148
165
|
if not os.getenv("OTEL_ATTRIBUTE_COUNT_LIMIT"):
|
149
166
|
# each message is at least 2 attributes: role and content,
|
@@ -155,8 +172,10 @@ class Laminar:
|
|
155
172
|
http_port=http_port or 443,
|
156
173
|
port=grpc_port or 8443,
|
157
174
|
project_api_key=cls.__project_api_key,
|
158
|
-
instruments=instruments,
|
159
|
-
block_instruments=
|
175
|
+
instruments=set(instruments) if instruments else None,
|
176
|
+
block_instruments=(
|
177
|
+
set(disabled_instruments) if disabled_instruments else None
|
178
|
+
),
|
160
179
|
disable_batch=disable_batch,
|
161
180
|
max_export_batch_size=max_export_batch_size,
|
162
181
|
timeout_seconds=export_timeout_seconds,
|
@@ -202,6 +221,9 @@ class Laminar:
|
|
202
221
|
be epoch nanoseconds. If not specified, relies on the underlying\
|
203
222
|
OpenTelemetry implementation. Defaults to None.
|
204
223
|
"""
|
224
|
+
if not cls.is_initialized():
|
225
|
+
return
|
226
|
+
|
205
227
|
if timestamp and isinstance(timestamp, datetime.datetime):
|
206
228
|
timestamp = int(timestamp.timestamp() * 1e9)
|
207
229
|
|
@@ -577,7 +599,7 @@ class Laminar:
|
|
577
599
|
@classmethod
|
578
600
|
def set_span_attributes(
|
579
601
|
cls,
|
580
|
-
attributes: dict[Attributes, Any],
|
602
|
+
attributes: dict[Attributes | str, Any],
|
581
603
|
):
|
582
604
|
"""Set attributes for the current span. Useful for manual
|
583
605
|
instrumentation.
|
@@ -599,24 +621,19 @@ class Laminar:
|
|
599
621
|
```
|
600
622
|
|
601
623
|
Args:
|
602
|
-
attributes (dict[
|
624
|
+
attributes (dict[Attributes | str, Any]): attributes to set for the span
|
603
625
|
"""
|
604
626
|
span = trace.get_current_span()
|
605
627
|
if span == trace.INVALID_SPAN:
|
606
628
|
return
|
607
629
|
|
608
630
|
for key, value in attributes.items():
|
609
|
-
|
610
|
-
|
611
|
-
|
612
|
-
|
613
|
-
cls.__logger.warning(
|
614
|
-
f"Attribute {key} is not a valid Laminar attribute."
|
615
|
-
)
|
616
|
-
if not isinstance(value, (str, int, float, bool)):
|
617
|
-
span.set_attribute(key.value, json_dumps(value))
|
631
|
+
if isinstance(key, Attributes):
|
632
|
+
key = key.value
|
633
|
+
if not is_otel_attribute_value_type(value):
|
634
|
+
span.set_attribute(key, json_dumps(value))
|
618
635
|
else:
|
619
|
-
span.set_attribute(key
|
636
|
+
span.set_attribute(key, value)
|
620
637
|
|
621
638
|
@classmethod
|
622
639
|
def get_laminar_span_context(
|
@@ -706,6 +723,8 @@ class Laminar:
|
|
706
723
|
Args:
|
707
724
|
tags (list[str]): Tags to set for the span.
|
708
725
|
"""
|
726
|
+
if not cls.is_initialized():
|
727
|
+
return
|
709
728
|
span = trace.get_current_span()
|
710
729
|
if span == trace.INVALID_SPAN:
|
711
730
|
cls.__logger.warning("No active span to set tags on")
|
@@ -756,6 +775,8 @@ class Laminar:
|
|
756
775
|
Args:
|
757
776
|
session_id (str | None, optional): Custom session id. Defaults to None.
|
758
777
|
"""
|
778
|
+
if not cls.is_initialized():
|
779
|
+
return
|
759
780
|
span = trace.get_current_span()
|
760
781
|
if span == trace.INVALID_SPAN:
|
761
782
|
cls.__logger.warning("No active span to set session id on")
|
@@ -771,6 +792,8 @@ class Laminar:
|
|
771
792
|
Args:
|
772
793
|
user_id (str | None, optional): Custom user id. Defaults to None.
|
773
794
|
"""
|
795
|
+
if not cls.is_initialized():
|
796
|
+
return
|
774
797
|
span = trace.get_current_span()
|
775
798
|
if span == trace.INVALID_SPAN:
|
776
799
|
cls.__logger.warning("No active span to set user id on")
|
@@ -807,6 +830,8 @@ class Laminar:
|
|
807
830
|
Args:
|
808
831
|
metadata (dict[str, AttributeValue]): Metadata to set for the trace.
|
809
832
|
"""
|
833
|
+
if not cls.is_initialized():
|
834
|
+
return
|
810
835
|
span = trace.get_current_span()
|
811
836
|
if span == trace.INVALID_SPAN:
|
812
837
|
cls.__logger.warning("No active span to set metadata on")
|
@@ -858,6 +883,8 @@ class Laminar:
|
|
858
883
|
Args:
|
859
884
|
trace_type (TraceType): Type of the trace
|
860
885
|
"""
|
886
|
+
if not cls.is_initialized():
|
887
|
+
return
|
861
888
|
span = trace.get_current_span()
|
862
889
|
if span == trace.INVALID_SPAN:
|
863
890
|
cls.__logger.warning("No active span to set trace type on")
|
lmnr/sdk/utils.py
CHANGED
@@ -128,3 +128,26 @@ def is_otel_attribute_value_type(value: typing.Any) -> bool:
|
|
128
128
|
)
|
129
129
|
return True
|
130
130
|
return False
|
131
|
+
|
132
|
+
|
133
|
+
def format_id(id_value: str | int | uuid.UUID) -> str:
|
134
|
+
"""Format trace/span/evaluation ID to a UUID string, or return valid UUID strings as-is.
|
135
|
+
|
136
|
+
Args:
|
137
|
+
id_value: The ID in various formats (UUID, int, or valid UUID string)
|
138
|
+
|
139
|
+
Returns:
|
140
|
+
str: UUID string representation
|
141
|
+
|
142
|
+
Raises:
|
143
|
+
ValueError: If id_value cannot be converted to a valid UUID
|
144
|
+
"""
|
145
|
+
if isinstance(id_value, uuid.UUID):
|
146
|
+
return str(id_value)
|
147
|
+
elif isinstance(id_value, int):
|
148
|
+
return str(uuid.UUID(int=id_value))
|
149
|
+
elif isinstance(id_value, str):
|
150
|
+
uuid.UUID(id_value)
|
151
|
+
return id_value
|
152
|
+
else:
|
153
|
+
raise ValueError(f"Invalid ID type: {type(id_value)}")
|
lmnr/version.py
CHANGED
@@ -1,10 +1,16 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: lmnr
|
3
|
-
Version: 0.6.
|
3
|
+
Version: 0.6.21
|
4
4
|
Summary: Python SDK for Laminar
|
5
5
|
Author: lmnr.ai
|
6
6
|
Author-email: lmnr.ai <founders@lmnr.ai>
|
7
7
|
License-Expression: Apache-2.0
|
8
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
9
|
+
Classifier: Programming Language :: Python :: 3
|
10
|
+
Classifier: Programming Language :: Python :: 3.10
|
11
|
+
Classifier: Programming Language :: Python :: 3.11
|
12
|
+
Classifier: Programming Language :: Python :: 3.12
|
13
|
+
Classifier: Programming Language :: Python :: 3.13
|
8
14
|
Requires-Dist: pydantic>=2.0.3,<3.0.0
|
9
15
|
Requires-Dist: python-dotenv>=1.0
|
10
16
|
Requires-Dist: opentelemetry-api>=1.33.0
|
@@ -18,15 +24,14 @@ Requires-Dist: tenacity>=8.0
|
|
18
24
|
Requires-Dist: grpcio>=1
|
19
25
|
Requires-Dist: httpx>=0.25.0
|
20
26
|
Requires-Dist: opentelemetry-instrumentation-threading>=0.54b0
|
27
|
+
Requires-Dist: orjson>=3.10.18
|
21
28
|
Requires-Dist: opentelemetry-instrumentation-alephalpha>=0.40.12 ; extra == 'alephalpha'
|
22
29
|
Requires-Dist: opentelemetry-instrumentation-alephalpha>=0.40.12 ; extra == 'all'
|
23
|
-
Requires-Dist: opentelemetry-instrumentation-anthropic>=0.40.12 ; extra == 'all'
|
24
30
|
Requires-Dist: opentelemetry-instrumentation-bedrock>=0.40.12 ; extra == 'all'
|
25
31
|
Requires-Dist: opentelemetry-instrumentation-chromadb>=0.40.12 ; extra == 'all'
|
26
32
|
Requires-Dist: opentelemetry-instrumentation-cohere>=0.40.12 ; extra == 'all'
|
27
33
|
Requires-Dist: opentelemetry-instrumentation-crewai>=0.40.12 ; extra == 'all'
|
28
34
|
Requires-Dist: opentelemetry-instrumentation-google-generativeai<0.40.10 ; extra == 'all'
|
29
|
-
Requires-Dist: opentelemetry-instrumentation-groq>=0.40.12 ; extra == 'all'
|
30
35
|
Requires-Dist: opentelemetry-instrumentation-haystack>=0.40.12 ; extra == 'all'
|
31
36
|
Requires-Dist: opentelemetry-instrumentation-lancedb>=0.40.12 ; extra == 'all'
|
32
37
|
Requires-Dist: opentelemetry-instrumentation-langchain>=0.40.12 ; extra == 'all'
|
@@ -45,13 +50,11 @@ Requires-Dist: opentelemetry-instrumentation-transformers>=0.40.12 ; extra == 'a
|
|
45
50
|
Requires-Dist: opentelemetry-instrumentation-vertexai>=0.40.12 ; extra == 'all'
|
46
51
|
Requires-Dist: opentelemetry-instrumentation-watsonx>=0.40.12 ; extra == 'all'
|
47
52
|
Requires-Dist: opentelemetry-instrumentation-weaviate>=0.40.12 ; extra == 'all'
|
48
|
-
Requires-Dist: opentelemetry-instrumentation-anthropic>=0.40.12 ; extra == 'anthropic'
|
49
53
|
Requires-Dist: opentelemetry-instrumentation-bedrock>=0.40.12 ; extra == 'bedrock'
|
50
54
|
Requires-Dist: opentelemetry-instrumentation-chromadb>=0.40.12 ; extra == 'chromadb'
|
51
55
|
Requires-Dist: opentelemetry-instrumentation-cohere>=0.40.12 ; extra == 'cohere'
|
52
56
|
Requires-Dist: opentelemetry-instrumentation-crewai>=0.40.12 ; extra == 'crewai'
|
53
57
|
Requires-Dist: opentelemetry-instrumentation-google-generativeai<0.40.10 ; extra == 'google-generativeai'
|
54
|
-
Requires-Dist: opentelemetry-instrumentation-groq>=0.40.12 ; extra == 'groq'
|
55
58
|
Requires-Dist: opentelemetry-instrumentation-haystack>=0.40.12 ; extra == 'haystack'
|
56
59
|
Requires-Dist: opentelemetry-instrumentation-lancedb>=0.40.12 ; extra == 'lancedb'
|
57
60
|
Requires-Dist: opentelemetry-instrumentation-langchain>=0.40.12 ; extra == 'langchain'
|
@@ -73,13 +76,11 @@ Requires-Dist: opentelemetry-instrumentation-weaviate>=0.40.12 ; extra == 'weavi
|
|
73
76
|
Requires-Python: >=3.10, <4
|
74
77
|
Provides-Extra: alephalpha
|
75
78
|
Provides-Extra: all
|
76
|
-
Provides-Extra: anthropic
|
77
79
|
Provides-Extra: bedrock
|
78
80
|
Provides-Extra: chromadb
|
79
81
|
Provides-Extra: cohere
|
80
82
|
Provides-Extra: crewai
|
81
83
|
Provides-Extra: google-generativeai
|
82
|
-
Provides-Extra: groq
|
83
84
|
Provides-Extra: haystack
|
84
85
|
Provides-Extra: lancedb
|
85
86
|
Provides-Extra: langchain
|
@@ -2,13 +2,28 @@ lmnr/__init__.py,sha256=81183c3dbfb45d5cc2f979a22e51c8f41af9c80257c13eacacf1715c
|
|
2
2
|
lmnr/cli.py,sha256=b8780b51f37fe9e20db5495c41d3ad3837f6b48f408b09a58688d017850c0796,6047
|
3
3
|
lmnr/opentelemetry_lib/.flake8,sha256=6c2c6e0e51b1dd8439e501ca3e21899277076a787da868d0254ba37056b79405,150
|
4
4
|
lmnr/opentelemetry_lib/__init__.py,sha256=6962aca915d485586ed814b9e799ced898594ac2bc6d35329405705b26eab861,2160
|
5
|
-
lmnr/opentelemetry_lib/decorators/__init__.py,sha256=
|
5
|
+
lmnr/opentelemetry_lib/decorators/__init__.py,sha256=4846f7ae441a3995811c01c9d3cbb8e6e17d6511adf6e5cd295e02832faab4bb,9131
|
6
6
|
lmnr/opentelemetry_lib/litellm/__init__.py,sha256=c23a38e88b7919d866c4f09a880f2468ac9acf756cb910d1614082b2dbcad3e6,14858
|
7
7
|
lmnr/opentelemetry_lib/litellm/utils.py,sha256=da8cf0553f82dc7203109f117a4c7b4185e8baf34caad12d7823875515201a27,539
|
8
|
+
lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/__init__.py,sha256=92cbf8c59d467b33c01d5fd1c8d5694186c688b2b2e52e6e737f0464a133ceb4,20546
|
9
|
+
lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/config.py,sha256=972919b821b9b7e5dc7cd191ba7e78b30b6efa5d63514e8cb301996d6386392c,369
|
10
|
+
lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/event_emitter.py,sha256=812b3ea1c5a04412113d4dd770717561861595f9eec5b94dd8174c6ddfb7572a,6831
|
11
|
+
lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/event_models.py,sha256=3c27c21b1aeb02bc19a91fb8c05717ae1c10ab4b01300c664aba42e0f50cb5a3,876
|
12
|
+
lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/span_utils.py,sha256=9d0bb3825a6b5c28ac3778d49b7e67dc829530b2ebe34ef3f0e273f51caebcea,9422
|
13
|
+
lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/streaming.py,sha256=e999ad093275c5195b5d31dfea456726afd5f474cd779be7af892f54d7b416b8,10129
|
14
|
+
lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/utils.py,sha256=0044f02da8b99322fdbf3f8f6663f04ff5d1295ddae92a635fd16eb685d5fbb6,5386
|
15
|
+
lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/version.py,sha256=5aacde4ca55ef50ed07a239ad8a86889e0621b1cc72be19bd93be7c9e20910a9,23
|
8
16
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/google_genai/__init__.py,sha256=8eb4abc2a96aa09ab9104d74ae508ea9ea6a6cbf60f8cd333b4c15c425db48e8,20166
|
9
17
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/google_genai/config.py,sha256=db9cdebc9ee0dccb493ffe608eede3047efec20ed26c3924b72b2e50edbd92c2,245
|
10
18
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/google_genai/schema_utils.py,sha256=857a6bc52f8bfd4da72786173615d31faaf3f9378f8f6150ffe8f6f9c4bb78f9,685
|
11
19
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/google_genai/utils.py,sha256=f1248196246826d899304e510c4c2df74088d8169d28f1d0aed578a7a6c3cbfd,7669
|
20
|
+
lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/__init__.py,sha256=0ac77d492cb7de9d15e70d93ef965f4702295fae49a0c85d1da0cf260ec8ae7e,14837
|
21
|
+
lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/config.py,sha256=29d557d9dee56354e89634bdc3f4795f346ee67bbfec56184b4fb394e45a7e03,203
|
22
|
+
lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/event_emitter.py,sha256=1f07d78bf360832951c708fcb3737718e50d39ce05beb8adbf57e818b4873703,4481
|
23
|
+
lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/event_models.py,sha256=3c27c21b1aeb02bc19a91fb8c05717ae1c10ab4b01300c664aba42e0f50cb5a3,876
|
24
|
+
lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/span_utils.py,sha256=7a1cd03539ff2c9e5114a26483dc50066cd5f1b7283e584431dd036949e1f31b,7461
|
25
|
+
lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/utils.py,sha256=139f085a337ae321f68822bbbd2400bfc008c4d6a706ab319e522bef6b91e552,2360
|
26
|
+
lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/version.py,sha256=5aacde4ca55ef50ed07a239ad8a86889e0621b1cc72be19bd93be7c9e20910a9,23
|
12
27
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/langgraph/__init__.py,sha256=272bfd92865d180e3ea13681ec04c1ec3697eda34e63edd83862f8c17d1cecf3,3107
|
13
28
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/langgraph/utils.py,sha256=9dff6c2595e79edb38818668aed1220efc188d8a982594c04f4ceeb6e3ff47a6,1512
|
14
29
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/__init__.py,sha256=8b91dc16af927eee75b969c0980c606680b347a87f8533bc0f4a092e5ec6e5c9,2071
|
@@ -20,7 +35,7 @@ lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/embeddings_wr
|
|
20
35
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/event_emitter.py,sha256=9c96455b5ca2064dd3a9fb570d78b14ebbdf3d02f8e33255ee9e301c31336c9e,3043
|
21
36
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/event_models.py,sha256=3c27c21b1aeb02bc19a91fb8c05717ae1c10ab4b01300c664aba42e0f50cb5a3,876
|
22
37
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/image_gen_wrappers.py,sha256=9650a0e4ad2d3bfb2a072590da189bcf4f807aca070945af26a9f9b99d779b77,2021
|
23
|
-
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/utils.py,sha256=
|
38
|
+
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/utils.py,sha256=541e94d60c94b8a8035ee74cda00ca3576a3f50a215df03d948de58665dbc25b,4649
|
24
39
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v0/__init__.py,sha256=7f43421e052bd8f64d5d5b03170a3b7187c2ce038362fa15b5d1d0c43bc1a40d,6143
|
25
40
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v1/__init__.py,sha256=662afd935c52b42512280614bf502554389c8854ab1256efbfde03fe364dac64,12932
|
26
41
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v1/assistant_wrappers.py,sha256=8f36cb3eeeead7abdfa43bca3fdf73fdf2fba562bb1a746225696a2b2dde4f50,10111
|
@@ -29,50 +44,52 @@ lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v1/responses_wrapper
|
|
29
44
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/version.py,sha256=4f39aaa913f3e49b0c174bc23028687d00bfaffc745bd3fe241e0ae6b442bed1,24
|
30
45
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/opentelemetry/__init__.py,sha256=1f86cdf738e2f68586b0a4569bb1e40edddd85c529f511ef49945ddb7b61fab5,2648
|
31
46
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/skyvern/__init__.py,sha256=764e4fe979fb08d7821419a3cc5c3ae89a6664b626ef928259f8f175c939eaea,6334
|
32
|
-
lmnr/opentelemetry_lib/tracing/__init__.py,sha256=
|
33
|
-
lmnr/opentelemetry_lib/tracing/_instrument_initializers.py,sha256=
|
47
|
+
lmnr/opentelemetry_lib/tracing/__init__.py,sha256=906aca320649cb59fb5ba05c6ddba914daae46d615da38dc399bd62b17262002,6007
|
48
|
+
lmnr/opentelemetry_lib/tracing/_instrument_initializers.py,sha256=a15a46a0515462319195a96f7cdb695e72a1559c3212964f5883ab824031bf70,15125
|
34
49
|
lmnr/opentelemetry_lib/tracing/attributes.py,sha256=32fa30565b977c2a92202dc2bf1ded583a81d02a6bf5ba52958f75a8be08cbbe,1497
|
35
50
|
lmnr/opentelemetry_lib/tracing/context_properties.py,sha256=6966ef31d581e10eeea9cd06192b237115cc4dc3b5f1a58e68865edd0c92fda0,2314
|
36
51
|
lmnr/opentelemetry_lib/tracing/exporter.py,sha256=6af8e61fd873e8f5db315d9b9f1edbf46b860ba7e50140f0bdcc6864c6d35a03,2082
|
37
52
|
lmnr/opentelemetry_lib/tracing/instruments.py,sha256=e3c12315bda301416d1f3bc8d354ad16d4da211e2ecfa019265f4b565307c118,5655
|
38
|
-
lmnr/opentelemetry_lib/tracing/processor.py,sha256=
|
53
|
+
lmnr/opentelemetry_lib/tracing/processor.py,sha256=ed46599411de041b802e53e777d23fb2851913df185cb0facf001d0b49a5a8e3,3440
|
39
54
|
lmnr/opentelemetry_lib/tracing/tracer.py,sha256=a0d0ba57c785bee2b78b92165ec2838c43052ff6b1792a2fdcbd5f3debf0b963,476
|
40
55
|
lmnr/opentelemetry_lib/utils/__init__.py,sha256=a4d85fd06def4dde5c728734de2d4c5c36eb89c49a8aa09b8b50cb5a149e90af,604
|
41
56
|
lmnr/opentelemetry_lib/utils/json_encoder.py,sha256=74ae9bfdac6bef42182fb56ff9bbb8c27b6f0c3bb29eda2ab0769d76a5fb3f9f,463
|
42
|
-
lmnr/opentelemetry_lib/utils/package_check.py,sha256=
|
57
|
+
lmnr/opentelemetry_lib/utils/package_check.py,sha256=f8274186c96815c996a25fae06bf913f0bb7c835507739949f37c03bbe5d9ca9,527
|
43
58
|
lmnr/py.typed,sha256=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855,0
|
44
59
|
lmnr/sdk/__init__.py,sha256=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855,0
|
45
60
|
lmnr/sdk/browser/__init__.py,sha256=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855,0
|
46
|
-
lmnr/sdk/browser/browser_use_otel.py,sha256=
|
47
|
-
lmnr/sdk/browser/patchright_otel.py,sha256=
|
48
|
-
lmnr/sdk/browser/playwright_otel.py,sha256=
|
49
|
-
lmnr/sdk/browser/pw_utils.py,sha256=
|
61
|
+
lmnr/sdk/browser/browser_use_otel.py,sha256=0de6b4e41a08cc953f53c386c45fd1bc8bad229b4c6fbd69459e3fab0b073b4c,5109
|
62
|
+
lmnr/sdk/browser/patchright_otel.py,sha256=dd13d0555c0b1187d6130b403cc21e54e0c7bfa5163090232d4f0ba1b4ff13c2,4409
|
63
|
+
lmnr/sdk/browser/playwright_otel.py,sha256=b45cc4bed5c0029976ffbd01ad46e52cef21f5dafda8679f3a68f438733b86ec,8697
|
64
|
+
lmnr/sdk/browser/pw_utils.py,sha256=2e711cef6a60cffe48005838245053ecc7e1f1bda77fe3518f61c19b10ebed0d,19599
|
50
65
|
lmnr/sdk/browser/rrweb/rrweb.umd.min.cjs,sha256=2f2da38b00bb85312d8225f3069a09352135564ceed2564f652f1bae3bac016d,260896
|
51
66
|
lmnr/sdk/browser/utils.py,sha256=4a668776d2938108d25fbcecd61c8e1710a4da3e56230d5fefca5964dd09e3c1,2371
|
52
|
-
lmnr/sdk/client/asynchronous/async_client.py,sha256=
|
53
|
-
lmnr/sdk/client/asynchronous/resources/__init__.py,sha256=
|
67
|
+
lmnr/sdk/client/asynchronous/async_client.py,sha256=e8feae007506cd2e4b08e72706f5f1bb4ea54492b4aa6b68ef184a129de8f466,4948
|
68
|
+
lmnr/sdk/client/asynchronous/resources/__init__.py,sha256=993423ea462aa8ea37d8d91662341c1ca0711cb2447cd476aacc373858f76135,481
|
54
69
|
lmnr/sdk/client/asynchronous/resources/agent.py,sha256=3a78372b62912cdeda831d7ff9a671306713fce185dff646b452e6f1a3cc6d8c,17788
|
55
70
|
lmnr/sdk/client/asynchronous/resources/base.py,sha256=689e37435ae5b60db7210688e1e79a64a724c554e00d46c226b0a18500941281,986
|
56
71
|
lmnr/sdk/client/asynchronous/resources/browser_events.py,sha256=4fe0d46db01f310d95aa255f815a65c6e4da259ba835c0b53ba442c5d7f0ed44,1163
|
57
72
|
lmnr/sdk/client/asynchronous/resources/evals.py,sha256=8c6f8096916657ef269463b2d0585795d9cedad056a047abcde6365ff0b320bd,5761
|
58
|
-
lmnr/sdk/client/asynchronous/resources/
|
59
|
-
lmnr/sdk/client/
|
73
|
+
lmnr/sdk/client/asynchronous/resources/evaluators.py,sha256=964046f5146e89032fbb701b883f4f3a7cb996aeb9ff368f86e8f967df2fef10,2918
|
74
|
+
lmnr/sdk/client/asynchronous/resources/tags.py,sha256=14fc2e38cae2f6fe126dc8dca085d7ad02d8d7c1a09bc4b5b5b8e38a0edf7348,2314
|
75
|
+
lmnr/sdk/client/synchronous/resources/__init__.py,sha256=685792a8c8494ea061592b86cb63d6bb0dca8d9848181aa11b7d97d5714df337,403
|
60
76
|
lmnr/sdk/client/synchronous/resources/agent.py,sha256=9a74eeeada0dd8b6e0984850fa6759d02ccd02792b1a292caf2b34032330cf60,17809
|
61
77
|
lmnr/sdk/client/synchronous/resources/base.py,sha256=9ded59675d1498d90cac4095bc295c1097dc1499521af697382f0aea66533dd6,971
|
62
78
|
lmnr/sdk/client/synchronous/resources/browser_events.py,sha256=f6b1585997ac5d0a269c581b679f74b4614c4da363d0e0334fd45c1700fcabf6,1135
|
63
79
|
lmnr/sdk/client/synchronous/resources/evals.py,sha256=415fefe234519f8affb24d858efa9d6c0735f966b6194977a96ac2ce16d066c0,7008
|
64
|
-
lmnr/sdk/client/synchronous/resources/
|
65
|
-
lmnr/sdk/client/synchronous/
|
80
|
+
lmnr/sdk/client/synchronous/resources/evaluators.py,sha256=3cd6a17e7a9cc0441c2d20bf6cf46ce3720131cc30053e2cd124e5668c75f49a,2879
|
81
|
+
lmnr/sdk/client/synchronous/resources/tags.py,sha256=123deec43128662c21cb275b2df6a102372f875315b0bd36806555394c1d4b5b,2270
|
82
|
+
lmnr/sdk/client/synchronous/sync_client.py,sha256=0bebe88e3aed689505e9ed3d32036f76df4c3496e4d659162bd41abedc026f16,5299
|
66
83
|
lmnr/sdk/datasets.py,sha256=3fd851c5f97bf88eaa84b1451a053eaff23b4497cbb45eac2f9ea0e5f2886c00,1708
|
67
|
-
lmnr/sdk/decorators.py,sha256=
|
84
|
+
lmnr/sdk/decorators.py,sha256=0c6b95b92ec8023f28cd15ddc47849888fa91f2534d575f626e3557f5f0a0c02,6451
|
68
85
|
lmnr/sdk/eval_control.py,sha256=291394ac385c653ae9b5167e871bebeb4fe8fc6b7ff2ed38e636f87015dcba86,184
|
69
|
-
lmnr/sdk/evaluations.py,sha256=
|
70
|
-
lmnr/sdk/laminar.py,sha256=
|
86
|
+
lmnr/sdk/evaluations.py,sha256=b41f7737b084dc5b64b2952659b729622e0918fd492bfcddde7177d1a1c690ae,22572
|
87
|
+
lmnr/sdk/laminar.py,sha256=c782ee6e5dcb3acada5fd30ccc85cea2d28d59a99af86c14161806f0e85a207f,35208
|
71
88
|
lmnr/sdk/log.py,sha256=9edfd83263f0d4845b1b2d1beeae2b4ed3f8628de941f371a893d72b79c348d4,2213
|
72
89
|
lmnr/sdk/types.py,sha256=650a7949e609359b0adcaadb49e5cf63fc67ea61a35b9992c3f8b445dfce6b89,12328
|
73
|
-
lmnr/sdk/utils.py,sha256=
|
74
|
-
lmnr/version.py,sha256=
|
75
|
-
lmnr-0.6.
|
76
|
-
lmnr-0.6.
|
77
|
-
lmnr-0.6.
|
78
|
-
lmnr-0.6.
|
90
|
+
lmnr/sdk/utils.py,sha256=4beb884ae6fbbc7d8cf639b036b726ea6a2a658f0a6386faf5735a13d706a2d8,5039
|
91
|
+
lmnr/version.py,sha256=54a1b533e429edeb5cd515149160e8f8e9ee1d29bc2a9154070f57ecfef74fed,1322
|
92
|
+
lmnr-0.6.21.dist-info/WHEEL,sha256=cc8ae5806c5874a696cde0fcf78fdf73db4982e7c824f3ceab35e2b65182fa1a,79
|
93
|
+
lmnr-0.6.21.dist-info/entry_points.txt,sha256=abdf3411b7dd2d7329a241f2da6669bab4e314a747a586ecdb9f888f3035003c,39
|
94
|
+
lmnr-0.6.21.dist-info/METADATA,sha256=3dc12230601db748dea1bda0cbb285741f5de3c3db8a4e889deed362b28b0757,14453
|
95
|
+
lmnr-0.6.21.dist-info/RECORD,,
|
File without changes
|