lmnr 0.6.2__py3-none-any.whl → 0.6.4__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/cli.py +18 -11
- lmnr/opentelemetry_lib/__init__.py +6 -7
- lmnr/opentelemetry_lib/decorators/__init__.py +23 -8
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/google_genai/__init__.py +2 -2
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/google_genai/config.py +4 -4
- lmnr/opentelemetry_lib/opentelemetry/instrumentation/google_genai/utils.py +19 -19
- lmnr/opentelemetry_lib/tracing/__init__.py +6 -7
- lmnr/opentelemetry_lib/tracing/_instrument_initializers.py +32 -33
- lmnr/opentelemetry_lib/tracing/context_properties.py +2 -3
- lmnr/opentelemetry_lib/tracing/exporter.py +4 -5
- lmnr/opentelemetry_lib/tracing/instruments.py +5 -6
- lmnr/opentelemetry_lib/tracing/processor.py +6 -7
- lmnr/sdk/browser/utils.py +4 -3
- lmnr/sdk/client/asynchronous/async_client.py +26 -11
- lmnr/sdk/client/asynchronous/resources/__init__.py +2 -0
- lmnr/sdk/client/asynchronous/resources/agent.py +89 -91
- lmnr/sdk/client/asynchronous/resources/evals.py +8 -8
- lmnr/sdk/client/asynchronous/resources/tags.py +89 -0
- lmnr/sdk/client/synchronous/resources/__init__.py +2 -1
- lmnr/sdk/client/synchronous/resources/agent.py +91 -91
- lmnr/sdk/client/synchronous/resources/evals.py +8 -8
- lmnr/sdk/client/synchronous/resources/tags.py +89 -0
- lmnr/sdk/client/synchronous/sync_client.py +28 -13
- lmnr/sdk/decorators.py +43 -27
- lmnr/sdk/eval_control.py +1 -1
- lmnr/sdk/evaluations.py +75 -52
- lmnr/sdk/laminar.py +76 -58
- lmnr/sdk/types.py +47 -37
- lmnr/sdk/utils.py +3 -3
- lmnr/version.py +1 -1
- {lmnr-0.6.2.dist-info → lmnr-0.6.4.dist-info}/METADATA +1 -1
- lmnr-0.6.4.dist-info/RECORD +56 -0
- lmnr-0.6.2.dist-info/RECORD +0 -54
- {lmnr-0.6.2.dist-info → lmnr-0.6.4.dist-info}/LICENSE +0 -0
- {lmnr-0.6.2.dist-info → lmnr-0.6.4.dist-info}/WHEEL +0 -0
- {lmnr-0.6.2.dist-info → lmnr-0.6.4.dist-info}/entry_points.txt +0 -0
lmnr/sdk/types.py
CHANGED
@@ -1,23 +1,25 @@
|
|
1
|
+
from __future__ import annotations # For "Self" | str | ... type hint
|
2
|
+
|
3
|
+
import json
|
1
4
|
import logging
|
2
5
|
import datetime
|
3
|
-
from enum import Enum
|
4
|
-
import json
|
5
|
-
from opentelemetry.trace import SpanContext, TraceFlags
|
6
6
|
import pydantic
|
7
|
-
|
7
|
+
import pydantic.alias_generators
|
8
8
|
import uuid
|
9
9
|
|
10
|
-
import
|
10
|
+
from enum import Enum
|
11
|
+
from opentelemetry.trace import SpanContext, TraceFlags
|
12
|
+
from typing import Any, Awaitable, Callable, Literal
|
11
13
|
|
12
14
|
from .utils import serialize
|
13
15
|
|
14
16
|
|
15
|
-
Numeric =
|
17
|
+
Numeric = int | float
|
16
18
|
NumericTypes = (int, float) # for use with isinstance
|
17
19
|
|
18
20
|
EvaluationDatapointData = Any # non-null, must be JSON-serializable
|
19
|
-
EvaluationDatapointTarget =
|
20
|
-
EvaluationDatapointMetadata =
|
21
|
+
EvaluationDatapointTarget = Any | None # must be JSON-serializable
|
22
|
+
EvaluationDatapointMetadata = Any | None # must be JSON-serializable
|
21
23
|
|
22
24
|
|
23
25
|
# EvaluationDatapoint is a single data point in the evaluation
|
@@ -30,11 +32,11 @@ class Datapoint(pydantic.BaseModel):
|
|
30
32
|
|
31
33
|
|
32
34
|
ExecutorFunctionReturnType = Any
|
33
|
-
EvaluatorFunctionReturnType =
|
35
|
+
EvaluatorFunctionReturnType = Numeric | dict[str, Numeric]
|
34
36
|
|
35
37
|
ExecutorFunction = Callable[
|
36
38
|
[EvaluationDatapointData, Any],
|
37
|
-
|
39
|
+
ExecutorFunctionReturnType | Awaitable[ExecutorFunctionReturnType],
|
38
40
|
]
|
39
41
|
|
40
42
|
# EvaluatorFunction is a function that takes the output of the executor and the
|
@@ -43,7 +45,7 @@ ExecutorFunction = Callable[
|
|
43
45
|
# multiple criteria in one go instead of running multiple evaluators.
|
44
46
|
EvaluatorFunction = Callable[
|
45
47
|
[ExecutorFunctionReturnType, Any],
|
46
|
-
|
48
|
+
EvaluatorFunctionReturnType | Awaitable[EvaluatorFunctionReturnType],
|
47
49
|
]
|
48
50
|
|
49
51
|
|
@@ -66,6 +68,7 @@ class PartialEvaluationDatapoint(pydantic.BaseModel):
|
|
66
68
|
index: int
|
67
69
|
trace_id: uuid.UUID
|
68
70
|
executor_span_id: uuid.UUID
|
71
|
+
metadata: EvaluationDatapointMetadata = pydantic.Field(default=None)
|
69
72
|
|
70
73
|
# uuid is not serializable by default, so we need to convert it to a string
|
71
74
|
def to_dict(self):
|
@@ -77,6 +80,9 @@ class PartialEvaluationDatapoint(pydantic.BaseModel):
|
|
77
80
|
"index": self.index,
|
78
81
|
"traceId": str(self.trace_id),
|
79
82
|
"executorSpanId": str(self.executor_span_id),
|
83
|
+
"metadata": (
|
84
|
+
serialize(self.metadata) if self.metadata is not None else None
|
85
|
+
),
|
80
86
|
}
|
81
87
|
except Exception as e:
|
82
88
|
raise ValueError(f"Error serializing PartialEvaluationDatapoint: {e}")
|
@@ -92,6 +98,7 @@ class EvaluationResultDatapoint(pydantic.BaseModel):
|
|
92
98
|
human_evaluators: list[HumanEvaluator] = pydantic.Field(default_factory=list)
|
93
99
|
trace_id: uuid.UUID
|
94
100
|
executor_span_id: uuid.UUID
|
101
|
+
metadata: EvaluationDatapointMetadata = pydantic.Field(default=None)
|
95
102
|
|
96
103
|
# uuid is not serializable by default, so we need to convert it to a string
|
97
104
|
def to_dict(self):
|
@@ -115,6 +122,9 @@ class EvaluationResultDatapoint(pydantic.BaseModel):
|
|
115
122
|
],
|
116
123
|
"executorSpanId": str(self.executor_span_id),
|
117
124
|
"index": self.index,
|
125
|
+
"metadata": (
|
126
|
+
serialize(self.metadata) if self.metadata is not None else None
|
127
|
+
),
|
118
128
|
}
|
119
129
|
except Exception as e:
|
120
130
|
raise ValueError(f"Error serializing EvaluationResultDatapoint: {e}")
|
@@ -168,8 +178,8 @@ class LaminarSpanContext(pydantic.BaseModel):
|
|
168
178
|
@classmethod
|
169
179
|
def try_to_otel_span_context(
|
170
180
|
cls,
|
171
|
-
span_context:
|
172
|
-
logger:
|
181
|
+
span_context: "LaminarSpanContext" | dict[str, Any] | str | SpanContext,
|
182
|
+
logger: logging.Logger | None = None,
|
173
183
|
) -> SpanContext:
|
174
184
|
if logger is None:
|
175
185
|
logger = logging.getLogger(__name__)
|
@@ -206,7 +216,7 @@ class LaminarSpanContext(pydantic.BaseModel):
|
|
206
216
|
raise ValueError("Invalid span_context provided")
|
207
217
|
|
208
218
|
@classmethod
|
209
|
-
def deserialize(cls, data:
|
219
|
+
def deserialize(cls, data: dict[str, Any] | str) -> "LaminarSpanContext":
|
210
220
|
if isinstance(data, dict):
|
211
221
|
# Convert camelCase to snake_case for known fields
|
212
222
|
converted_data = {
|
@@ -234,23 +244,23 @@ class RunAgentRequest(pydantic.BaseModel):
|
|
234
244
|
populate_by_name=True,
|
235
245
|
)
|
236
246
|
prompt: str
|
237
|
-
storage_state:
|
238
|
-
agent_state:
|
239
|
-
parent_span_context:
|
240
|
-
model_provider:
|
241
|
-
model:
|
247
|
+
storage_state: str | None = pydantic.Field(default=None)
|
248
|
+
agent_state: str | None = pydantic.Field(default=None)
|
249
|
+
parent_span_context: str | None = pydantic.Field(default=None)
|
250
|
+
model_provider: ModelProvider | None = pydantic.Field(default=None)
|
251
|
+
model: str | None = pydantic.Field(default=None)
|
242
252
|
stream: bool = pydantic.Field(default=False)
|
243
253
|
enable_thinking: bool = pydantic.Field(default=True)
|
244
|
-
cdp_url:
|
254
|
+
cdp_url: str | None = pydantic.Field(default=None)
|
245
255
|
return_screenshots: bool = pydantic.Field(default=False)
|
246
256
|
return_storage_state: bool = pydantic.Field(default=False)
|
247
257
|
return_agent_state: bool = pydantic.Field(default=False)
|
248
|
-
timeout:
|
249
|
-
max_steps:
|
250
|
-
thinking_token_budget:
|
251
|
-
start_url:
|
258
|
+
timeout: int | None = pydantic.Field(default=None)
|
259
|
+
max_steps: int | None = pydantic.Field(default=None)
|
260
|
+
thinking_token_budget: int | None = pydantic.Field(default=None)
|
261
|
+
start_url: str | None = pydantic.Field(default=None)
|
252
262
|
disable_give_control: bool = pydantic.Field(default=False)
|
253
|
-
user_agent:
|
263
|
+
user_agent: str | None = pydantic.Field(default=None)
|
254
264
|
|
255
265
|
|
256
266
|
class ActionResult(pydantic.BaseModel):
|
@@ -258,8 +268,8 @@ class ActionResult(pydantic.BaseModel):
|
|
258
268
|
alias_generator=pydantic.alias_generators.to_camel
|
259
269
|
)
|
260
270
|
is_done: bool = pydantic.Field(default=False)
|
261
|
-
content:
|
262
|
-
error:
|
271
|
+
content: str | None = pydantic.Field(default=None)
|
272
|
+
error: str | None = pydantic.Field(default=None)
|
263
273
|
|
264
274
|
|
265
275
|
class AgentOutput(pydantic.BaseModel):
|
@@ -271,12 +281,12 @@ class AgentOutput(pydantic.BaseModel):
|
|
271
281
|
# A stringified JSON object.
|
272
282
|
# Only returned if return_storage_state is True.
|
273
283
|
# CAUTION: This object may become large. It also may contain sensitive data.
|
274
|
-
storage_state:
|
284
|
+
storage_state: str | None = pydantic.Field(default=None)
|
275
285
|
# Agent state with data related to the agent's state, such as the chat history.
|
276
286
|
# A stringified JSON object.
|
277
287
|
# Only returned if return_agent_state is True.
|
278
288
|
# CAUTION: This object is large.
|
279
|
-
agent_state:
|
289
|
+
agent_state: str | None = pydantic.Field(default=None)
|
280
290
|
|
281
291
|
|
282
292
|
class StepChunkContent(pydantic.BaseModel):
|
@@ -287,7 +297,7 @@ class StepChunkContent(pydantic.BaseModel):
|
|
287
297
|
message_id: uuid.UUID = pydantic.Field()
|
288
298
|
action_result: ActionResult = pydantic.Field()
|
289
299
|
summary: str = pydantic.Field()
|
290
|
-
screenshot:
|
300
|
+
screenshot: str | None = pydantic.Field(default=None)
|
291
301
|
|
292
302
|
|
293
303
|
class TimeoutChunkContent(pydantic.BaseModel):
|
@@ -301,7 +311,7 @@ class TimeoutChunkContent(pydantic.BaseModel):
|
|
301
311
|
chunk_type: Literal["timeout"] = pydantic.Field(default="timeout")
|
302
312
|
message_id: uuid.UUID = pydantic.Field()
|
303
313
|
summary: str = pydantic.Field()
|
304
|
-
screenshot:
|
314
|
+
screenshot: str | None = pydantic.Field(default=None)
|
305
315
|
|
306
316
|
|
307
317
|
class FinalOutputChunkContent(pydantic.BaseModel):
|
@@ -332,9 +342,9 @@ class ErrorChunkContent(pydantic.BaseModel):
|
|
332
342
|
|
333
343
|
|
334
344
|
class RunAgentResponseChunk(pydantic.RootModel):
|
335
|
-
root:
|
336
|
-
StepChunkContent
|
337
|
-
FinalOutputChunkContent
|
338
|
-
ErrorChunkContent
|
339
|
-
TimeoutChunkContent
|
340
|
-
|
345
|
+
root: (
|
346
|
+
StepChunkContent
|
347
|
+
| FinalOutputChunkContent
|
348
|
+
| ErrorChunkContent
|
349
|
+
| TimeoutChunkContent
|
350
|
+
)
|
lmnr/sdk/utils.py
CHANGED
@@ -50,7 +50,7 @@ def is_iterator(o: typing.Any) -> bool:
|
|
50
50
|
return hasattr(o, "__iter__") and hasattr(o, "__next__")
|
51
51
|
|
52
52
|
|
53
|
-
def serialize(obj: typing.Any) ->
|
53
|
+
def serialize(obj: typing.Any) -> str | dict[str, typing.Any]:
|
54
54
|
def serialize_inner(o: typing.Any):
|
55
55
|
if isinstance(o, (datetime.datetime, datetime.date)):
|
56
56
|
return o.strftime("%Y-%m-%dT%H:%M:%S.%f%z")
|
@@ -87,7 +87,7 @@ def get_input_from_func_args(
|
|
87
87
|
is_method: bool = False,
|
88
88
|
func_args: list[typing.Any] = [],
|
89
89
|
func_kwargs: dict[str, typing.Any] = {},
|
90
|
-
ignore_inputs:
|
90
|
+
ignore_inputs: list[str] | None = None,
|
91
91
|
) -> dict[str, typing.Any]:
|
92
92
|
# Remove implicitly passed "self" or "cls" argument for
|
93
93
|
# instance or class methods
|
@@ -107,7 +107,7 @@ def get_input_from_func_args(
|
|
107
107
|
return res
|
108
108
|
|
109
109
|
|
110
|
-
def from_env(key: str) ->
|
110
|
+
def from_env(key: str) -> str | None:
|
111
111
|
if val := os.getenv(key):
|
112
112
|
return val
|
113
113
|
dotenv_path = dotenv.find_dotenv(usecwd=True)
|
lmnr/version.py
CHANGED
@@ -0,0 +1,56 @@
|
|
1
|
+
lmnr/__init__.py,sha256=eJ-gIHEk8KV-BeaU8c9spQww_T2G5_OMu4F8JEzngvA,1281
|
2
|
+
lmnr/cli.py,sha256=OBgtPAUNzv6ONchasH53HppR-FEyLlIhAYOntkDYsEA,3308
|
3
|
+
lmnr/opentelemetry_lib/.flake8,sha256=bCxuDlGx3YQ55QHKPiGJkncHanh9qGjQJUujcFa3lAU,150
|
4
|
+
lmnr/opentelemetry_lib/__init__.py,sha256=E_NwAWxh3hckZjXTA80hOzmRUL8RvnSYRdcPExwVROc,2056
|
5
|
+
lmnr/opentelemetry_lib/decorators/__init__.py,sha256=E8OF6yaCitsjvHLscbrUs-OaomOd0Vjftf5La834WD8,8669
|
6
|
+
lmnr/opentelemetry_lib/opentelemetry/instrumentation/google_genai/__init__.py,sha256=8bBzOZ4ekeF121KDSmaax9OVUPBrPKXDbq8amwsnq6U,15326
|
7
|
+
lmnr/opentelemetry_lib/opentelemetry/instrumentation/google_genai/config.py,sha256=25zevJ7g3MtJP_5gju3jBH7-wg7SbDkktysuUO29ksI,245
|
8
|
+
lmnr/opentelemetry_lib/opentelemetry/instrumentation/google_genai/utils.py,sha256=3knAm34hX78JUWvz8rdJSfpytclVnmivATm4q1l1WwU,6144
|
9
|
+
lmnr/opentelemetry_lib/tracing/__init__.py,sha256=dy3zrgeiZmLX-aLXuRUW8-RGR4FaIdRRKKEVR0eItGs,5662
|
10
|
+
lmnr/opentelemetry_lib/tracing/_instrument_initializers.py,sha256=O_98Tw45AphJRWmv_sJ7TNp4pc5YGaG9zn7eLZsv4_4,14145
|
11
|
+
lmnr/opentelemetry_lib/tracing/attributes.py,sha256=MvowVluXfCqSIC3Cvx3tWDqB0Cpr9bpSlY91qL4Iy74,1497
|
12
|
+
lmnr/opentelemetry_lib/tracing/context_properties.py,sha256=eolsrmW1oOHQwiNJ3wsMQWOq3sJsoCIGgXCXJXmakuU,1723
|
13
|
+
lmnr/opentelemetry_lib/tracing/exporter.py,sha256=avjmH9hz6PXbMV2bnx7b9GuGC6flAUDwvcxoZMbTWgM,2082
|
14
|
+
lmnr/opentelemetry_lib/tracing/instruments.py,sha256=iA8PWSq0gmdgBqtq1GVBynSP64SAri1tkHBojGUnFvA,5163
|
15
|
+
lmnr/opentelemetry_lib/tracing/processor.py,sha256=0iGpByt-GT-Z5ddiqSVpymeVIVwOkuABES0tep5Hpvw,3437
|
16
|
+
lmnr/opentelemetry_lib/tracing/tracer.py,sha256=oNC6V8eFvuK3i5IWXsKDjEMFL_axeSov3L1fPevwuWM,476
|
17
|
+
lmnr/opentelemetry_lib/utils/__init__.py,sha256=pNhf0G3vTd5ccoc03i1MXDbricSaiqCbi1DLWhSekK8,604
|
18
|
+
lmnr/opentelemetry_lib/utils/json_encoder.py,sha256=dK6b_axr70IYL7Vv-bu4wntvDDuyntoqsHaddqX7P58,463
|
19
|
+
lmnr/opentelemetry_lib/utils/package_check.py,sha256=ST2BvDxt0bax-ih9F9Wf0jlKAErmztbxKmOcFf713rI,265
|
20
|
+
lmnr/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
21
|
+
lmnr/sdk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
22
|
+
lmnr/sdk/browser/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
23
|
+
lmnr/sdk/browser/browser_use_otel.py,sha256=I3Qoc8y1hqTxRJtzh84qJKz1sz2s_b68YNEYxI0CTV4,4577
|
24
|
+
lmnr/sdk/browser/patchright_otel.py,sha256=O7n1dB_Mw-_L70zi0zqpnFFiKuTPEEpO7ry1ia6IXWQ,5454
|
25
|
+
lmnr/sdk/browser/playwright_otel.py,sha256=LFg1iJXbez-BEgEIY9eaO_2T2uR6SxyfFL46fHcS7Mg,13423
|
26
|
+
lmnr/sdk/browser/pw_utils.py,sha256=nFqVujQb7owVFzT-31_g09CbfbBwUIXKxs3JxuE47ws,10835
|
27
|
+
lmnr/sdk/browser/rrweb/rrweb.umd.min.cjs,sha256=Ly2jiwC7hTEtgiXzBpoJNSE1Vkzu0lZPZS8brjusAW0,260896
|
28
|
+
lmnr/sdk/browser/utils.py,sha256=SmaHdtKTgQjSX7zs1hyOFxCk2j5WIw1f78pZZN0J48E,2371
|
29
|
+
lmnr/sdk/client/asynchronous/async_client.py,sha256=5Hb1Z4tPdUATHgmQ8R6laCqWCxvm5MbxyU4jMmRPnO8,4579
|
30
|
+
lmnr/sdk/client/asynchronous/resources/__init__.py,sha256=9fkjlVJS8zhnCTITjhow173phBdZlyiae-X0LcTSWqM,381
|
31
|
+
lmnr/sdk/client/asynchronous/resources/agent.py,sha256=Ong3K2KRLN7agx1_-aZxMGcT_OGF3_ZGtFLm8aPMbYw,17788
|
32
|
+
lmnr/sdk/client/asynchronous/resources/base.py,sha256=aJ43Q1rltg23IQaI4eeaZKckxVTgDUbCJrChhQCUEoE,986
|
33
|
+
lmnr/sdk/client/asynchronous/resources/browser_events.py,sha256=T-DUbbAfMQ2VqiVfgVplxuTaJZuoNcC1O6RCxdfw7UQ,1163
|
34
|
+
lmnr/sdk/client/asynchronous/resources/evals.py,sha256=88PsegaPhqHTuTzMmG9qBrGAgd5peBgdOc_sL9zf2G8,2231
|
35
|
+
lmnr/sdk/client/asynchronous/resources/tags.py,sha256=VbsBMp120d_8drGFr1Obp4xSRktzPC-3kOYcblZnvKA,2565
|
36
|
+
lmnr/sdk/client/synchronous/resources/__init__.py,sha256=hDGyNARdG3J25lLAP8JnlER7r8JL-JQuPN1xdheiCw4,318
|
37
|
+
lmnr/sdk/client/synchronous/resources/agent.py,sha256=mnTu6toN2LbgmEhQ-mdZ0CzNAnkrGiksrys0AyMwz2A,17809
|
38
|
+
lmnr/sdk/client/synchronous/resources/base.py,sha256=ne1ZZ10UmNkMrECVvClcEJfcFJlSGvaXOC8K6mZTPdY,971
|
39
|
+
lmnr/sdk/client/synchronous/resources/browser_events.py,sha256=9rFYWZesXQomnFgbZ590tGFMTaNj0OAzT9RcFwD8q_Y,1135
|
40
|
+
lmnr/sdk/client/synchronous/resources/evals.py,sha256=0vOVY6nNZkvhX6kgmpfeeMHWl97YoO1hUiu6CM8XOuM,3540
|
41
|
+
lmnr/sdk/client/synchronous/resources/tags.py,sha256=cNMEzMDhlBNpI7J4x6xkFAANiNSq-Vuu_zi5NPk2kcA,2485
|
42
|
+
lmnr/sdk/client/synchronous/sync_client.py,sha256=kPS14M0e99xMtLQ_yEOJrFpQWhstqARytkGIbfCoNVc,4906
|
43
|
+
lmnr/sdk/datasets.py,sha256=jl5Wj5nEI9pww4Jwn4XKF8h0gXBU4TOIrhqNjTJsHZQ,1709
|
44
|
+
lmnr/sdk/decorators.py,sha256=4j313WdRilkxLBTlpnqKCod7tO7TAi4VCnpKXcsbtPI,3933
|
45
|
+
lmnr/sdk/eval_control.py,sha256=KROUrDhcZTrptRZ-hxvr60_o_Gt_8u045jb4cBXcuoY,184
|
46
|
+
lmnr/sdk/evaluations.py,sha256=LxeKOVqUYEuyjC05fSknX5HobuIX_xHTn43RGPziLNg,21244
|
47
|
+
lmnr/sdk/laminar.py,sha256=jbsNHl-IbZs_6okGGckkDbh_gpV2rsR3ao5jflIZHgU,28627
|
48
|
+
lmnr/sdk/log.py,sha256=nt_YMmPw1IRbGy0b7q4rTtP4Yo3pQfNxqJPXK3nDSNQ,2213
|
49
|
+
lmnr/sdk/types.py,sha256=wnC1OkF-FErpAaRbEGYtiDnPBYw2qxmz3zu8kVBMn7w,12657
|
50
|
+
lmnr/sdk/utils.py,sha256=AK9njI7s0cacR93NpvQr6nEiEp6Cj-GIBWSdbFHrWVk,3858
|
51
|
+
lmnr/version.py,sha256=9pfSIZo6naIUBr6k6ijLSUUNfBAZcJePcTUnyuODmKs,1321
|
52
|
+
lmnr-0.6.4.dist-info/LICENSE,sha256=67b_wJHVV1CBaWkrKFWU1wyqTPSdzH77Ls-59631COg,10411
|
53
|
+
lmnr-0.6.4.dist-info/METADATA,sha256=ysmdrNljcVt7KX3g49iE1HuBqa7BszsOzTm3S3sAZZw,15135
|
54
|
+
lmnr-0.6.4.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
55
|
+
lmnr-0.6.4.dist-info/entry_points.txt,sha256=K1jE20ww4jzHNZLnsfWBvU3YKDGBgbOiYG5Y7ivQcq4,37
|
56
|
+
lmnr-0.6.4.dist-info/RECORD,,
|
lmnr-0.6.2.dist-info/RECORD
DELETED
@@ -1,54 +0,0 @@
|
|
1
|
-
lmnr/__init__.py,sha256=eJ-gIHEk8KV-BeaU8c9spQww_T2G5_OMu4F8JEzngvA,1281
|
2
|
-
lmnr/cli.py,sha256=e_Jgcwn3Q-hgR6VLLar2ccWLAhJb8yB4cwoIdg5vwDs,3013
|
3
|
-
lmnr/opentelemetry_lib/.flake8,sha256=bCxuDlGx3YQ55QHKPiGJkncHanh9qGjQJUujcFa3lAU,150
|
4
|
-
lmnr/opentelemetry_lib/__init__.py,sha256=QMPaVYATF_rT50A-lqoJZaH6YlzRu1BQKPgw0L3Rxs0,2107
|
5
|
-
lmnr/opentelemetry_lib/decorators/__init__.py,sha256=fTO-p6CaLFw2-8HDVGUS1dvnfCMwUH5vZSYc6_NVAuU,7995
|
6
|
-
lmnr/opentelemetry_lib/opentelemetry/instrumentation/google_genai/__init__.py,sha256=jrvHu8aq2EBGZI3ypucUltR4-v8HqTKnqGtWXF5Qbb8,15339
|
7
|
-
lmnr/opentelemetry_lib/opentelemetry/instrumentation/google_genai/config.py,sha256=FeQOcC3RNq-yOd8KZ_VoBuZgDl6tnkxx6I2MKVH1GMI,256
|
8
|
-
lmnr/opentelemetry_lib/opentelemetry/instrumentation/google_genai/utils.py,sha256=P0fOmGi_0nv3cMFcdWblRuTsDRCZnvdM8GQ3zJT0qbM,6229
|
9
|
-
lmnr/opentelemetry_lib/tracing/__init__.py,sha256=7uGdMNAlUJv2HcNz3XAqpb7iUNsiQwSY9ipv8D2V10I,5713
|
10
|
-
lmnr/opentelemetry_lib/tracing/_instrument_initializers.py,sha256=CBgkfVKmvWWvSgN8eZHgEF92ED8K4VkXzz9d0QC4tIs,14269
|
11
|
-
lmnr/opentelemetry_lib/tracing/attributes.py,sha256=MvowVluXfCqSIC3Cvx3tWDqB0Cpr9bpSlY91qL4Iy74,1497
|
12
|
-
lmnr/opentelemetry_lib/tracing/context_properties.py,sha256=xMLitHrENwSW3U9_PweAFRIdTm8hqwHP4Vi3S8jazXA,1757
|
13
|
-
lmnr/opentelemetry_lib/tracing/exporter.py,sha256=vKsJCx8TMJ7NK4NmyJrygHH2aBaLMzIHVSzDt1-ABrs,2132
|
14
|
-
lmnr/opentelemetry_lib/tracing/instruments.py,sha256=KDnjJZbCC9arRgdksZfaBU4Oej0QBcS8b9JANe_ZbNU,5214
|
15
|
-
lmnr/opentelemetry_lib/tracing/processor.py,sha256=5gYBQj7VStID-nNqPGUmyEOfFIwJKuvmlhcU2kvv5KY,3493
|
16
|
-
lmnr/opentelemetry_lib/tracing/tracer.py,sha256=oNC6V8eFvuK3i5IWXsKDjEMFL_axeSov3L1fPevwuWM,476
|
17
|
-
lmnr/opentelemetry_lib/utils/__init__.py,sha256=pNhf0G3vTd5ccoc03i1MXDbricSaiqCbi1DLWhSekK8,604
|
18
|
-
lmnr/opentelemetry_lib/utils/json_encoder.py,sha256=dK6b_axr70IYL7Vv-bu4wntvDDuyntoqsHaddqX7P58,463
|
19
|
-
lmnr/opentelemetry_lib/utils/package_check.py,sha256=ST2BvDxt0bax-ih9F9Wf0jlKAErmztbxKmOcFf713rI,265
|
20
|
-
lmnr/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
21
|
-
lmnr/sdk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
22
|
-
lmnr/sdk/browser/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
23
|
-
lmnr/sdk/browser/browser_use_otel.py,sha256=I3Qoc8y1hqTxRJtzh84qJKz1sz2s_b68YNEYxI0CTV4,4577
|
24
|
-
lmnr/sdk/browser/patchright_otel.py,sha256=O7n1dB_Mw-_L70zi0zqpnFFiKuTPEEpO7ry1ia6IXWQ,5454
|
25
|
-
lmnr/sdk/browser/playwright_otel.py,sha256=LFg1iJXbez-BEgEIY9eaO_2T2uR6SxyfFL46fHcS7Mg,13423
|
26
|
-
lmnr/sdk/browser/pw_utils.py,sha256=nFqVujQb7owVFzT-31_g09CbfbBwUIXKxs3JxuE47ws,10835
|
27
|
-
lmnr/sdk/browser/rrweb/rrweb.umd.min.cjs,sha256=Ly2jiwC7hTEtgiXzBpoJNSE1Vkzu0lZPZS8brjusAW0,260896
|
28
|
-
lmnr/sdk/browser/utils.py,sha256=xPpMRP2y9aJIsdIDNg2wN4PSa_4w0LSsra-GIMx9VXc,2366
|
29
|
-
lmnr/sdk/client/asynchronous/async_client.py,sha256=NuGla1gGlyYLxyIQ6LSKG-b5eYGNIQA5HXAOzGQR5BU,4036
|
30
|
-
lmnr/sdk/client/asynchronous/resources/__init__.py,sha256=WL2ehX1LfxG3n7bsxzTRO8grM0YtMGb_r7DLMjkmm1Y,298
|
31
|
-
lmnr/sdk/client/asynchronous/resources/agent.py,sha256=NiX2azmQnzNYHpZT_Sme7Dm5cmDf2xp37YAwZIqCCrI,18276
|
32
|
-
lmnr/sdk/client/asynchronous/resources/base.py,sha256=aJ43Q1rltg23IQaI4eeaZKckxVTgDUbCJrChhQCUEoE,986
|
33
|
-
lmnr/sdk/client/asynchronous/resources/browser_events.py,sha256=T-DUbbAfMQ2VqiVfgVplxuTaJZuoNcC1O6RCxdfw7UQ,1163
|
34
|
-
lmnr/sdk/client/asynchronous/resources/evals.py,sha256=bm3ATwqLozUoW2Ed6psmdjmeJ7joBaQHSv6mBeA_cws,2187
|
35
|
-
lmnr/sdk/client/synchronous/resources/__init__.py,sha256=Sk0_5Y1UkqwUhJKRct9R3JAnHk6sPe8lDokpYVqehdY,250
|
36
|
-
lmnr/sdk/client/synchronous/resources/agent.py,sha256=vwf3XOHX4nF_W0t4qwqcpaGC2vdccaJ5iI920G1jPf0,18150
|
37
|
-
lmnr/sdk/client/synchronous/resources/base.py,sha256=ne1ZZ10UmNkMrECVvClcEJfcFJlSGvaXOC8K6mZTPdY,971
|
38
|
-
lmnr/sdk/client/synchronous/resources/browser_events.py,sha256=9rFYWZesXQomnFgbZ590tGFMTaNj0OAzT9RcFwD8q_Y,1135
|
39
|
-
lmnr/sdk/client/synchronous/resources/evals.py,sha256=sMMAai7_IW842z_J0W9OpthDhGQPCkTVJZamIkKq0wk,3496
|
40
|
-
lmnr/sdk/client/synchronous/sync_client.py,sha256=-sSMbUvgDLt98tT-nDyE_xfTohcGdn00lAmul1713Wo,4396
|
41
|
-
lmnr/sdk/datasets.py,sha256=jl5Wj5nEI9pww4Jwn4XKF8h0gXBU4TOIrhqNjTJsHZQ,1709
|
42
|
-
lmnr/sdk/decorators.py,sha256=NIen6dUhcryiWnoZTP6C6_llwPZqbGoOr8iWPorKWuY,3346
|
43
|
-
lmnr/sdk/eval_control.py,sha256=qMiAI6FnHdIwKX8-W1nDhEcS5Cjm5lYRoIN7x4J-AVI,182
|
44
|
-
lmnr/sdk/evaluations.py,sha256=SMCoYMHGwMKEXaGT6tR10dvXXU_OrazlYZCy11hKlQc,20444
|
45
|
-
lmnr/sdk/laminar.py,sha256=QbMbxdAhFzVIWzKQRtoVv9M5qMQj_cdhJ4ph3d22Rxs,28158
|
46
|
-
lmnr/sdk/log.py,sha256=nt_YMmPw1IRbGy0b7q4rTtP4Yo3pQfNxqJPXK3nDSNQ,2213
|
47
|
-
lmnr/sdk/types.py,sha256=QOIZ18ELzts5AG1Tx-_twHI43_PHoB4X8JYynTH0MCA,12287
|
48
|
-
lmnr/sdk/utils.py,sha256=_kUn43AEn7Cdqcsg1CkQvzVQ7PhQT27m-iuLcRrwlZM,3891
|
49
|
-
lmnr/version.py,sha256=4bUSBAdSHSi1BuH3OK30Hf5PMi-Y4qdGcEI7XjLBqlU,1321
|
50
|
-
lmnr-0.6.2.dist-info/LICENSE,sha256=67b_wJHVV1CBaWkrKFWU1wyqTPSdzH77Ls-59631COg,10411
|
51
|
-
lmnr-0.6.2.dist-info/METADATA,sha256=kVlsBTEjT5P8gdcYPZ1dUGPW4JWAUq0FHsYHDwFelJg,15135
|
52
|
-
lmnr-0.6.2.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
53
|
-
lmnr-0.6.2.dist-info/entry_points.txt,sha256=K1jE20ww4jzHNZLnsfWBvU3YKDGBgbOiYG5Y7ivQcq4,37
|
54
|
-
lmnr-0.6.2.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|