lmnr 0.6.3__py3-none-any.whl → 0.6.5__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.
Files changed (35) hide show
  1. lmnr/cli.py +1 -2
  2. lmnr/opentelemetry_lib/__init__.py +6 -7
  3. lmnr/opentelemetry_lib/decorators/__init__.py +9 -9
  4. lmnr/opentelemetry_lib/opentelemetry/instrumentation/google_genai/__init__.py +2 -2
  5. lmnr/opentelemetry_lib/opentelemetry/instrumentation/google_genai/config.py +4 -4
  6. lmnr/opentelemetry_lib/opentelemetry/instrumentation/google_genai/utils.py +19 -19
  7. lmnr/opentelemetry_lib/tracing/__init__.py +6 -7
  8. lmnr/opentelemetry_lib/tracing/_instrument_initializers.py +34 -35
  9. lmnr/opentelemetry_lib/tracing/context_properties.py +2 -3
  10. lmnr/opentelemetry_lib/tracing/exporter.py +4 -5
  11. lmnr/opentelemetry_lib/tracing/instruments.py +5 -6
  12. lmnr/opentelemetry_lib/tracing/processor.py +6 -7
  13. lmnr/sdk/browser/utils.py +4 -3
  14. lmnr/sdk/client/asynchronous/async_client.py +26 -11
  15. lmnr/sdk/client/asynchronous/resources/__init__.py +2 -0
  16. lmnr/sdk/client/asynchronous/resources/agent.py +89 -91
  17. lmnr/sdk/client/asynchronous/resources/evals.py +7 -8
  18. lmnr/sdk/client/asynchronous/resources/tags.py +89 -0
  19. lmnr/sdk/client/synchronous/resources/__init__.py +2 -1
  20. lmnr/sdk/client/synchronous/resources/agent.py +91 -91
  21. lmnr/sdk/client/synchronous/resources/evals.py +7 -8
  22. lmnr/sdk/client/synchronous/resources/tags.py +89 -0
  23. lmnr/sdk/client/synchronous/sync_client.py +28 -13
  24. lmnr/sdk/decorators.py +27 -29
  25. lmnr/sdk/evaluations.py +49 -46
  26. lmnr/sdk/laminar.py +67 -59
  27. lmnr/sdk/types.py +45 -39
  28. lmnr/sdk/utils.py +3 -3
  29. lmnr/version.py +1 -1
  30. {lmnr-0.6.3.dist-info → lmnr-0.6.5.dist-info}/METADATA +1 -1
  31. lmnr-0.6.5.dist-info/RECORD +56 -0
  32. lmnr-0.6.3.dist-info/RECORD +0 -54
  33. {lmnr-0.6.3.dist-info → lmnr-0.6.5.dist-info}/LICENSE +0 -0
  34. {lmnr-0.6.3.dist-info → lmnr-0.6.5.dist-info}/WHEEL +0 -0
  35. {lmnr-0.6.3.dist-info → lmnr-0.6.5.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
- from typing import Any, Awaitable, Callable, Literal, Optional, Union
7
+ import pydantic.alias_generators
8
8
  import uuid
9
9
 
10
- import pydantic.alias_generators
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 = Union[int, float]
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 = Optional[Any] # must be JSON-serializable
20
- EvaluationDatapointMetadata = Optional[Any] # must be JSON-serializable
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 = Union[Numeric, dict[str, Numeric]]
35
+ EvaluatorFunctionReturnType = Numeric | dict[str, Numeric]
34
36
 
35
37
  ExecutorFunction = Callable[
36
38
  [EvaluationDatapointData, Any],
37
- Union[ExecutorFunctionReturnType, Awaitable[ExecutorFunctionReturnType]],
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
- Union[EvaluatorFunctionReturnType, Awaitable[EvaluatorFunctionReturnType]],
48
+ EvaluatorFunctionReturnType | Awaitable[EvaluatorFunctionReturnType],
47
49
  ]
48
50
 
49
51
 
@@ -78,7 +80,9 @@ class PartialEvaluationDatapoint(pydantic.BaseModel):
78
80
  "index": self.index,
79
81
  "traceId": str(self.trace_id),
80
82
  "executorSpanId": str(self.executor_span_id),
81
- "metadata": serialize(self.metadata) if self.metadata is not None else None,
83
+ "metadata": (
84
+ serialize(self.metadata) if self.metadata is not None else None
85
+ ),
82
86
  }
83
87
  except Exception as e:
84
88
  raise ValueError(f"Error serializing PartialEvaluationDatapoint: {e}")
@@ -118,7 +122,9 @@ class EvaluationResultDatapoint(pydantic.BaseModel):
118
122
  ],
119
123
  "executorSpanId": str(self.executor_span_id),
120
124
  "index": self.index,
121
- "metadata": serialize(self.metadata) if self.metadata is not None else None,
125
+ "metadata": (
126
+ serialize(self.metadata) if self.metadata is not None else None
127
+ ),
122
128
  }
123
129
  except Exception as e:
124
130
  raise ValueError(f"Error serializing EvaluationResultDatapoint: {e}")
@@ -172,8 +178,8 @@ class LaminarSpanContext(pydantic.BaseModel):
172
178
  @classmethod
173
179
  def try_to_otel_span_context(
174
180
  cls,
175
- span_context: Union["LaminarSpanContext", dict[str, Any], str, SpanContext],
176
- logger: Optional[logging.Logger] = None,
181
+ span_context: "LaminarSpanContext" | dict[str, Any] | str | SpanContext,
182
+ logger: logging.Logger | None = None,
177
183
  ) -> SpanContext:
178
184
  if logger is None:
179
185
  logger = logging.getLogger(__name__)
@@ -210,7 +216,7 @@ class LaminarSpanContext(pydantic.BaseModel):
210
216
  raise ValueError("Invalid span_context provided")
211
217
 
212
218
  @classmethod
213
- def deserialize(cls, data: Union[dict[str, Any], str]) -> "LaminarSpanContext":
219
+ def deserialize(cls, data: dict[str, Any] | str) -> "LaminarSpanContext":
214
220
  if isinstance(data, dict):
215
221
  # Convert camelCase to snake_case for known fields
216
222
  converted_data = {
@@ -238,23 +244,23 @@ class RunAgentRequest(pydantic.BaseModel):
238
244
  populate_by_name=True,
239
245
  )
240
246
  prompt: str
241
- storage_state: Optional[str] = pydantic.Field(default=None)
242
- agent_state: Optional[str] = pydantic.Field(default=None)
243
- parent_span_context: Optional[str] = pydantic.Field(default=None)
244
- model_provider: Optional[ModelProvider] = pydantic.Field(default=None)
245
- model: Optional[str] = pydantic.Field(default=None)
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)
246
252
  stream: bool = pydantic.Field(default=False)
247
253
  enable_thinking: bool = pydantic.Field(default=True)
248
- cdp_url: Optional[str] = pydantic.Field(default=None)
254
+ cdp_url: str | None = pydantic.Field(default=None)
249
255
  return_screenshots: bool = pydantic.Field(default=False)
250
256
  return_storage_state: bool = pydantic.Field(default=False)
251
257
  return_agent_state: bool = pydantic.Field(default=False)
252
- timeout: Optional[int] = pydantic.Field(default=None)
253
- max_steps: Optional[int] = pydantic.Field(default=None)
254
- thinking_token_budget: Optional[int] = pydantic.Field(default=None)
255
- start_url: Optional[str] = pydantic.Field(default=None)
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)
256
262
  disable_give_control: bool = pydantic.Field(default=False)
257
- user_agent: Optional[str] = pydantic.Field(default=None)
263
+ user_agent: str | None = pydantic.Field(default=None)
258
264
 
259
265
 
260
266
  class ActionResult(pydantic.BaseModel):
@@ -262,8 +268,8 @@ class ActionResult(pydantic.BaseModel):
262
268
  alias_generator=pydantic.alias_generators.to_camel
263
269
  )
264
270
  is_done: bool = pydantic.Field(default=False)
265
- content: Optional[str] = pydantic.Field(default=None)
266
- error: Optional[str] = pydantic.Field(default=None)
271
+ content: str | None = pydantic.Field(default=None)
272
+ error: str | None = pydantic.Field(default=None)
267
273
 
268
274
 
269
275
  class AgentOutput(pydantic.BaseModel):
@@ -275,12 +281,12 @@ class AgentOutput(pydantic.BaseModel):
275
281
  # A stringified JSON object.
276
282
  # Only returned if return_storage_state is True.
277
283
  # CAUTION: This object may become large. It also may contain sensitive data.
278
- storage_state: Optional[str] = pydantic.Field(default=None)
284
+ storage_state: str | None = pydantic.Field(default=None)
279
285
  # Agent state with data related to the agent's state, such as the chat history.
280
286
  # A stringified JSON object.
281
287
  # Only returned if return_agent_state is True.
282
288
  # CAUTION: This object is large.
283
- agent_state: Optional[str] = pydantic.Field(default=None)
289
+ agent_state: str | None = pydantic.Field(default=None)
284
290
 
285
291
 
286
292
  class StepChunkContent(pydantic.BaseModel):
@@ -291,7 +297,7 @@ class StepChunkContent(pydantic.BaseModel):
291
297
  message_id: uuid.UUID = pydantic.Field()
292
298
  action_result: ActionResult = pydantic.Field()
293
299
  summary: str = pydantic.Field()
294
- screenshot: Optional[str] = pydantic.Field(default=None)
300
+ screenshot: str | None = pydantic.Field(default=None)
295
301
 
296
302
 
297
303
  class TimeoutChunkContent(pydantic.BaseModel):
@@ -305,7 +311,7 @@ class TimeoutChunkContent(pydantic.BaseModel):
305
311
  chunk_type: Literal["timeout"] = pydantic.Field(default="timeout")
306
312
  message_id: uuid.UUID = pydantic.Field()
307
313
  summary: str = pydantic.Field()
308
- screenshot: Optional[str] = pydantic.Field(default=None)
314
+ screenshot: str | None = pydantic.Field(default=None)
309
315
 
310
316
 
311
317
  class FinalOutputChunkContent(pydantic.BaseModel):
@@ -336,9 +342,9 @@ class ErrorChunkContent(pydantic.BaseModel):
336
342
 
337
343
 
338
344
  class RunAgentResponseChunk(pydantic.RootModel):
339
- root: Union[
340
- StepChunkContent,
341
- FinalOutputChunkContent,
342
- ErrorChunkContent,
343
- TimeoutChunkContent,
344
- ]
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) -> typing.Union[str, dict[str, 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: typing.Optional[list[str]] = None,
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) -> typing.Optional[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
@@ -3,7 +3,7 @@ import httpx
3
3
  from packaging import version
4
4
 
5
5
 
6
- __version__ = "0.6.3"
6
+ __version__ = "0.6.5"
7
7
  PYTHON_VERSION = f"{sys.version_info.major}.{sys.version_info.minor}"
8
8
 
9
9
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: lmnr
3
- Version: 0.6.3
3
+ Version: 0.6.5
4
4
  Summary: Python SDK for Laminar
5
5
  License: Apache-2.0
6
6
  Author: lmnr.ai
@@ -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=M5Q1Nbb_oZ6_5f2E-bGB3fTLe_THJnyxoPGroxd8B7s,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=7NB1gwM-7XfGZym-X8zYgkO7-GH3Q3WKdlL5sVWYa8A,1321
52
+ lmnr-0.6.5.dist-info/LICENSE,sha256=67b_wJHVV1CBaWkrKFWU1wyqTPSdzH77Ls-59631COg,10411
53
+ lmnr-0.6.5.dist-info/METADATA,sha256=Sml-w_OWXXWzCH_34XcT2aJp3WVO-TvmvlDoFWqnSeU,15135
54
+ lmnr-0.6.5.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
55
+ lmnr-0.6.5.dist-info/entry_points.txt,sha256=K1jE20ww4jzHNZLnsfWBvU3YKDGBgbOiYG5Y7ivQcq4,37
56
+ lmnr-0.6.5.dist-info/RECORD,,
@@ -1,54 +0,0 @@
1
- lmnr/__init__.py,sha256=eJ-gIHEk8KV-BeaU8c9spQww_T2G5_OMu4F8JEzngvA,1281
2
- lmnr/cli.py,sha256=kB2mxLaCwC2PIlVqPc9juP158NygHoTPC9ueiT9nO9M,3339
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=5mJlt05O1QEDR73NZMSjOMb54u-E34xOBPrTMACxx6M,8754
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=ZSJKBWgrRjgy03Y7Mp4ExXGrcERKjQErNCt59enjtc0,2296
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=ERIpZP6JKdG4cNJDIxZ7ca0pVQ-gNLosqLw51QuhgjQ,3605
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=zUZiFQeP72UN-CKLh9Xyo0Q9thRaEl-MZvMFIulHjws,4229
43
- lmnr/sdk/eval_control.py,sha256=KROUrDhcZTrptRZ-hxvr60_o_Gt_8u045jb4cBXcuoY,184
44
- lmnr/sdk/evaluations.py,sha256=Ehr_6oDhrTlumCVDYgXJnooMWKC3ecLViXrdafo_kj0,21323
45
- lmnr/sdk/laminar.py,sha256=A0J_UksBRBmWhV86v2v91Wl3WFCjeQBObOAZ7te2Xz8,28432
46
- lmnr/sdk/log.py,sha256=nt_YMmPw1IRbGy0b7q4rTtP4Yo3pQfNxqJPXK3nDSNQ,2213
47
- lmnr/sdk/types.py,sha256=ZVmaDmmd0QdPGyks5w-a4bDHgdh7s17KE931Lp0ToMQ,12619
48
- lmnr/sdk/utils.py,sha256=_kUn43AEn7Cdqcsg1CkQvzVQ7PhQT27m-iuLcRrwlZM,3891
49
- lmnr/version.py,sha256=av7X7FZrRqgZKp2E6X7inFPyLJUVHm48PqGbdbKJtqM,1321
50
- lmnr-0.6.3.dist-info/LICENSE,sha256=67b_wJHVV1CBaWkrKFWU1wyqTPSdzH77Ls-59631COg,10411
51
- lmnr-0.6.3.dist-info/METADATA,sha256=PACDOKRQJbXmQJUkwW-K29LmQ5odCh2UWoWhixMuAHY,15135
52
- lmnr-0.6.3.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
53
- lmnr-0.6.3.dist-info/entry_points.txt,sha256=K1jE20ww4jzHNZLnsfWBvU3YKDGBgbOiYG5Y7ivQcq4,37
54
- lmnr-0.6.3.dist-info/RECORD,,
File without changes
File without changes