lmnr 0.7.0__py3-none-any.whl → 0.7.1__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 +43 -4
- lmnr/opentelemetry_lib/litellm/__init__.py +5 -2
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/google_genai/__init__.py +8 -3
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/__init__.py +6 -0
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/chat_wrappers.py +139 -10
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/completion_wrappers.py +8 -3
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/embeddings_wrappers.py +6 -2
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v1/assistant_wrappers.py +6 -3
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v1/event_handler_wrapper.py +4 -1
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v1/responses_wrappers.py +14 -5
- lmnr/opentelemetry_lib/tracing/context.py +18 -1
- lmnr/sdk/browser/pw_utils.py +43 -108
- lmnr/sdk/browser/recorder/record.umd.min.cjs +84 -0
- lmnr/sdk/laminar.py +51 -26
- lmnr/sdk/types.py +17 -5
- lmnr/version.py +1 -1
- {lmnr-0.7.0.dist-info → lmnr-0.7.1.dist-info}/METADATA +1 -1
- {lmnr-0.7.0.dist-info → lmnr-0.7.1.dist-info}/RECORD +20 -20
- lmnr/sdk/browser/rrweb/rrweb.umd.min.cjs +0 -98
- {lmnr-0.7.0.dist-info → lmnr-0.7.1.dist-info}/WHEEL +0 -0
- {lmnr-0.7.0.dist-info → lmnr-0.7.1.dist-info}/entry_points.txt +0 -0
lmnr/sdk/laminar.py
CHANGED
@@ -3,6 +3,12 @@ from contextvars import Context
|
|
3
3
|
import warnings
|
4
4
|
from lmnr.opentelemetry_lib import TracerManager
|
5
5
|
from lmnr.opentelemetry_lib.tracing import TracerWrapper, get_current_context
|
6
|
+
from lmnr.opentelemetry_lib.tracing.context import (
|
7
|
+
CONTEXT_SESSION_ID_KEY,
|
8
|
+
CONTEXT_USER_ID_KEY,
|
9
|
+
attach_context,
|
10
|
+
get_event_attributes_from_context,
|
11
|
+
)
|
6
12
|
from lmnr.opentelemetry_lib.tracing.instruments import Instruments
|
7
13
|
from lmnr.opentelemetry_lib.tracing.tracer import get_tracer_with_context
|
8
14
|
from lmnr.opentelemetry_lib.tracing.attributes import (
|
@@ -14,7 +20,7 @@ from lmnr.opentelemetry_lib.tracing.attributes import (
|
|
14
20
|
from lmnr.opentelemetry_lib import MAX_MANUAL_SPAN_PAYLOAD_SIZE
|
15
21
|
from lmnr.opentelemetry_lib.decorators import json_dumps
|
16
22
|
from opentelemetry import trace
|
17
|
-
from opentelemetry
|
23
|
+
from opentelemetry import context as context_api
|
18
24
|
from opentelemetry.trace import INVALID_TRACE_ID, Span, Status, StatusCode, use_span
|
19
25
|
from opentelemetry.sdk.trace.id_generator import RandomIdGenerator
|
20
26
|
from opentelemetry.util.types import AttributeValue
|
@@ -196,18 +202,18 @@ class Laminar:
|
|
196
202
|
def event(
|
197
203
|
cls,
|
198
204
|
name: str,
|
199
|
-
|
205
|
+
attributes: dict[str, AttributeValue] | None = None,
|
200
206
|
timestamp: datetime.datetime | int | None = None,
|
207
|
+
*,
|
208
|
+
user_id: str | None = None,
|
209
|
+
session_id: str | None = None,
|
201
210
|
):
|
202
|
-
"""Associate an event with the current span.
|
203
|
-
|
204
|
-
`value` will be saved as a `lmnr.event.value` attribute.
|
211
|
+
"""Associate an event with the current span. This is a wrapper around
|
212
|
+
`span.add_event()` that adds the event to the current span.
|
205
213
|
|
206
214
|
Args:
|
207
215
|
name (str): event name
|
208
|
-
|
209
|
-
primitive type. Boolean `True` is assumed in the backend if\
|
210
|
-
`value` is None.
|
216
|
+
attributes (dict[str, AttributeValue] | None, optional): event attributes.
|
211
217
|
Defaults to None.
|
212
218
|
timestamp (datetime.datetime | int | None, optional): If int, must\
|
213
219
|
be epoch nanoseconds. If not specified, relies on the underlying\
|
@@ -219,22 +225,26 @@ class Laminar:
|
|
219
225
|
if timestamp and isinstance(timestamp, datetime.datetime):
|
220
226
|
timestamp = int(timestamp.timestamp() * 1e9)
|
221
227
|
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
228
|
+
extra_attributes = get_event_attributes_from_context()
|
229
|
+
|
230
|
+
# override the user_id and session_id from the context with the ones
|
231
|
+
# passed as arguments
|
232
|
+
if user_id is not None:
|
233
|
+
extra_attributes["lmnr.event.user_id"] = user_id
|
234
|
+
if session_id is not None:
|
235
|
+
extra_attributes["lmnr.event.session_id"] = session_id
|
227
236
|
|
228
237
|
current_span = trace.get_current_span(context=get_current_context())
|
229
238
|
if current_span == trace.INVALID_SPAN:
|
230
|
-
cls.
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
)
|
239
|
+
with cls.start_as_current_span(name) as span:
|
240
|
+
span.add_event(
|
241
|
+
name, {**(attributes or {}), **extra_attributes}, timestamp
|
242
|
+
)
|
235
243
|
return
|
236
244
|
|
237
|
-
current_span.add_event(
|
245
|
+
current_span.add_event(
|
246
|
+
name, {**(attributes or {}), **extra_attributes}, timestamp
|
247
|
+
)
|
238
248
|
|
239
249
|
@classmethod
|
240
250
|
@contextmanager
|
@@ -306,7 +316,7 @@ class Laminar:
|
|
306
316
|
ctx = trace.set_span_in_context(
|
307
317
|
trace.NonRecordingSpan(span_context), ctx
|
308
318
|
)
|
309
|
-
ctx_token = attach(ctx)
|
319
|
+
ctx_token = context_api.attach(ctx)
|
310
320
|
label_props = {}
|
311
321
|
try:
|
312
322
|
if labels:
|
@@ -355,9 +365,8 @@ class Laminar:
|
|
355
365
|
yield span
|
356
366
|
|
357
367
|
wrapper.pop_span_context()
|
358
|
-
# TODO: Figure out if this is necessary
|
359
368
|
try:
|
360
|
-
detach(ctx_token)
|
369
|
+
context_api.detach(ctx_token)
|
361
370
|
except Exception:
|
362
371
|
pass
|
363
372
|
|
@@ -528,10 +537,16 @@ class Laminar:
|
|
528
537
|
wrapper = TracerWrapper()
|
529
538
|
|
530
539
|
try:
|
531
|
-
wrapper.push_span_context(span)
|
540
|
+
context = wrapper.push_span_context(span)
|
541
|
+
# Some auto-instrumentations are not under our control, so they
|
542
|
+
# don't have access to our isolated context. We attach the context
|
543
|
+
# to the OTEL global context, so that spans know their parent
|
544
|
+
# span and trace_id.
|
545
|
+
context_token = context_api.attach(context)
|
532
546
|
try:
|
533
547
|
yield span
|
534
548
|
finally:
|
549
|
+
context_api.detach(context_token)
|
535
550
|
wrapper.pop_span_context()
|
536
551
|
|
537
552
|
# Record only exceptions that inherit Exception class but not BaseException, because
|
@@ -541,7 +556,9 @@ class Laminar:
|
|
541
556
|
if isinstance(span, Span) and span.is_recording():
|
542
557
|
# Record the exception as an event
|
543
558
|
if record_exception:
|
544
|
-
span.record_exception(
|
559
|
+
span.record_exception(
|
560
|
+
exc, attributes=get_event_attributes_from_context()
|
561
|
+
)
|
545
562
|
|
546
563
|
# Set status in case exception was raised
|
547
564
|
if set_status_on_exception:
|
@@ -737,7 +754,11 @@ class Laminar:
|
|
737
754
|
if not cls.is_initialized():
|
738
755
|
return
|
739
756
|
|
740
|
-
|
757
|
+
context = get_current_context()
|
758
|
+
context = context_api.set_value(CONTEXT_SESSION_ID_KEY, session_id, context)
|
759
|
+
attach_context(context)
|
760
|
+
|
761
|
+
span = trace.get_current_span(context=context)
|
741
762
|
if span == trace.INVALID_SPAN:
|
742
763
|
cls.__logger.warning("No active span to set session id on")
|
743
764
|
return
|
@@ -755,7 +776,11 @@ class Laminar:
|
|
755
776
|
if not cls.is_initialized():
|
756
777
|
return
|
757
778
|
|
758
|
-
|
779
|
+
context = get_current_context()
|
780
|
+
context = context_api.set_value(CONTEXT_USER_ID_KEY, user_id, context)
|
781
|
+
attach_context(context)
|
782
|
+
|
783
|
+
span = trace.get_current_span(context=context)
|
759
784
|
if span == trace.INVALID_SPAN:
|
760
785
|
cls.__logger.warning("No active span to set user id on")
|
761
786
|
return
|
lmnr/sdk/types.py
CHANGED
@@ -13,6 +13,8 @@ from typing import Any, Awaitable, Callable, Literal, Optional
|
|
13
13
|
|
14
14
|
from .utils import serialize
|
15
15
|
|
16
|
+
EVALUATION_DATAPOINT_MAX_DATA_LENGTH = 8_000_000 # 8MB
|
17
|
+
|
16
18
|
|
17
19
|
Numeric = int | float
|
18
20
|
NumericTypes = (int, float) # for use with isinstance
|
@@ -75,8 +77,12 @@ class PartialEvaluationDatapoint(pydantic.BaseModel):
|
|
75
77
|
try:
|
76
78
|
return {
|
77
79
|
"id": str(self.id),
|
78
|
-
"data": str(serialize(self.data))[
|
79
|
-
|
80
|
+
"data": str(serialize(self.data))[
|
81
|
+
:EVALUATION_DATAPOINT_MAX_DATA_LENGTH
|
82
|
+
],
|
83
|
+
"target": str(serialize(self.target))[
|
84
|
+
:EVALUATION_DATAPOINT_MAX_DATA_LENGTH
|
85
|
+
],
|
80
86
|
"index": self.index,
|
81
87
|
"traceId": str(self.trace_id),
|
82
88
|
"executorSpanId": str(self.executor_span_id),
|
@@ -106,9 +112,15 @@ class EvaluationResultDatapoint(pydantic.BaseModel):
|
|
106
112
|
# preserve only preview of the data, target and executor output
|
107
113
|
# (full data is in trace)
|
108
114
|
"id": str(self.id),
|
109
|
-
"data": str(serialize(self.data))[
|
110
|
-
|
111
|
-
|
115
|
+
"data": str(serialize(self.data))[
|
116
|
+
:EVALUATION_DATAPOINT_MAX_DATA_LENGTH
|
117
|
+
],
|
118
|
+
"target": str(serialize(self.target))[
|
119
|
+
:EVALUATION_DATAPOINT_MAX_DATA_LENGTH
|
120
|
+
],
|
121
|
+
"executorOutput": str(serialize(self.executor_output))[
|
122
|
+
:EVALUATION_DATAPOINT_MAX_DATA_LENGTH
|
123
|
+
],
|
112
124
|
"scores": self.scores,
|
113
125
|
"traceId": str(self.trace_id),
|
114
126
|
"executorSpanId": str(self.executor_span_id),
|
lmnr/version.py
CHANGED
@@ -2,8 +2,8 @@ lmnr/__init__.py,sha256=47422a1fd58f5be3e7870ccb3ed7de4f1ac520d942e0c83cbcf903b0
|
|
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=
|
6
|
-
lmnr/opentelemetry_lib/litellm/__init__.py,sha256=
|
5
|
+
lmnr/opentelemetry_lib/decorators/__init__.py,sha256=216536fb3ac8de18e6dfe4dfb2e571074c727466f97e6dcd609339c8458a345a,11511
|
6
|
+
lmnr/opentelemetry_lib/litellm/__init__.py,sha256=8a3679381ca5660cf53e4b7571850906c6635264129149adebda8f3f7c248f68,15127
|
7
7
|
lmnr/opentelemetry_lib/litellm/utils.py,sha256=da8cf0553f82dc7203109f117a4c7b4185e8baf34caad12d7823875515201a27,539
|
8
8
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/__init__.py,sha256=984b8f97eb31d4345ea4c52237451f791af189c4a94aaf2625edfd05107d8a6e,20696
|
9
9
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/config.py,sha256=972919b821b9b7e5dc7cd191ba7e78b30b6efa5d63514e8cb301996d6386392c,369
|
@@ -13,7 +13,7 @@ lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/span_utils.py,sha
|
|
13
13
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/streaming.py,sha256=e999ad093275c5195b5d31dfea456726afd5f474cd779be7af892f54d7b416b8,10129
|
14
14
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/utils.py,sha256=0044f02da8b99322fdbf3f8f6663f04ff5d1295ddae92a635fd16eb685d5fbb6,5386
|
15
15
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/version.py,sha256=5aacde4ca55ef50ed07a239ad8a86889e0621b1cc72be19bd93be7c9e20910a9,23
|
16
|
-
lmnr/opentelemetry_lib/opentelemetry/instrumentation/google_genai/__init__.py,sha256=
|
16
|
+
lmnr/opentelemetry_lib/opentelemetry/instrumentation/google_genai/__init__.py,sha256=a47d4d1234e0278d1538748130a79c03d6cb3486976cb5d19578fe1b90f28e7b,20524
|
17
17
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/google_genai/config.py,sha256=db9cdebc9ee0dccb493ffe608eede3047efec20ed26c3924b72b2e50edbd92c2,245
|
18
18
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/google_genai/schema_utils.py,sha256=857a6bc52f8bfd4da72786173615d31faaf3f9378f8f6150ffe8f6f9c4bb78f9,685
|
19
19
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/google_genai/utils.py,sha256=f1248196246826d899304e510c4c2df74088d8169d28f1d0aed578a7a6c3cbfd,7669
|
@@ -27,20 +27,20 @@ lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/version.py,sha256=5aac
|
|
27
27
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/langgraph/__init__.py,sha256=b77a70771741b95006cb27d7f9fc26e4b79b1f10ca24b93a3160a458c3397a9d,3313
|
28
28
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/langgraph/utils.py,sha256=9dff6c2595e79edb38818668aed1220efc188d8a982594c04f4ceeb6e3ff47a6,1512
|
29
29
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/__init__.py,sha256=8b91dc16af927eee75b969c0980c606680b347a87f8533bc0f4a092e5ec6e5c9,2071
|
30
|
-
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/__init__.py,sha256=
|
31
|
-
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/chat_wrappers.py,sha256=
|
32
|
-
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/completion_wrappers.py,sha256=
|
30
|
+
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/__init__.py,sha256=9d182c8cef5ee1e205dc4c2f7c8e49d8403ee9fee66072c5cfdd29a0d54f61a2,15149
|
31
|
+
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/chat_wrappers.py,sha256=6042b3bcf94f38c90bdebaa2c6c9ac1a4723d1801b8e7c20cf8cc3926cef83ad,38657
|
32
|
+
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/completion_wrappers.py,sha256=3a45c07d9d0f37baf409a48e2a1b577f28041c623c41f59ada1c87b94285ae3b,9537
|
33
33
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/config.py,sha256=8016e4af0291a77484ce88d7d1ca06146b1229ae0e0a0f46e042faf75b456a8f,507
|
34
|
-
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/embeddings_wrappers.py,sha256=
|
34
|
+
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/embeddings_wrappers.py,sha256=324eeeaf8dd862f49c15bb7290d414e77ad51cdf532c2cfd74358783cdf654a5,9330
|
35
35
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/event_emitter.py,sha256=9c96455b5ca2064dd3a9fb570d78b14ebbdf3d02f8e33255ee9e301c31336c9e,3043
|
36
36
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/event_models.py,sha256=3c27c21b1aeb02bc19a91fb8c05717ae1c10ab4b01300c664aba42e0f50cb5a3,876
|
37
37
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/image_gen_wrappers.py,sha256=9650a0e4ad2d3bfb2a072590da189bcf4f807aca070945af26a9f9b99d779b77,2021
|
38
38
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/utils.py,sha256=541e94d60c94b8a8035ee74cda00ca3576a3f50a215df03d948de58665dbc25b,4649
|
39
39
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v0/__init__.py,sha256=7f43421e052bd8f64d5d5b03170a3b7187c2ce038362fa15b5d1d0c43bc1a40d,6143
|
40
40
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v1/__init__.py,sha256=662afd935c52b42512280614bf502554389c8854ab1256efbfde03fe364dac64,12932
|
41
|
-
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v1/assistant_wrappers.py,sha256=
|
42
|
-
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v1/event_handler_wrapper.py,sha256=
|
43
|
-
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v1/responses_wrappers.py,sha256=
|
41
|
+
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v1/assistant_wrappers.py,sha256=558036c734559b3526647c1b18cfb986699e8fb322855af72ea054c2e458f721,10404
|
42
|
+
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v1/event_handler_wrapper.py,sha256=4809cde003e5892822828b373aa3e43a8adbaee4ff443f198401003f43c15e8a,4366
|
43
|
+
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v1/responses_wrappers.py,sha256=67c94b3e5bf16b64cecf7a091b05a2eb43162e09968845066721d1cf715856c7,24372
|
44
44
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/version.py,sha256=4f39aaa913f3e49b0c174bc23028687d00bfaffc745bd3fe241e0ae6b442bed1,24
|
45
45
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/opentelemetry/__init__.py,sha256=1f86cdf738e2f68586b0a4569bb1e40edddd85c529f511ef49945ddb7b61fab5,2648
|
46
46
|
lmnr/opentelemetry_lib/opentelemetry/instrumentation/skyvern/__init__.py,sha256=764e4fe979fb08d7821419a3cc5c3ae89a6664b626ef928259f8f175c939eaea,6334
|
@@ -48,7 +48,7 @@ lmnr/opentelemetry_lib/opentelemetry/instrumentation/threading/__init__.py,sha25
|
|
48
48
|
lmnr/opentelemetry_lib/tracing/__init__.py,sha256=a39e9a48f8a842ce7f7ec53364d793c1a303dcfd485aee7a72ade07d1b3635a2,9662
|
49
49
|
lmnr/opentelemetry_lib/tracing/_instrument_initializers.py,sha256=a15a46a0515462319195a96f7cdb695e72a1559c3212964f5883ab824031bf70,15125
|
50
50
|
lmnr/opentelemetry_lib/tracing/attributes.py,sha256=32fa30565b977c2a92202dc2bf1ded583a81d02a6bf5ba52958f75a8be08cbbe,1497
|
51
|
-
lmnr/opentelemetry_lib/tracing/context.py,sha256=
|
51
|
+
lmnr/opentelemetry_lib/tracing/context.py,sha256=83f842be0fc29a96647cbf005c39ea761b0fb5913c4102f965411f47906a6135,4103
|
52
52
|
lmnr/opentelemetry_lib/tracing/exporter.py,sha256=6af8e61fd873e8f5db315d9b9f1edbf46b860ba7e50140f0bdcc6864c6d35a03,2082
|
53
53
|
lmnr/opentelemetry_lib/tracing/instruments.py,sha256=e3c12315bda301416d1f3bc8d354ad16d4da211e2ecfa019265f4b565307c118,5655
|
54
54
|
lmnr/opentelemetry_lib/tracing/processor.py,sha256=fd11e4d48eb5932f47898b8f70b8b5880f7ee7e58478f1ef20caff20e1f34252,3381
|
@@ -62,8 +62,8 @@ lmnr/sdk/browser/__init__.py,sha256=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b
|
|
62
62
|
lmnr/sdk/browser/browser_use_otel.py,sha256=37d26de1af37f76774af176cb226e0b04988fc3bf419a2fd899ad36e79562fad,5104
|
63
63
|
lmnr/sdk/browser/patchright_otel.py,sha256=9d22ab1f28f1eddbcfd0032a14fe306bfe00bfc7f11128cb99836c4dd15fb7c8,4800
|
64
64
|
lmnr/sdk/browser/playwright_otel.py,sha256=50c0a5a75155a3a7ff5db84790ffb409c9cbd0351eef212d83d923893730223b,9459
|
65
|
-
lmnr/sdk/browser/pw_utils.py,sha256=
|
66
|
-
lmnr/sdk/browser/
|
65
|
+
lmnr/sdk/browser/pw_utils.py,sha256=f6cb4b7cb59d6b488298f462cf88aa967a424f5bfdfd91c39998df930b212c2c,20420
|
66
|
+
lmnr/sdk/browser/recorder/record.umd.min.cjs,sha256=f09c09052c2fc474efb0405e63d8d26ed2184b994513ce8aee04efdac8be155d,181235
|
67
67
|
lmnr/sdk/browser/utils.py,sha256=4a668776d2938108d25fbcecd61c8e1710a4da3e56230d5fefca5964dd09e3c1,2371
|
68
68
|
lmnr/sdk/client/asynchronous/async_client.py,sha256=e8feae007506cd2e4b08e72706f5f1bb4ea54492b4aa6b68ef184a129de8f466,4948
|
69
69
|
lmnr/sdk/client/asynchronous/resources/__init__.py,sha256=993423ea462aa8ea37d8d91662341c1ca0711cb2447cd476aacc373858f76135,481
|
@@ -85,12 +85,12 @@ lmnr/sdk/datasets.py,sha256=3fd851c5f97bf88eaa84b1451a053eaff23b4497cbb45eac2f9e
|
|
85
85
|
lmnr/sdk/decorators.py,sha256=0c6b95b92ec8023f28cd15ddc47849888fa91f2534d575f626e3557f5f0a0c02,6451
|
86
86
|
lmnr/sdk/eval_control.py,sha256=291394ac385c653ae9b5167e871bebeb4fe8fc6b7ff2ed38e636f87015dcba86,184
|
87
87
|
lmnr/sdk/evaluations.py,sha256=b41f7737b084dc5b64b2952659b729622e0918fd492bfcddde7177d1a1c690ae,22572
|
88
|
-
lmnr/sdk/laminar.py,sha256=
|
88
|
+
lmnr/sdk/laminar.py,sha256=c38590ec5d65d5dedad37258f13f4f88f989e9ae10cbdb30bd1acdad5443e1d6,34427
|
89
89
|
lmnr/sdk/log.py,sha256=9edfd83263f0d4845b1b2d1beeae2b4ed3f8628de941f371a893d72b79c348d4,2213
|
90
|
-
lmnr/sdk/types.py,sha256=
|
90
|
+
lmnr/sdk/types.py,sha256=c4868d7d1df2fbd108fe5990900675bff2e595f6ff207afcf166ad4853f5eb0a,12670
|
91
91
|
lmnr/sdk/utils.py,sha256=4beb884ae6fbbc7d8cf639b036b726ea6a2a658f0a6386faf5735a13d706a2d8,5039
|
92
|
-
lmnr/version.py,sha256=
|
93
|
-
lmnr-0.7.
|
94
|
-
lmnr-0.7.
|
95
|
-
lmnr-0.7.
|
96
|
-
lmnr-0.7.
|
92
|
+
lmnr/version.py,sha256=05f60eaaaa74f6161e0194247bb2244c9a3b5c1176c8902c6075ebef93276235,1321
|
93
|
+
lmnr-0.7.1.dist-info/WHEEL,sha256=ab6157bc637547491fb4567cd7ddf26b04d63382916ca16c29a5c8e94c9c9ef7,79
|
94
|
+
lmnr-0.7.1.dist-info/entry_points.txt,sha256=abdf3411b7dd2d7329a241f2da6669bab4e314a747a586ecdb9f888f3035003c,39
|
95
|
+
lmnr-0.7.1.dist-info/METADATA,sha256=847134a28ee45d56155835c491fbeb4a12cd6650709991550fff10976a328212,14473
|
96
|
+
lmnr-0.7.1.dist-info/RECORD,,
|