lmnr 0.7.14__tar.gz → 0.7.15__tar.gz
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.
Potentially problematic release.
This version of lmnr might be problematic. Click here for more details.
- {lmnr-0.7.14 → lmnr-0.7.15}/PKG-INFO +1 -1
- {lmnr-0.7.14 → lmnr-0.7.15}/pyproject.toml +1 -1
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/decorators/__init__.py +25 -6
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/version.py +1 -1
- {lmnr-0.7.14 → lmnr-0.7.15}/README.md +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/__init__.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/cli.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/.flake8 +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/__init__.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/litellm/__init__.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/litellm/utils.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/__init__.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/config.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/event_emitter.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/event_models.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/span_utils.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/streaming.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/utils.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/anthropic/version.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/cua_agent/__init__.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/cua_computer/__init__.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/cua_computer/utils.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/google_genai/__init__.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/google_genai/config.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/google_genai/schema_utils.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/google_genai/utils.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/__init__.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/config.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/event_emitter.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/event_models.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/span_utils.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/utils.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/version.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/langgraph/__init__.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/langgraph/utils.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/__init__.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/__init__.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/chat_wrappers.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/completion_wrappers.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/config.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/embeddings_wrappers.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/event_emitter.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/event_models.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/shared/image_gen_wrappers.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/utils.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v0/__init__.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v1/__init__.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v1/assistant_wrappers.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v1/event_handler_wrapper.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/v1/responses_wrappers.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/version.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/openhands_ai/__init__.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/opentelemetry/__init__.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/skyvern/__init__.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/threading/__init__.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/tracing/__init__.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/tracing/_instrument_initializers.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/tracing/attributes.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/tracing/context.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/tracing/exporter.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/tracing/instruments.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/tracing/processor.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/tracing/tracer.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/utils/__init__.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/utils/json_encoder.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/utils/package_check.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/utils/wrappers.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/py.typed +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/sdk/__init__.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/sdk/browser/__init__.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/sdk/browser/browser_use_cdp_otel.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/sdk/browser/browser_use_otel.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/sdk/browser/bubus_otel.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/sdk/browser/cdp_utils.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/sdk/browser/patchright_otel.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/sdk/browser/playwright_otel.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/sdk/browser/pw_utils.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/sdk/browser/recorder/record.umd.min.cjs +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/sdk/browser/utils.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/sdk/client/asynchronous/async_client.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/sdk/client/asynchronous/resources/__init__.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/sdk/client/asynchronous/resources/agent.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/sdk/client/asynchronous/resources/base.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/sdk/client/asynchronous/resources/browser_events.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/sdk/client/asynchronous/resources/evals.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/sdk/client/asynchronous/resources/evaluators.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/sdk/client/asynchronous/resources/tags.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/sdk/client/synchronous/resources/__init__.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/sdk/client/synchronous/resources/agent.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/sdk/client/synchronous/resources/base.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/sdk/client/synchronous/resources/browser_events.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/sdk/client/synchronous/resources/evals.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/sdk/client/synchronous/resources/evaluators.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/sdk/client/synchronous/resources/tags.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/sdk/client/synchronous/sync_client.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/sdk/datasets.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/sdk/decorators.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/sdk/eval_control.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/sdk/evaluations.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/sdk/laminar.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/sdk/log.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/sdk/types.py +0 -0
- {lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/sdk/utils.py +0 -0
|
@@ -225,7 +225,7 @@ def observe_base(
|
|
|
225
225
|
detach_context(isolated_ctx_token)
|
|
226
226
|
# span will be ended in the generator
|
|
227
227
|
if isinstance(res, types.GeneratorType):
|
|
228
|
-
return _handle_generator(span,
|
|
228
|
+
return _handle_generator(span, wrapper, res)
|
|
229
229
|
if isinstance(res, types.AsyncGeneratorType):
|
|
230
230
|
# async def foo() -> AsyncGenerator[int, None]:
|
|
231
231
|
# is not considered async in a classical sense in Python,
|
|
@@ -234,7 +234,7 @@ def observe_base(
|
|
|
234
234
|
# Flags are listed from LSB here:
|
|
235
235
|
# https://docs.python.org/3/library/inspect.html#inspect-module-co-flags
|
|
236
236
|
# See also: https://groups.google.com/g/python-tulip/c/6rWweGXLutU?pli=1
|
|
237
|
-
return _ahandle_generator(span,
|
|
237
|
+
return _ahandle_generator(span, wrapper, res)
|
|
238
238
|
|
|
239
239
|
_process_output(span, res, ignore_output, output_formatter)
|
|
240
240
|
_cleanup_span(span, wrapper)
|
|
@@ -306,7 +306,7 @@ def async_observe_base(
|
|
|
306
306
|
if isinstance(res, types.AsyncGeneratorType):
|
|
307
307
|
# probably unreachable, read the comment in the similar
|
|
308
308
|
# part of the sync wrapper.
|
|
309
|
-
return await _ahandle_generator(span,
|
|
309
|
+
return await _ahandle_generator(span, wrapper, res)
|
|
310
310
|
|
|
311
311
|
_process_output(span, res, ignore_output, output_formatter)
|
|
312
312
|
_cleanup_span(span, wrapper)
|
|
@@ -317,18 +317,37 @@ def async_observe_base(
|
|
|
317
317
|
return decorate
|
|
318
318
|
|
|
319
319
|
|
|
320
|
-
def _handle_generator(
|
|
320
|
+
def _handle_generator(
|
|
321
|
+
span: Span,
|
|
322
|
+
wrapper: TracerWrapper,
|
|
323
|
+
res: Generator,
|
|
324
|
+
ignore_output: bool = False,
|
|
325
|
+
output_formatter: Callable[..., str] | None = None,
|
|
326
|
+
):
|
|
327
|
+
results = []
|
|
321
328
|
try:
|
|
322
|
-
|
|
329
|
+
for part in res:
|
|
330
|
+
results.append(part)
|
|
331
|
+
yield part
|
|
323
332
|
finally:
|
|
333
|
+
_process_output(span, results, ignore_output, output_formatter)
|
|
324
334
|
_cleanup_span(span, wrapper)
|
|
325
335
|
|
|
326
336
|
|
|
327
|
-
async def _ahandle_generator(
|
|
337
|
+
async def _ahandle_generator(
|
|
338
|
+
span: Span,
|
|
339
|
+
wrapper: TracerWrapper,
|
|
340
|
+
res: AsyncGenerator,
|
|
341
|
+
ignore_output: bool = False,
|
|
342
|
+
output_formatter: Callable[..., str] | None = None,
|
|
343
|
+
):
|
|
344
|
+
results = []
|
|
328
345
|
try:
|
|
329
346
|
async for part in res:
|
|
347
|
+
results.append(part)
|
|
330
348
|
yield part
|
|
331
349
|
finally:
|
|
350
|
+
_process_output(span, results, ignore_output, output_formatter)
|
|
332
351
|
_cleanup_span(span, wrapper)
|
|
333
352
|
|
|
334
353
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/config.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/utils.py
RENAMED
|
File without changes
|
{lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/groq/version.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lmnr-0.7.14 → lmnr-0.7.15}/src/lmnr/opentelemetry_lib/opentelemetry/instrumentation/openai/utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|