lmnr 0.4.50__py3-none-any.whl → 0.4.51b0__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.
@@ -1,6 +1,4 @@
1
- import os
2
1
  import sys
3
- from pathlib import Path
4
2
 
5
3
  from typing import Optional, Set
6
4
  from opentelemetry.sdk.trace import SpanProcessor
@@ -12,8 +12,8 @@ from opentelemetry.trace import Span
12
12
 
13
13
  from lmnr.sdk.utils import get_input_from_func_args, is_method
14
14
  from lmnr.openllmetry_sdk.tracing import get_tracer
15
- from lmnr.openllmetry_sdk.tracing.attributes import SPAN_INPUT, SPAN_OUTPUT, SPAN_PATH
16
- from lmnr.openllmetry_sdk.tracing.tracing import TracerWrapper, get_span_path
15
+ from lmnr.openllmetry_sdk.tracing.attributes import SPAN_INPUT, SPAN_OUTPUT
16
+ from lmnr.openllmetry_sdk.tracing.tracing import TracerWrapper
17
17
  from lmnr.openllmetry_sdk.utils.json_encoder import JSONEncoder
18
18
 
19
19
 
@@ -50,11 +50,7 @@ def entity_method(
50
50
  with get_tracer() as tracer:
51
51
  span = tracer.start_span(span_name)
52
52
 
53
- span_path = get_span_path(span_name)
54
- span.set_attribute(SPAN_PATH, span_path)
55
- ctx = context_api.set_value("span_path", span_path)
56
-
57
- ctx = trace.set_span_in_context(span, ctx)
53
+ ctx = trace.set_span_in_context(span, context_api.get_current())
58
54
  ctx_token = context_api.attach(ctx)
59
55
 
60
56
  try:
@@ -101,8 +97,6 @@ def entity_method(
101
97
 
102
98
 
103
99
  # Async Decorators
104
-
105
-
106
100
  def aentity_method(
107
101
  name: Optional[str] = None,
108
102
  ):
@@ -117,11 +111,7 @@ def aentity_method(
117
111
  with get_tracer() as tracer:
118
112
  span = tracer.start_span(span_name)
119
113
 
120
- span_path = get_span_path(span_name)
121
- span.set_attribute(SPAN_PATH, span_path)
122
- ctx = context_api.set_value("span_path", span_path)
123
-
124
- ctx = trace.set_span_in_context(span, ctx)
114
+ ctx = trace.set_span_in_context(span, context_api.get_current())
125
115
  ctx_token = context_api.attach(ctx)
126
116
 
127
117
  try:
@@ -23,11 +23,11 @@ from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import (
23
23
  OTLPSpanExporter as GRPCExporter,
24
24
  )
25
25
  from opentelemetry.instrumentation.threading import ThreadingInstrumentor
26
- from opentelemetry.context import get_value, attach, set_value
26
+ from opentelemetry.context import get_value, attach, get_current, set_value, Context
27
27
  from opentelemetry.propagate import set_global_textmap
28
28
  from opentelemetry.propagators.textmap import TextMapPropagator
29
29
  from opentelemetry.sdk.resources import Resource
30
- from opentelemetry.sdk.trace import TracerProvider, SpanProcessor
30
+ from opentelemetry.sdk.trace import TracerProvider, SpanProcessor, Span
31
31
  from opentelemetry.sdk.trace.export import (
32
32
  SpanExporter,
33
33
  SimpleSpanProcessor,
@@ -70,6 +70,7 @@ class TracerWrapper(object):
70
70
  headers: Dict[str, str] = {}
71
71
  __tracer_provider: TracerProvider = None
72
72
  __logger: logging.Logger = None
73
+ __span_id_to_path: dict[int, str] = {}
73
74
 
74
75
  def __new__(
75
76
  cls,
@@ -137,6 +138,7 @@ class TracerWrapper(object):
137
138
  return cls.instance
138
139
 
139
140
  def exit_handler(self):
141
+ self.__span_id_to_path = {}
140
142
  self.flush()
141
143
 
142
144
  def _initialize_logger(self):
@@ -145,14 +147,18 @@ class TracerWrapper(object):
145
147
  console_log_handler.setFormatter(VerboseColorfulFormatter())
146
148
  self.__logger.addHandler(console_log_handler)
147
149
 
148
- def _span_processor_on_start(self, span, parent_context):
149
- span_path = get_value("span_path")
150
- if span_path is not None:
151
- # This is done redundantly here for most decorated functions
152
- # However, need to do this for auto-instrumented libraries.
153
- # Then, for auto-instrumented ones, they'll attach
154
- # the final part of the name to the span on the backend.
155
- span.set_attribute(SPAN_PATH, span_path)
150
+ def _span_processor_on_start(
151
+ self, span: Span, parent_context: Optional[Context] = None
152
+ ):
153
+ span_path_in_context = get_value("span_path", parent_context or get_current())
154
+ span_path_in_context = None
155
+ parent_span_path = span_path_in_context or (
156
+ self.__span_id_to_path.get(span.parent.span_id) if span.parent else None
157
+ )
158
+ span_path = f"{parent_span_path}.{span.name}" if parent_span_path else span.name
159
+ span.set_attribute(SPAN_PATH, span_path)
160
+ set_value("span_path", span_path, get_current())
161
+ self.__span_id_to_path[span.get_span_context().span_id] = span_path
156
162
 
157
163
  span.set_attribute(SPAN_INSTRUMENTATION_SOURCE, "python")
158
164
 
@@ -186,6 +192,11 @@ class TracerWrapper(object):
186
192
  def verify_initialized(cls) -> bool:
187
193
  return hasattr(cls, "instance")
188
194
 
195
+ @classmethod
196
+ def clear(cls):
197
+ # Any state cleanup. Now used in between tests
198
+ cls.__span_id_to_path = {}
199
+
189
200
  def flush(self):
190
201
  self.__spans_processor.force_flush()
191
202
 
@@ -231,12 +242,6 @@ def _set_association_properties_attributes(span, properties: dict) -> None:
231
242
  span.set_attribute(f"{ASSOCIATION_PROPERTIES}.{key}", value)
232
243
 
233
244
 
234
- def get_span_path(span_name: str) -> str:
235
- current_span_path = get_value("span_path")
236
- span_path = f"{current_span_path}.{span_name}" if current_span_path else span_name
237
- return span_path
238
-
239
-
240
245
  def set_managed_prompt_tracing_context(
241
246
  key: str,
242
247
  version: int,
lmnr/sdk/datasets.py CHANGED
@@ -1,5 +1,4 @@
1
1
  from abc import ABC, abstractmethod
2
- import asyncio
3
2
 
4
3
  from .log import get_default_logger
5
4
  from .laminar import Laminar as L
lmnr/sdk/laminar.py CHANGED
@@ -10,8 +10,8 @@ from lmnr.openllmetry_sdk.tracing.attributes import (
10
10
  OVERRIDE_PARENT_SPAN,
11
11
  )
12
12
  from lmnr.openllmetry_sdk.decorators.base import json_dumps
13
- from opentelemetry import context, trace
14
- from opentelemetry.context import attach, detach, set_value
13
+ from opentelemetry import context as context_api, trace
14
+ from opentelemetry.context import attach, detach
15
15
  from opentelemetry.sdk.trace import SpanProcessor
16
16
  from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter
17
17
  from opentelemetry.util.types import AttributeValue
@@ -37,11 +37,9 @@ from lmnr.openllmetry_sdk.tracing.attributes import (
37
37
  SESSION_ID,
38
38
  SPAN_INPUT,
39
39
  SPAN_OUTPUT,
40
- SPAN_PATH,
41
40
  TRACE_TYPE,
42
41
  )
43
42
  from lmnr.openllmetry_sdk.tracing.tracing import (
44
- get_span_path,
45
43
  remove_association_properties,
46
44
  set_association_properties,
47
45
  update_association_properties,
@@ -81,6 +79,7 @@ class Laminar:
81
79
  grpc_port: Optional[int] = None,
82
80
  instruments: Optional[Set[Instruments]] = None,
83
81
  _processor: Optional[SpanProcessor] = None,
82
+ disable_batch: bool = False,
84
83
  ):
85
84
  """Initialize Laminar context across the application.
86
85
  This method must be called before using any other Laminar methods or
@@ -142,6 +141,7 @@ class Laminar:
142
141
  headers={"authorization": f"Bearer {cls.__project_api_key}"},
143
142
  ),
144
143
  instruments=instruments,
144
+ disable_batch=disable_batch,
145
145
  )
146
146
 
147
147
  @classmethod
@@ -350,8 +350,7 @@ class Laminar:
350
350
  return
351
351
 
352
352
  with get_tracer() as tracer:
353
- span_path = get_span_path(name)
354
- ctx = set_value("span_path", span_path, context)
353
+ ctx = context or context_api.get_current()
355
354
  if trace_id is not None:
356
355
  if isinstance(trace_id, uuid.UUID):
357
356
  span_context = trace.SpanContext(
@@ -385,7 +384,6 @@ class Laminar:
385
384
  name,
386
385
  context=ctx,
387
386
  attributes={
388
- SPAN_PATH: span_path,
389
387
  SPAN_TYPE: span_type,
390
388
  **(label_props),
391
389
  },
@@ -497,8 +495,7 @@ class Laminar:
497
495
  span. Defaults to None.
498
496
  """
499
497
  with get_tracer() as tracer:
500
- span_path = get_span_path(name)
501
- ctx = set_value("span_path", span_path, context)
498
+ ctx = context or context_api.get_current()
502
499
  if trace_id is not None:
503
500
  if isinstance(trace_id, uuid.UUID):
504
501
  span_context = trace.SpanContext(
@@ -531,7 +528,6 @@ class Laminar:
531
528
  name,
532
529
  context=ctx,
533
530
  attributes={
534
- SPAN_PATH: span_path,
535
531
  SPAN_TYPE: span_type,
536
532
  **(label_props),
537
533
  },
@@ -670,7 +666,7 @@ class Laminar:
670
666
  @classmethod
671
667
  def clear_metadata(cls):
672
668
  """Clear the metadata from the context"""
673
- props: dict = copy.copy(context.get_value("association_properties"))
669
+ props: dict = copy.copy(context_api.get_value("association_properties"))
674
670
  metadata_keys = [k for k in props.keys() if k.startswith("metadata.")]
675
671
  for k in metadata_keys:
676
672
  props.pop(k)
@@ -679,7 +675,7 @@ class Laminar:
679
675
  @classmethod
680
676
  def clear_session(cls):
681
677
  """Clear the session and user id from the context"""
682
- props: dict = copy.copy(context.get_value("association_properties"))
678
+ props: dict = copy.copy(context_api.get_value("association_properties"))
683
679
  props.pop("session_id", None)
684
680
  props.pop("user_id", None)
685
681
  set_association_properties(props)
@@ -1,9 +1,10 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.3
2
2
  Name: lmnr
3
- Version: 0.4.50
4
- Summary: Python SDK for Laminar AI
3
+ Version: 0.4.51b0
4
+ Summary: Python SDK for Laminar
5
5
  License: Apache-2.0
6
6
  Author: lmnr.ai
7
+ Author-email: founders@lmnr.ai
7
8
  Requires-Python: >=3.9,<4
8
9
  Classifier: License :: OSI Approved :: Apache Software License
9
10
  Classifier: Programming Language :: Python :: 3
@@ -44,37 +45,63 @@ Requires-Dist: deprecated (>=1.0)
44
45
  Requires-Dist: opentelemetry-api (>=1.28.0)
45
46
  Requires-Dist: opentelemetry-exporter-otlp-proto-grpc (>=1.28.0)
46
47
  Requires-Dist: opentelemetry-exporter-otlp-proto-http (>=1.28.0)
47
- Requires-Dist: opentelemetry-instrumentation-alephalpha (>=0.34.0) ; extra == "all" or extra == "alephalpha"
48
- Requires-Dist: opentelemetry-instrumentation-anthropic (>=0.34.0) ; extra == "all" or extra == "anthropic"
49
- Requires-Dist: opentelemetry-instrumentation-bedrock (>=0.34.0) ; extra == "all" or extra == "bedrock"
50
- Requires-Dist: opentelemetry-instrumentation-chromadb (>=0.34.0) ; extra == "all" or extra == "chromadb"
51
- Requires-Dist: opentelemetry-instrumentation-cohere (>=0.34.0) ; extra == "all" or extra == "cohere"
52
- Requires-Dist: opentelemetry-instrumentation-google-generativeai (>=0.34.0) ; extra == "all" or extra == "google-generativeai"
53
- Requires-Dist: opentelemetry-instrumentation-groq (>=0.34.0) ; extra == "all" or extra == "groq"
54
- Requires-Dist: opentelemetry-instrumentation-haystack (>=0.34.0) ; extra == "all" or extra == "haystack"
55
- Requires-Dist: opentelemetry-instrumentation-lancedb (>=0.34.0) ; extra == "all" or extra == "lancedb"
56
- Requires-Dist: opentelemetry-instrumentation-langchain (>=0.34.0) ; extra == "all" or extra == "langchain"
57
- Requires-Dist: opentelemetry-instrumentation-llamaindex (>=0.34.0) ; extra == "all" or extra == "llamaindex"
58
- Requires-Dist: opentelemetry-instrumentation-marqo (>=0.34.0) ; extra == "all" or extra == "marqo"
59
- Requires-Dist: opentelemetry-instrumentation-milvus (>=0.34.0) ; extra == "all" or extra == "milvus"
60
- Requires-Dist: opentelemetry-instrumentation-mistralai (>=0.34.0) ; extra == "all" or extra == "mistralai"
61
- Requires-Dist: opentelemetry-instrumentation-ollama (>=0.34.0) ; extra == "all" or extra == "ollama"
62
- Requires-Dist: opentelemetry-instrumentation-openai (>=0.33.12) ; extra == "all" or extra == "openai"
63
- Requires-Dist: opentelemetry-instrumentation-pinecone (>=0.34.0) ; extra == "all" or extra == "pinecone"
64
- Requires-Dist: opentelemetry-instrumentation-qdrant (>=0.34.0) ; extra == "all" or extra == "qdrant"
65
- Requires-Dist: opentelemetry-instrumentation-replicate (>=0.34.0) ; extra == "all" or extra == "replicate"
48
+ Requires-Dist: opentelemetry-instrumentation-alephalpha (>=0.35.0) ; extra == "alephalpha"
49
+ Requires-Dist: opentelemetry-instrumentation-alephalpha ; extra == "all"
50
+ Requires-Dist: opentelemetry-instrumentation-anthropic (>=0.35.0) ; extra == "anthropic"
51
+ Requires-Dist: opentelemetry-instrumentation-anthropic ; extra == "all"
52
+ Requires-Dist: opentelemetry-instrumentation-bedrock (>=0.35.0) ; extra == "bedrock"
53
+ Requires-Dist: opentelemetry-instrumentation-bedrock ; extra == "all"
54
+ Requires-Dist: opentelemetry-instrumentation-chromadb (>=0.35.0) ; extra == "chromadb"
55
+ Requires-Dist: opentelemetry-instrumentation-chromadb ; extra == "all"
56
+ Requires-Dist: opentelemetry-instrumentation-cohere (>=0.35.0) ; extra == "cohere"
57
+ Requires-Dist: opentelemetry-instrumentation-cohere ; extra == "all"
58
+ Requires-Dist: opentelemetry-instrumentation-google-generativeai (>=0.35.0) ; extra == "google-generativeai"
59
+ Requires-Dist: opentelemetry-instrumentation-google-generativeai ; extra == "all"
60
+ Requires-Dist: opentelemetry-instrumentation-groq (>=0.35.0) ; extra == "groq"
61
+ Requires-Dist: opentelemetry-instrumentation-groq ; extra == "all"
62
+ Requires-Dist: opentelemetry-instrumentation-haystack (>=0.35.0) ; extra == "haystack"
63
+ Requires-Dist: opentelemetry-instrumentation-haystack ; extra == "all"
64
+ Requires-Dist: opentelemetry-instrumentation-lancedb (>=0.35.0) ; extra == "lancedb"
65
+ Requires-Dist: opentelemetry-instrumentation-lancedb ; extra == "all"
66
+ Requires-Dist: opentelemetry-instrumentation-langchain (>=0.35.0) ; extra == "langchain"
67
+ Requires-Dist: opentelemetry-instrumentation-langchain ; extra == "all"
68
+ Requires-Dist: opentelemetry-instrumentation-llamaindex (>=0.35.0) ; extra == "llamaindex"
69
+ Requires-Dist: opentelemetry-instrumentation-llamaindex ; extra == "all"
70
+ Requires-Dist: opentelemetry-instrumentation-marqo (>=0.35.0) ; extra == "marqo"
71
+ Requires-Dist: opentelemetry-instrumentation-marqo ; extra == "all"
72
+ Requires-Dist: opentelemetry-instrumentation-milvus (>=0.35.0) ; extra == "milvus"
73
+ Requires-Dist: opentelemetry-instrumentation-milvus ; extra == "all"
74
+ Requires-Dist: opentelemetry-instrumentation-mistralai (>=0.35.0) ; extra == "mistralai"
75
+ Requires-Dist: opentelemetry-instrumentation-mistralai ; extra == "all"
76
+ Requires-Dist: opentelemetry-instrumentation-ollama (>=0.35.0) ; extra == "ollama"
77
+ Requires-Dist: opentelemetry-instrumentation-ollama ; extra == "all"
78
+ Requires-Dist: opentelemetry-instrumentation-openai (>=0.35.0) ; extra == "openai"
79
+ Requires-Dist: opentelemetry-instrumentation-openai ; extra == "all"
80
+ Requires-Dist: opentelemetry-instrumentation-pinecone (>=0.35.0) ; extra == "pinecone"
81
+ Requires-Dist: opentelemetry-instrumentation-pinecone ; extra == "all"
82
+ Requires-Dist: opentelemetry-instrumentation-qdrant (>=0.35.0) ; extra == "qdrant"
83
+ Requires-Dist: opentelemetry-instrumentation-qdrant ; extra == "all"
84
+ Requires-Dist: opentelemetry-instrumentation-replicate (>=0.35.0) ; extra == "replicate"
85
+ Requires-Dist: opentelemetry-instrumentation-replicate ; extra == "all"
66
86
  Requires-Dist: opentelemetry-instrumentation-requests (>=0.50b0)
67
- Requires-Dist: opentelemetry-instrumentation-sagemaker (>=0.34.0) ; extra == "all" or extra == "sagemaker"
87
+ Requires-Dist: opentelemetry-instrumentation-sagemaker (>=0.35.0) ; extra == "sagemaker"
88
+ Requires-Dist: opentelemetry-instrumentation-sagemaker ; extra == "all"
68
89
  Requires-Dist: opentelemetry-instrumentation-sqlalchemy (>=0.50b0)
69
90
  Requires-Dist: opentelemetry-instrumentation-threading (>=0.50b0)
70
- Requires-Dist: opentelemetry-instrumentation-together (>=0.34.0) ; extra == "all" or extra == "together"
71
- Requires-Dist: opentelemetry-instrumentation-transformers (>=0.34.0) ; extra == "all" or extra == "transformers"
91
+ Requires-Dist: opentelemetry-instrumentation-together (>=0.35.0) ; extra == "together"
92
+ Requires-Dist: opentelemetry-instrumentation-together ; extra == "all"
93
+ Requires-Dist: opentelemetry-instrumentation-transformers (>=0.35.0) ; extra == "transformers"
94
+ Requires-Dist: opentelemetry-instrumentation-transformers ; extra == "all"
72
95
  Requires-Dist: opentelemetry-instrumentation-urllib3 (>=0.50b0)
73
- Requires-Dist: opentelemetry-instrumentation-vertexai (>=0.34.0) ; extra == "all" or extra == "vertexai"
74
- Requires-Dist: opentelemetry-instrumentation-watsonx (>=0.34.0) ; extra == "all" or extra == "watsonx"
75
- Requires-Dist: opentelemetry-instrumentation-weaviate (>=0.34.0) ; extra == "all" or extra == "weaviate"
96
+ Requires-Dist: opentelemetry-instrumentation-vertexai (>=0.35.0) ; extra == "vertexai"
97
+ Requires-Dist: opentelemetry-instrumentation-vertexai ; extra == "all"
98
+ Requires-Dist: opentelemetry-instrumentation-watsonx (>=0.35.0) ; extra == "watsonx"
99
+ Requires-Dist: opentelemetry-instrumentation-watsonx ; extra == "all"
100
+ Requires-Dist: opentelemetry-instrumentation-weaviate (>=0.35.0) ; extra == "weaviate"
101
+ Requires-Dist: opentelemetry-instrumentation-weaviate ; extra == "all"
76
102
  Requires-Dist: opentelemetry-sdk (>=1.28.0)
77
- Requires-Dist: opentelemetry-semantic-conventions-ai (==0.4.2)
103
+ Requires-Dist: opentelemetry-semantic-conventions-ai (>=0.4.2)
104
+ Requires-Dist: poetry-core (>=2.0.0)
78
105
  Requires-Dist: pydantic (>=2.7)
79
106
  Requires-Dist: python-dotenv (>=1.0)
80
107
  Requires-Dist: requests (>=2.0)
@@ -2,32 +2,32 @@ lmnr/__init__.py,sha256=Bqxs-8Mh4h69pOHURgBCgo9EW1GwChebxP6wUX2-bsU,452
2
2
  lmnr/cli.py,sha256=4J2RZQhHM3jJcjFvBC4PChQTS-ukxykVvI0X6lTkK-o,2918
3
3
  lmnr/openllmetry_sdk/.flake8,sha256=bCxuDlGx3YQ55QHKPiGJkncHanh9qGjQJUujcFa3lAU,150
4
4
  lmnr/openllmetry_sdk/.python-version,sha256=9OLQBQVbD4zE4cJsPePhnAfV_snrPSoqEQw-PXgPMOs,6
5
- lmnr/openllmetry_sdk/__init__.py,sha256=vVSGTAwUnJvdulHtslkGAd8QCBuv78WUK3bgfBpH6Do,2390
5
+ lmnr/openllmetry_sdk/__init__.py,sha256=zPxPkkC43MX8SOK0LbItBnzBQBCr_t1zy9QxhaBMLX8,2355
6
6
  lmnr/openllmetry_sdk/config/__init__.py,sha256=DliMGp2NjYAqRFLKpWQPUKjGMHRO8QsVfazBA1qENQ8,248
7
7
  lmnr/openllmetry_sdk/decorators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
- lmnr/openllmetry_sdk/decorators/base.py,sha256=rZC5BgLULll0fZFRZ_Oe1XN-BhctKCpTo4TDsKvSfL4,6121
8
+ lmnr/openllmetry_sdk/decorators/base.py,sha256=BhfTJHjGnKXZRyug41wnmvjbg2UDq2p7eLEak7RsCXI,5779
9
9
  lmnr/openllmetry_sdk/instruments.py,sha256=CGGUEELldrXkQwAzAkDeAtDq07_pjhz7i14a92P7C_E,1036
10
10
  lmnr/openllmetry_sdk/tracing/__init__.py,sha256=xT73L1t2si2CM6QmMiTZ7zn-dKKYBLNrpBBWq6WfVBw,68
11
11
  lmnr/openllmetry_sdk/tracing/attributes.py,sha256=B_4KVYWAUu-6DQmsm2eCJQcTxm8pG1EByCBK3uOPkuI,1293
12
12
  lmnr/openllmetry_sdk/tracing/content_allow_list.py,sha256=3feztm6PBWNelc8pAZUcQyEGyeSpNiVKjOaDk65l2ps,846
13
13
  lmnr/openllmetry_sdk/tracing/context_manager.py,sha256=rdSus-p-TaevQ8hIAhfbnZr5dTqRvACDkzXGDpflncY,306
14
- lmnr/openllmetry_sdk/tracing/tracing.py,sha256=X87Dw-WhtGP-THeiTRzZ1FBosRdY2FR1xEcE09PgkRI,32138
14
+ lmnr/openllmetry_sdk/tracing/tracing.py,sha256=5Ctw4-Nn1LMfE4ZTxxOv2sFXFlrBwPTywpOmEpgksXk,32355
15
15
  lmnr/openllmetry_sdk/utils/__init__.py,sha256=pNhf0G3vTd5ccoc03i1MXDbricSaiqCbi1DLWhSekK8,604
16
16
  lmnr/openllmetry_sdk/utils/in_memory_span_exporter.py,sha256=H_4TRaThMO1H6vUQ0OpQvzJk_fZH0OOsRAM1iZQXsR8,2112
17
17
  lmnr/openllmetry_sdk/utils/json_encoder.py,sha256=dK6b_axr70IYL7Vv-bu4wntvDDuyntoqsHaddqX7P58,463
18
18
  lmnr/openllmetry_sdk/utils/package_check.py,sha256=Da4WoTX6J9naODs99DnY9BA-2MxH2pWLmbbVkbQ7VUQ,236
19
19
  lmnr/openllmetry_sdk/version.py,sha256=OlatFEFA4ttqSSIiV8jdE-sq3KG5zu2hnC4B4mzWF3s,23
20
20
  lmnr/sdk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
- lmnr/sdk/datasets.py,sha256=KNMp_v3z1ocIltIw7kTgj8o-l9R8N8Tgj0sw1ajQ9C8,1582
21
+ lmnr/sdk/datasets.py,sha256=hJcQcwTJbtA4COoVG3god4xll9TBSDMfvrhKmMfanjg,1567
22
22
  lmnr/sdk/decorators.py,sha256=ja2EUWUWvFOp28ER0k78PRuxNahwCVyH0TdM3U-xY7U,1856
23
23
  lmnr/sdk/eval_control.py,sha256=G6Fg3Xx_KWv72iBaWlNMdyRTF2bZFQnwJ68sJNSpIcY,177
24
24
  lmnr/sdk/evaluations.py,sha256=lSXSvvYNB5JsSGli_wV-W34LVzJkQOiK8DnvHv4eU5A,16323
25
- lmnr/sdk/laminar.py,sha256=sUq04bSGfrNuSHOEMTbR01Me0ploX8SE5GIWKqUAVyY,31094
25
+ lmnr/sdk/laminar.py,sha256=2uoBmM0qn7RheP-avMjAqeLoGsYf4xju_FgIffJqYX8,30966
26
26
  lmnr/sdk/log.py,sha256=nt_YMmPw1IRbGy0b7q4rTtP4Yo3pQfNxqJPXK3nDSNQ,2213
27
27
  lmnr/sdk/types.py,sha256=FCNoFoa0ingOvpXGfbiETVsakYyq9Zpoc56MXJ1YDzQ,6390
28
28
  lmnr/sdk/utils.py,sha256=Uk8y15x-sd5tP2ERONahElLDJVEy_3dA_1_5g9A6auY,3358
29
- lmnr-0.4.50.dist-info/LICENSE,sha256=67b_wJHVV1CBaWkrKFWU1wyqTPSdzH77Ls-59631COg,10411
30
- lmnr-0.4.50.dist-info/METADATA,sha256=Qpu8olLKxcpmaPPf1aczP16sRM_4KyHwkueRLp56EKM,12196
31
- lmnr-0.4.50.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
32
- lmnr-0.4.50.dist-info/entry_points.txt,sha256=K1jE20ww4jzHNZLnsfWBvU3YKDGBgbOiYG5Y7ivQcq4,37
33
- lmnr-0.4.50.dist-info/RECORD,,
29
+ lmnr-0.4.51b0.dist-info/LICENSE,sha256=67b_wJHVV1CBaWkrKFWU1wyqTPSdzH77Ls-59631COg,10411
30
+ lmnr-0.4.51b0.dist-info/METADATA,sha256=dlNqYgUwhCDFpm28U2nf-vG_zVruYUMWG9dq72_UsMY,13591
31
+ lmnr-0.4.51b0.dist-info/WHEEL,sha256=RaoafKOydTQ7I_I3JTrPCg6kUmTgtm4BornzOqyEfJ8,88
32
+ lmnr-0.4.51b0.dist-info/entry_points.txt,sha256=K1jE20ww4jzHNZLnsfWBvU3YKDGBgbOiYG5Y7ivQcq4,37
33
+ lmnr-0.4.51b0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 1.9.1
2
+ Generator: poetry-core 2.0.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any