telemetry-dev-openrouter 0.2.3__tar.gz → 0.2.5__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: telemetry-dev-openrouter
3
- Version: 0.2.3
3
+ Version: 0.2.5
4
4
  Summary: OpenRouter integration for telemetry.dev Python SDK
5
5
  Keywords: telemetry,opentelemetry,openrouter,llm,genai,tracing
6
6
  Author: telemetry.dev
@@ -57,7 +57,7 @@ from telemetry_dev_openrouter import wrap_open_router
57
57
  client = wrap_open_router(OpenRouter(api_key="sk-or-v1-..."))
58
58
 
59
59
  client.chat.send(
60
- model="openai/gpt-4o-mini",
60
+ model="openai/gpt-6-luna",
61
61
  messages=[{"role": "user", "content": "Tell me a joke about OpenTelemetry"}],
62
62
  )
63
63
  ```
@@ -75,7 +75,7 @@ instrument_openrouter()
75
75
  client = OpenRouter(api_key="sk-or-v1-...")
76
76
 
77
77
  try:
78
- client.responses.send(model="openai/gpt-4o-mini", input="Explain OpenTelemetry briefly")
78
+ client.responses.send(model="openai/gpt-6-luna", input="Explain OpenTelemetry briefly")
79
79
  finally:
80
80
  uninstrument_openrouter()
81
81
  ```
@@ -34,7 +34,7 @@ from telemetry_dev_openrouter import wrap_open_router
34
34
  client = wrap_open_router(OpenRouter(api_key="sk-or-v1-..."))
35
35
 
36
36
  client.chat.send(
37
- model="openai/gpt-4o-mini",
37
+ model="openai/gpt-6-luna",
38
38
  messages=[{"role": "user", "content": "Tell me a joke about OpenTelemetry"}],
39
39
  )
40
40
  ```
@@ -52,7 +52,7 @@ instrument_openrouter()
52
52
  client = OpenRouter(api_key="sk-or-v1-...")
53
53
 
54
54
  try:
55
- client.responses.send(model="openai/gpt-4o-mini", input="Explain OpenTelemetry briefly")
55
+ client.responses.send(model="openai/gpt-6-luna", input="Explain OpenTelemetry briefly")
56
56
  finally:
57
57
  uninstrument_openrouter()
58
58
  ```
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "telemetry-dev-openrouter"
3
- version = "0.2.3"
3
+ version = "0.2.5"
4
4
  description = "OpenRouter integration for telemetry.dev Python SDK"
5
5
  readme = "README.md"
6
6
  license = "MIT"
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "telemetry-dev-openrouter"
3
- version = "0.2.3"
3
+ version = "0.2.5"
4
4
  description = "OpenRouter integration for telemetry.dev Python SDK"
5
5
  readme = "README.md"
6
6
  license = "MIT"
@@ -15,7 +15,7 @@ from openrouter.chat import Chat
15
15
  from openrouter.embeddings import Embeddings
16
16
  from openrouter.responses import Responses
17
17
 
18
- __version__ = "0.2.3"
18
+ __version__ = "0.2.5"
19
19
 
20
20
  RequestMapper = Callable[[Mapping[str, Any]], tuple[str, dict[str, Any]]]
21
21
  ResponseMapper = Callable[[Any], dict[str, Any]]
@@ -30,7 +30,6 @@ _FINISH_REASON_MAX_LENGTH = 128
30
30
  _TERMINAL_RESPONSE_EVENTS = frozenset(
31
31
  {"response.completed", "response.failed", "response.incomplete"}
32
32
  )
33
- _OMIT = object()
34
33
  _ORIGINALS: list[tuple[type[Any], str, Any]] = []
35
34
  _installed = False
36
35
  _install_lock = threading.Lock()
@@ -711,15 +710,6 @@ def _ending_stream(end: Callable[..., None], release: Callable[[], None]) -> Cal
711
710
  return end_stream
712
711
 
713
712
 
714
- def _capture_masked(handle: telemetry_dev.SpanHandle) -> bool:
715
- compatible = cast(Any, handle)
716
- masked = getattr(compatible, "capture_masked", None)
717
- if isinstance(masked, bool):
718
- return masked
719
- client = getattr(compatible, "_client", None)
720
- return getattr(client, "mask", _OMIT) is not None if client is not None else True
721
-
722
-
723
713
  def _mark_capture_incomplete(fields: dict[str, Any], mask_output: bool) -> dict[str, Any]:
724
714
  fields["attributes"] = {**(fields.get("attributes") or {}), _CAPTURE_TRUNCATED_ATTRIBUTE: True}
725
715
  if mask_output:
@@ -842,7 +832,7 @@ class _InstrumentedStream:
842
832
  self._consume: Iterator[Any] | None = None
843
833
  self._in_next = False
844
834
  self._completed = False
845
- self._mask_output_when_incomplete = _capture_masked(handle)
835
+ self._mask_output_when_incomplete = handle.capture_masked
846
836
  self._budget = _stream_capture_budget()
847
837
  # Bound to the budget, not self, so the callback adds no reference cycle.
848
838
  self._end_stream = _ending_stream(_end_once(handle), partial(_release_budget, self._budget))
@@ -928,9 +918,7 @@ class _InstrumentedStream:
928
918
  return True
929
919
  update = _record_chat_chunk(chunk, self._states, self._budget)
930
920
  if _chat_chunk_has_output(chunk):
931
- record_output_chunk = getattr(self._handle, "record_output_chunk", None)
932
- if callable(record_output_chunk):
933
- record_output_chunk(received_at * 1000)
921
+ self._handle.record_output_chunk(received_at * 1000)
934
922
  if not self._saw_first:
935
923
  self._saw_first = True
936
924
  self._handle.update(
@@ -957,7 +945,7 @@ class _InstrumentedAsyncStream:
957
945
  self._consume: AsyncIterator[Any] | None = None
958
946
  self._in_next = False
959
947
  self._completed = False
960
- self._mask_output_when_incomplete = _capture_masked(handle)
948
+ self._mask_output_when_incomplete = handle.capture_masked
961
949
  self._budget = _stream_capture_budget()
962
950
  # Bound to the budget, not self, so the callback adds no reference cycle.
963
951
  self._end_stream = _ending_stream(_end_once(handle), partial(_release_budget, self._budget))
@@ -1046,9 +1034,7 @@ class _InstrumentedAsyncStream:
1046
1034
  return True
1047
1035
  update = _record_chat_chunk(chunk, self._states, self._budget)
1048
1036
  if _chat_chunk_has_output(chunk):
1049
- record_output_chunk = getattr(self._handle, "record_output_chunk", None)
1050
- if callable(record_output_chunk):
1051
- record_output_chunk(received_at * 1000)
1037
+ self._handle.record_output_chunk(received_at * 1000)
1052
1038
  if not self._saw_first:
1053
1039
  self._saw_first = True
1054
1040
  self._handle.update(
@@ -1584,7 +1570,7 @@ class _InstrumentedResponsesStream:
1584
1570
  # Bound to the state, not self, so the callback adds no reference cycle.
1585
1571
  self._end_stream = _ending_stream(_end_once(handle), self._state.release)
1586
1572
  self._ended = False
1587
- self._mask_output_when_incomplete = _capture_masked(handle)
1573
+ self._mask_output_when_incomplete = handle.capture_masked
1588
1574
  self._consume: Iterator[Any] | None = None
1589
1575
  self._in_next = False
1590
1576
  _hook_response_close(inner, self._on_response_close)
@@ -1661,9 +1647,7 @@ class _InstrumentedResponsesStream:
1661
1647
  if self._ended:
1662
1648
  return
1663
1649
  if _response_event_has_output(event):
1664
- record_output_chunk = getattr(self._handle, "record_output_chunk", None)
1665
- if callable(record_output_chunk):
1666
- record_output_chunk(received_at * 1000)
1650
+ self._handle.record_output_chunk(received_at * 1000)
1667
1651
  if not self._saw_first:
1668
1652
  self._saw_first = True
1669
1653
  self._handle.update(
@@ -1692,7 +1676,7 @@ class _InstrumentedAsyncResponsesStream:
1692
1676
  # Bound to the state, not self, so the callback adds no reference cycle.
1693
1677
  self._end_stream = _ending_stream(_end_once(handle), self._state.release)
1694
1678
  self._ended = False
1695
- self._mask_output_when_incomplete = _capture_masked(handle)
1679
+ self._mask_output_when_incomplete = handle.capture_masked
1696
1680
  self._consume: AsyncIterator[Any] | None = None
1697
1681
  self._in_next = False
1698
1682
  _hook_response_close(inner, self._on_response_close)
@@ -1772,9 +1756,7 @@ class _InstrumentedAsyncResponsesStream:
1772
1756
  if self._ended:
1773
1757
  return
1774
1758
  if _response_event_has_output(event):
1775
- record_output_chunk = getattr(self._handle, "record_output_chunk", None)
1776
- if callable(record_output_chunk):
1777
- record_output_chunk(received_at * 1000)
1759
+ self._handle.record_output_chunk(received_at * 1000)
1778
1760
  if not self._saw_first:
1779
1761
  self._saw_first = True
1780
1762
  self._handle.update(