sentry-sdk 2.38.0__py2.py3-none-any.whl → 2.39.0__py2.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.

Potentially problematic release.


This version of sentry-sdk might be problematic. Click here for more details.

sentry_sdk/consts.py CHANGED
@@ -765,11 +765,12 @@ class SPANSTATUS:
765
765
  CANCELLED = "cancelled"
766
766
  DATA_LOSS = "data_loss"
767
767
  DEADLINE_EXCEEDED = "deadline_exceeded"
768
+ ERROR = "error" # OTel status code: https://opentelemetry.io/docs/concepts/signals/traces/#span-status
768
769
  FAILED_PRECONDITION = "failed_precondition"
769
770
  INTERNAL_ERROR = "internal_error"
770
771
  INVALID_ARGUMENT = "invalid_argument"
771
772
  NOT_FOUND = "not_found"
772
- OK = "ok"
773
+ OK = "ok" # HTTP 200 and OTel status code: https://opentelemetry.io/docs/concepts/signals/traces/#span-status
773
774
  OUT_OF_RANGE = "out_of_range"
774
775
  PERMISSION_DENIED = "permission_denied"
775
776
  RESOURCE_EXHAUSTED = "resource_exhausted"
@@ -777,6 +778,7 @@ class SPANSTATUS:
777
778
  UNAVAILABLE = "unavailable"
778
779
  UNIMPLEMENTED = "unimplemented"
779
780
  UNKNOWN_ERROR = "unknown_error"
781
+ UNSET = "unset" # OTel status code: https://opentelemetry.io/docs/concepts/signals/traces/#span-status
780
782
 
781
783
 
782
784
  class OP:
@@ -1331,4 +1333,4 @@ DEFAULT_OPTIONS = _get_default_options()
1331
1333
  del _get_default_options
1332
1334
 
1333
1335
 
1334
- VERSION = "2.38.0"
1336
+ VERSION = "2.39.0"
@@ -141,6 +141,7 @@ _MIN_VERSIONS = {
141
141
  "gql": (3, 4, 1),
142
142
  "graphene": (3, 3),
143
143
  "grpc": (1, 32, 0), # grpcio
144
+ "httpx": (0, 16, 0),
144
145
  "huggingface_hub": (0, 24, 7),
145
146
  "langchain": (0, 1, 0),
146
147
  "langgraph": (0, 6, 6),
@@ -4,9 +4,10 @@ from typing import TYPE_CHECKING
4
4
  import sentry_sdk
5
5
  from sentry_sdk.ai.monitoring import record_token_usage
6
6
  from sentry_sdk.ai.utils import set_data_normalized, get_start_span_function
7
- from sentry_sdk.consts import OP, SPANDATA
7
+ from sentry_sdk.consts import OP, SPANDATA, SPANSTATUS
8
8
  from sentry_sdk.integrations import _check_minimum_version, DidNotEnable, Integration
9
9
  from sentry_sdk.scope import should_send_default_pii
10
+ from sentry_sdk.tracing_utils import set_span_errored
10
11
  from sentry_sdk.utils import (
11
12
  capture_internal_exceptions,
12
13
  event_from_exception,
@@ -52,6 +53,8 @@ class AnthropicIntegration(Integration):
52
53
 
53
54
  def _capture_exception(exc):
54
55
  # type: (Any) -> None
56
+ set_span_errored()
57
+
55
58
  event, hint = event_from_exception(
56
59
  exc,
57
60
  client_options=sentry_sdk.get_client().options,
@@ -357,7 +360,13 @@ def _wrap_message_create(f):
357
360
  integration = sentry_sdk.get_client().get_integration(AnthropicIntegration)
358
361
  kwargs["integration"] = integration
359
362
 
360
- return _execute_sync(f, *args, **kwargs)
363
+ try:
364
+ return _execute_sync(f, *args, **kwargs)
365
+ finally:
366
+ span = sentry_sdk.get_current_span()
367
+ if span is not None and span.status == SPANSTATUS.ERROR:
368
+ with capture_internal_exceptions():
369
+ span.__exit__(None, None, None)
361
370
 
362
371
  return _sentry_patched_create_sync
363
372
 
@@ -390,6 +399,12 @@ def _wrap_message_create_async(f):
390
399
  integration = sentry_sdk.get_client().get_integration(AnthropicIntegration)
391
400
  kwargs["integration"] = integration
392
401
 
393
- return await _execute_async(f, *args, **kwargs)
402
+ try:
403
+ return await _execute_async(f, *args, **kwargs)
404
+ finally:
405
+ span = sentry_sdk.get_current_span()
406
+ if span is not None and span.status == SPANSTATUS.ERROR:
407
+ with capture_internal_exceptions():
408
+ span.__exit__(None, None, None)
394
409
 
395
410
  return _sentry_patched_create_async
@@ -7,6 +7,8 @@ from sentry_sdk.ai.utils import set_data_normalized
7
7
 
8
8
  from typing import TYPE_CHECKING
9
9
 
10
+ from sentry_sdk.tracing_utils import set_span_errored
11
+
10
12
  if TYPE_CHECKING:
11
13
  from typing import Any, Callable, Iterator
12
14
  from sentry_sdk.tracing import Span
@@ -84,6 +86,8 @@ class CohereIntegration(Integration):
84
86
 
85
87
  def _capture_exception(exc):
86
88
  # type: (Any) -> None
89
+ set_span_errored()
90
+
87
91
  event, hint = event_from_exception(
88
92
  exc,
89
93
  client_options=sentry_sdk.get_client().options,
@@ -1,3 +1,5 @@
1
+ import weakref
2
+
1
3
  import sentry_sdk
2
4
  from sentry_sdk.utils import ContextVar, logger
3
5
  from sentry_sdk.integrations import Integration
@@ -35,12 +37,24 @@ class DedupeIntegration(Integration):
35
37
  if exc_info is None:
36
38
  return event
37
39
 
40
+ last_seen = integration._last_seen.get(None)
41
+ if last_seen is not None:
42
+ # last_seen is either a weakref or the original instance
43
+ last_seen = (
44
+ last_seen() if isinstance(last_seen, weakref.ref) else last_seen
45
+ )
46
+
38
47
  exc = exc_info[1]
39
- if integration._last_seen.get(None) is exc:
48
+ if last_seen is exc:
40
49
  logger.info("DedupeIntegration dropped duplicated error event %s", exc)
41
50
  return None
42
51
 
43
- integration._last_seen.set(exc)
52
+ # we can only weakref non builtin types
53
+ try:
54
+ integration._last_seen.set(weakref.ref(exc))
55
+ except TypeError:
56
+ integration._last_seen.set(exc)
57
+
44
58
  return event
45
59
 
46
60
  @staticmethod
@@ -7,6 +7,7 @@ from sentry_sdk.ai.utils import set_data_normalized
7
7
  from sentry_sdk.consts import OP, SPANDATA
8
8
  from sentry_sdk.integrations import DidNotEnable, Integration
9
9
  from sentry_sdk.scope import should_send_default_pii
10
+ from sentry_sdk.tracing_utils import set_span_errored
10
11
  from sentry_sdk.utils import (
11
12
  capture_internal_exceptions,
12
13
  event_from_exception,
@@ -52,6 +53,8 @@ class HuggingfaceHubIntegration(Integration):
52
53
 
53
54
  def _capture_exception(exc):
54
55
  # type: (Any) -> None
56
+ set_span_errored()
57
+
55
58
  event, hint = event_from_exception(
56
59
  exc,
57
60
  client_options=sentry_sdk.get_client().options,
@@ -127,8 +130,6 @@ def _wrap_huggingface_task(f, op):
127
130
  try:
128
131
  res = f(*args, **kwargs)
129
132
  except Exception as e:
130
- # Error Handling
131
- span.set_status("error")
132
133
  _capture_exception(e)
133
134
  span.__exit__(None, None, None)
134
135
  raise e from None
@@ -8,8 +8,7 @@ from sentry_sdk.ai.utils import set_data_normalized, get_start_span_function
8
8
  from sentry_sdk.consts import OP, SPANDATA
9
9
  from sentry_sdk.integrations import DidNotEnable, Integration
10
10
  from sentry_sdk.scope import should_send_default_pii
11
- from sentry_sdk.tracing import Span
12
- from sentry_sdk.tracing_utils import _get_value
11
+ from sentry_sdk.tracing_utils import _get_value, set_span_errored
13
12
  from sentry_sdk.utils import logger, capture_internal_exceptions
14
13
 
15
14
  from typing import TYPE_CHECKING
@@ -26,6 +25,7 @@ if TYPE_CHECKING:
26
25
  Union,
27
26
  )
28
27
  from uuid import UUID
28
+ from sentry_sdk.tracing import Span
29
29
 
30
30
 
31
31
  try:
@@ -116,7 +116,7 @@ class SentryLangchainCallback(BaseCallbackHandler): # type: ignore[misc]
116
116
 
117
117
  span_data = self.span_map[run_id]
118
118
  span = span_data.span
119
- span.set_status("unknown")
119
+ set_span_errored(span)
120
120
 
121
121
  sentry_sdk.capture_exception(error, span.scope)
122
122
 
@@ -322,14 +322,15 @@ class SentryLangchainCallback(BaseCallbackHandler): # type: ignore[misc]
322
322
  pass
323
323
 
324
324
  try:
325
- tool_calls = getattr(generation.message, "tool_calls", None)
326
- if tool_calls is not None and tool_calls != []:
327
- set_data_normalized(
328
- span,
329
- SPANDATA.GEN_AI_RESPONSE_TOOL_CALLS,
330
- tool_calls,
331
- unpack=False,
332
- )
325
+ if should_send_default_pii() and self.include_prompts:
326
+ tool_calls = getattr(generation.message, "tool_calls", None)
327
+ if tool_calls is not None and tool_calls != []:
328
+ set_data_normalized(
329
+ span,
330
+ SPANDATA.GEN_AI_RESPONSE_TOOL_CALLS,
331
+ tool_calls,
332
+ unpack=False,
333
+ )
333
334
  except AttributeError:
334
335
  pass
335
336
 
@@ -7,6 +7,7 @@ from sentry_sdk.ai.utils import set_data_normalized
7
7
  from sentry_sdk.consts import SPANDATA
8
8
  from sentry_sdk.integrations import DidNotEnable, Integration
9
9
  from sentry_sdk.scope import should_send_default_pii
10
+ from sentry_sdk.tracing_utils import set_span_errored
10
11
  from sentry_sdk.utils import (
11
12
  capture_internal_exceptions,
12
13
  event_from_exception,
@@ -83,6 +84,8 @@ def _capture_exception(exc, manual_span_cleanup=True):
83
84
  # Close an eventually open span
84
85
  # We need to do this by hand because we are not using the start_span context manager
85
86
  current_span = sentry_sdk.get_current_span()
87
+ set_span_errored(current_span)
88
+
86
89
  if manual_span_cleanup and current_span is not None:
87
90
  current_span.__exit__(None, None, None)
88
91
 
@@ -279,9 +282,9 @@ def _set_output_data(span, response, kwargs, integration, finish_span=True):
279
282
 
280
283
  def new_iterator():
281
284
  # type: () -> Iterator[ChatCompletionChunk]
282
- with capture_internal_exceptions():
283
- count_tokens_manually = True
284
- for x in old_iterator:
285
+ count_tokens_manually = True
286
+ for x in old_iterator:
287
+ with capture_internal_exceptions():
285
288
  # OpenAI chat completion API
286
289
  if hasattr(x, "choices"):
287
290
  choice_index = 0
@@ -312,8 +315,9 @@ def _set_output_data(span, response, kwargs, integration, finish_span=True):
312
315
  )
313
316
  count_tokens_manually = False
314
317
 
315
- yield x
318
+ yield x
316
319
 
320
+ with capture_internal_exceptions():
317
321
  if len(data_buf) > 0:
318
322
  all_responses = ["".join(chunk) for chunk in data_buf]
319
323
  if should_send_default_pii() and integration.include_prompts:
@@ -334,9 +338,9 @@ def _set_output_data(span, response, kwargs, integration, finish_span=True):
334
338
 
335
339
  async def new_iterator_async():
336
340
  # type: () -> AsyncIterator[ChatCompletionChunk]
337
- with capture_internal_exceptions():
338
- count_tokens_manually = True
339
- async for x in old_iterator:
341
+ count_tokens_manually = True
342
+ async for x in old_iterator:
343
+ with capture_internal_exceptions():
340
344
  # OpenAI chat completion API
341
345
  if hasattr(x, "choices"):
342
346
  choice_index = 0
@@ -367,8 +371,9 @@ def _set_output_data(span, response, kwargs, integration, finish_span=True):
367
371
  )
368
372
  count_tokens_manually = False
369
373
 
370
- yield x
374
+ yield x
371
375
 
376
+ with capture_internal_exceptions():
372
377
  if len(data_buf) > 0:
373
378
  all_responses = ["".join(chunk) for chunk in data_buf]
374
379
  if should_send_default_pii() and integration.include_prompts:
@@ -42,7 +42,7 @@ def update_execute_tool_span(span, agent, tool, result):
42
42
  if isinstance(result, str) and result.startswith(
43
43
  "An error occurred while running the tool"
44
44
  ):
45
- span.set_status(SPANSTATUS.INTERNAL_ERROR)
45
+ span.set_status(SPANSTATUS.ERROR)
46
46
 
47
47
  if should_send_default_pii():
48
48
  span.set_data(SPANDATA.GEN_AI_TOOL_OUTPUT, result)
@@ -3,6 +3,7 @@ from sentry_sdk.ai.utils import set_data_normalized
3
3
  from sentry_sdk.consts import SPANDATA
4
4
  from sentry_sdk.integrations import DidNotEnable
5
5
  from sentry_sdk.scope import should_send_default_pii
6
+ from sentry_sdk.tracing_utils import set_span_errored
6
7
  from sentry_sdk.utils import event_from_exception, safe_serialize
7
8
 
8
9
  from typing import TYPE_CHECKING
@@ -20,6 +21,8 @@ except ImportError:
20
21
 
21
22
  def _capture_exception(exc):
22
23
  # type: (Any) -> None
24
+ set_span_errored()
25
+
23
26
  event, hint = event_from_exception(
24
27
  exc,
25
28
  client_options=sentry_sdk.get_client().options,
sentry_sdk/serializer.py CHANGED
@@ -187,6 +187,16 @@ def serialize(event, **kwargs):
187
187
 
188
188
  return False
189
189
 
190
+ def _is_span_attribute():
191
+ # type: () -> Optional[bool]
192
+ try:
193
+ if path[0] == "spans" and path[2] == "data":
194
+ return True
195
+ except IndexError:
196
+ return None
197
+
198
+ return False
199
+
190
200
  def _is_request_body():
191
201
  # type: () -> Optional[bool]
192
202
  try:
@@ -282,7 +292,8 @@ def serialize(event, **kwargs):
282
292
  )
283
293
  return None
284
294
 
285
- if is_databag and global_repr_processors:
295
+ is_span_attribute = _is_span_attribute()
296
+ if (is_databag or is_span_attribute) and global_repr_processors:
286
297
  hints = {"memo": memo, "remaining_depth": remaining_depth}
287
298
  for processor in global_repr_processors:
288
299
  result = processor(obj, hints)
sentry_sdk/tracing.py CHANGED
@@ -416,7 +416,8 @@ class Span:
416
416
  def __exit__(self, ty, value, tb):
417
417
  # type: (Optional[Any], Optional[Any], Optional[Any]) -> None
418
418
  if value is not None and should_be_treated_as_error(ty, value):
419
- self.set_status(SPANSTATUS.INTERNAL_ERROR)
419
+ if self.status != SPANSTATUS.ERROR:
420
+ self.set_status(SPANSTATUS.INTERNAL_ERROR)
420
421
 
421
422
  with capture_internal_exceptions():
422
423
  scope, old_span = self._context_manager_state
@@ -11,7 +11,7 @@ from urllib.parse import quote, unquote
11
11
  import uuid
12
12
 
13
13
  import sentry_sdk
14
- from sentry_sdk.consts import OP, SPANDATA, SPANTEMPLATE
14
+ from sentry_sdk.consts import OP, SPANDATA, SPANSTATUS, SPANTEMPLATE
15
15
  from sentry_sdk.utils import (
16
16
  capture_internal_exceptions,
17
17
  filename_for_module,
@@ -892,6 +892,19 @@ def get_current_span(scope=None):
892
892
  return current_span
893
893
 
894
894
 
895
+ def set_span_errored(span=None):
896
+ # type: (Optional[Span]) -> None
897
+ """
898
+ Set the status of the current or given span to ERROR.
899
+ Also sets the status of the transaction (root span) to ERROR.
900
+ """
901
+ span = span or get_current_span()
902
+ if span is not None:
903
+ span.set_status(SPANSTATUS.ERROR)
904
+ if span.containing_transaction is not None:
905
+ span.containing_transaction.set_status(SPANSTATUS.ERROR)
906
+
907
+
895
908
  def _generate_sample_rand(
896
909
  trace_id, # type: Optional[str]
897
910
  *,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sentry-sdk
3
- Version: 2.38.0
3
+ Version: 2.39.0
4
4
  Summary: Python client for Sentry (https://sentry.io)
5
5
  Home-page: https://github.com/getsentry/sentry-python
6
6
  Author: Sentry Team and Contributors
@@ -9,7 +9,7 @@ sentry_sdk/_werkzeug.py,sha256=m3GPf-jHd8v3eVOfBHaKw5f0uHoLkXrSO1EcY-8EisY,3734
9
9
  sentry_sdk/api.py,sha256=OkwQ2tA5YASJ77wLOteUdv_woPF4wL_JTOAMxe9z8k4,15282
10
10
  sentry_sdk/attachments.py,sha256=0Dylhm065O6hNFjB40fWCd5Hg4qWSXndmi1TPWglZkI,3109
11
11
  sentry_sdk/client.py,sha256=oQcolwFdLvuX4huUaCcpgABy3M5Yb4IhzymlzyrqfkE,38860
12
- sentry_sdk/consts.py,sha256=z-QZyKPzeM4-ZYB4wOmNZ_3CnS7QcTjXZ49nuMAr9H4,49865
12
+ sentry_sdk/consts.py,sha256=o2sL8csVj4m-XkGOqeXN0C-ZZJcY2yS1qP-EBXfQsN8,50182
13
13
  sentry_sdk/debug.py,sha256=ddBehQlAuQC1sg1XO-N4N3diZ0x0iT5RWJwFdrtcsjw,1019
14
14
  sentry_sdk/envelope.py,sha256=nCUvqVWIVWV-RoVvMgrTNUDfo7h_Z5jU8g90T30wdXE,10360
15
15
  sentry_sdk/feature_flags.py,sha256=99JRig6TBkrkBzVCKqYcmVgjsuA_Hk-ul7jFHGhJplc,2233
@@ -20,12 +20,12 @@ sentry_sdk/monitor.py,sha256=52CG1m2e8okFDVoTpbqfm9zeeaLa0ciC_r9x2RiXuDg,3639
20
20
  sentry_sdk/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
21
  sentry_sdk/scope.py,sha256=opbEbR_qWzSj4OCp8vr9Sn-7H11Qe7z4vKY0pjIgA88,63907
22
22
  sentry_sdk/scrubber.py,sha256=rENmQ35buugDl269bRZuIAtgr27B9SzisJYUF-691pc,6064
23
- sentry_sdk/serializer.py,sha256=xUw3xjSsGF0cWRHL9ofe0nmWEtZvzPOHSQ6IHvo6UAc,13239
23
+ sentry_sdk/serializer.py,sha256=_d7bPzE0EsCsffDCsN9jnhrwfdvu3h5vG-vM6205A5Q,13550
24
24
  sentry_sdk/session.py,sha256=TqDVmRKKHUDSmZb4jQR-s8wDt7Fwb6QaG21hawUGWEs,5571
25
25
  sentry_sdk/sessions.py,sha256=UZ2jfrqhYvZzTxCDGc1MLD6P_aHLJnTFetSUROIaPaA,9154
26
26
  sentry_sdk/spotlight.py,sha256=93kdd8KxdLfcPaxFnFuqHgYAAL4FCfpK1hiiPoD7Ac4,8678
27
- sentry_sdk/tracing.py,sha256=ecnuM0Y8ueX110M4iXfOV8ay4nWiHuvCiNQMPrNzaBM,51530
28
- sentry_sdk/tracing_utils.py,sha256=EM2e3UHkOUNoWhs0gaFjaJZDAyHKCw2KB0fOwWlZF0w,38862
27
+ sentry_sdk/tracing.py,sha256=QMg5KuP6SI21YS9ufBTpv1LvLCxlFE2YBfF4mHhvVNI,51582
28
+ sentry_sdk/tracing_utils.py,sha256=yeor53ehPe2OWGuIMnk-0v_Q1VvWeNCwJMzETp0qwFo,39312
29
29
  sentry_sdk/transport.py,sha256=A0uux7XnniDJuExLudLyyFDYnS5C6r7zozGbkveUM7E,32469
30
30
  sentry_sdk/types.py,sha256=NLbnRzww2K3_oGz2GzcC8TdX5L2DXYso1-H1uCv2Hwc,1222
31
31
  sentry_sdk/utils.py,sha256=KubsR-No80YTJ1FYwNQxavYU4hOQyBixevnPsXxNCBc,61705
@@ -37,11 +37,11 @@ sentry_sdk/crons/__init__.py,sha256=3Zt6g1-pZZ12uRKKsC8QLm3XgJ4K1VYxgVpNNUygOZY,
37
37
  sentry_sdk/crons/api.py,sha256=mk-UB8Im2LU2rJFdE-TV302EaKnf8kAjwEL0bIV0Hzc,1767
38
38
  sentry_sdk/crons/consts.py,sha256=dXqJk5meBSu5rjlGpqAOlkpACnuUi7svQnAFoy1ZNUU,87
39
39
  sentry_sdk/crons/decorator.py,sha256=UrjeIqBCbvsuKrfjGkKJbbLBvjw2TQvDWcTO7WwAmrI,3913
40
- sentry_sdk/integrations/__init__.py,sha256=tWC8ujNg8r8Sc4bk8L5NMeAJQgbPYtvWdnbWwBlVVbQ,10342
40
+ sentry_sdk/integrations/__init__.py,sha256=8u7jM0K-emYrV8ukmybQiPzMrD030aSPSGO5A22gSQc,10367
41
41
  sentry_sdk/integrations/_asgi_common.py,sha256=Ypg7IctB3iPPY60ebVlzChzgT8GeGpZ0YH8VvJNDlEY,3187
42
42
  sentry_sdk/integrations/_wsgi_common.py,sha256=A1-X7l1pZCcrbUhRHkmdKiK_EemEZjn7xToJIvlEuFM,7558
43
43
  sentry_sdk/integrations/aiohttp.py,sha256=_rfDKx1arvVQwcC20vh7HG80p8XtgzqKB3iBuPYZy8A,12895
44
- sentry_sdk/integrations/anthropic.py,sha256=7MqIgZLOD3fOw14F9BxHFr9VpLpy44QtZgaPyYVKFi4,13169
44
+ sentry_sdk/integrations/anthropic.py,sha256=7nMkdkhNlo9gepMShnlidUn0lfn5vcIOpvO2Zwe8dK0,13771
45
45
  sentry_sdk/integrations/argv.py,sha256=GIY7TBFETF8Z0fDzqTXEJldt5XXCDdFNZxpGxP7EPaU,911
46
46
  sentry_sdk/integrations/ariadne.py,sha256=C-zKlOrU7jvTWmQHZx0M0tAZNkPPo7Z5-5jXDD92LiU,5834
47
47
  sentry_sdk/integrations/arq.py,sha256=yDPdWJa3ZgnGLwFzavIylIafEVN0qqSSgL4kUHxQF70,7881
@@ -56,8 +56,8 @@ sentry_sdk/integrations/bottle.py,sha256=aC5OsitlsRUEWBlpkNjxvH0m6UEG3OfAJ9jFyPC
56
56
  sentry_sdk/integrations/chalice.py,sha256=A4K_9FmNUu131El0ctkTmjtyYd184I4hQTlidZcEC54,4699
57
57
  sentry_sdk/integrations/clickhouse_driver.py,sha256=2qpRznwSNuRSzrCA1R5bmpgiehDmzbG7yZe6hN-61Wg,6098
58
58
  sentry_sdk/integrations/cloud_resource_context.py,sha256=_gFldMeVHs5pxP5sm8uP7ZKmm6s_5hw3UsnXek9Iw8A,7780
59
- sentry_sdk/integrations/cohere.py,sha256=iuDI1IVPE39rbsc3e9_qJS2bCjNg7F53apueCdhzr8Q,9322
60
- sentry_sdk/integrations/dedupe.py,sha256=nZF_Ml-5axq_Nh3AZT80Z0bNNgPbxvYn79eVeBKrIGA,1515
59
+ sentry_sdk/integrations/cohere.py,sha256=VI5mLukp_CQDt-OFVNgtVqpbY-j-d5UOfD7iPBKu0FU,9401
60
+ sentry_sdk/integrations/dedupe.py,sha256=FMdGQOlL86r4AjiSf4MfzyfEIjkI5b_v3Ko2gOZKkBE,1975
61
61
  sentry_sdk/integrations/dramatiq.py,sha256=I09vKWnfiuhdRFCjYYjmE9LOBQvDTPS-KFqf3iHFSsM,5583
62
62
  sentry_sdk/integrations/excepthook.py,sha256=tfwpSQuo1b_OmJbNKPPRh90EUjD_OSE4DqqgYY9PVQI,2408
63
63
  sentry_sdk/integrations/executing.py,sha256=5lxBAxO5FypY-zTV03AHncGmolmaHd327-3Vrjzskcc,1994
@@ -70,15 +70,15 @@ sentry_sdk/integrations/gql.py,sha256=lN5LJNZwUHs_1BQcIrR0adIkgb9YiOh6UtoUG8vCO_
70
70
  sentry_sdk/integrations/graphene.py,sha256=I6ZJ8Apd9dO9XPVvZY7I46-v1eXOW1C1rAkWwasF3gU,5042
71
71
  sentry_sdk/integrations/httpx.py,sha256=WwUulqzBLoGGqWUUdQg_MThwQUKzBXnA-m3g_1GOpCE,5866
72
72
  sentry_sdk/integrations/huey.py,sha256=wlyxjeWqqJp1X5S3neD5FiZjXcyznm1dl8_u1wIo76U,5443
73
- sentry_sdk/integrations/huggingface_hub.py,sha256=33Z2Z0SEEQMcpoAY0y8EFfQdMaB1DacSVJ22utdHHKU,14940
74
- sentry_sdk/integrations/langchain.py,sha256=vO7alD-_3gLuqW3LW2gQUYgatjB9CrsI-7IpJmOy8Tc,29393
73
+ sentry_sdk/integrations/huggingface_hub.py,sha256=B5z0--bC2tEDtWl5V7xAqM4234yhY_RYbnkZGgqC8PA,14952
74
+ sentry_sdk/integrations/langchain.py,sha256=mlbcshMs28wv10naLQv-4o1k-ERLgUjRlQsiiH8_DZM,29518
75
75
  sentry_sdk/integrations/langgraph.py,sha256=YyDDc14gFCNVuqVmKwX8GRQ17T17WOx2SqqD4IHROPs,11015
76
76
  sentry_sdk/integrations/launchdarkly.py,sha256=bvtExuj68xPXZFsQeWTDR-ZBqP087tPuVzP1bNAOZHc,1935
77
77
  sentry_sdk/integrations/litestar.py,sha256=jao0f8v5JQagkBg15dUJTdWGPxpS3LmOV301-lwGkGc,11815
78
78
  sentry_sdk/integrations/logging.py,sha256=4JC2ehLqd5Tz_rad8YVb9KhZnPcDzLxLh-AjopyNVEc,13905
79
79
  sentry_sdk/integrations/loguru.py,sha256=fgivPdQn3rmsMeInUd2wbNlbXPAH9MKhjaqytRVKnsI,6215
80
80
  sentry_sdk/integrations/modules.py,sha256=vzLx3Erg77Vl4mnUvAgTg_3teAuWy7zylFpAidBI9I0,820
81
- sentry_sdk/integrations/openai.py,sha256=MtvS7FM41etRn5kPqb37qSflo876L8mcV2skEFwBFlI,23890
81
+ sentry_sdk/integrations/openai.py,sha256=o41gBELZRVdaPXPrM3FQ7cOn6zIzvdu5hzMIf_nK5_I,24060
82
82
  sentry_sdk/integrations/openfeature.py,sha256=-vvdrN4fK0Xhu2ip41bkPIPEqdzv8xzmLu9wRlI2xPA,1131
83
83
  sentry_sdk/integrations/pure_eval.py,sha256=OvT76XvllQ_J6ABu3jVNU6KD2QAxnXMtTZ7hqhXNhpY,4581
84
84
  sentry_sdk/integrations/pymongo.py,sha256=cPpMGEbXHlV6HTHgmIDL1F-x3w7ZMROXVb4eUhLs3bw,6380
@@ -124,7 +124,7 @@ sentry_sdk/integrations/grpc/aio/client.py,sha256=csOwlJb7fg9fBnzeNHxr-qpZEmU97I
124
124
  sentry_sdk/integrations/grpc/aio/server.py,sha256=SCkdikPZRdWyrlnZewsSGpPk4v6AsdSApVAbO-lf_Lk,4019
125
125
  sentry_sdk/integrations/openai_agents/__init__.py,sha256=-ydqG0sFIrvJlT9JHO58EZpCAzyy9J59Av8dxn0fHuw,1424
126
126
  sentry_sdk/integrations/openai_agents/consts.py,sha256=PTb3vlqkuMPktu21ALK72o5WMIX4-cewTEiTRdHKFdQ,38
127
- sentry_sdk/integrations/openai_agents/utils.py,sha256=mb8pGXZ0t_-mgbIJMh6HfVoGKp6kGqIMB7U5URQtSQA,5208
127
+ sentry_sdk/integrations/openai_agents/utils.py,sha256=NWcko9EphtvirpW_PhZV_l81299QNTouiRZxOKu15rE,5286
128
128
  sentry_sdk/integrations/openai_agents/patches/__init__.py,sha256=I7C9JZ70Mf8PV3wPdFsxTqvcYl4TYUgSZYfNU2Spb7Y,231
129
129
  sentry_sdk/integrations/openai_agents/patches/agent_run.py,sha256=GPBV-j8YnHOrJAhdhu_tphe14z7G0-riFVmjFNDgy0s,5773
130
130
  sentry_sdk/integrations/openai_agents/patches/models.py,sha256=DtwqCmSsYFlhRZquKM2jiTOnnAg97eyCTtJYZkWqdww,1405
@@ -133,7 +133,7 @@ sentry_sdk/integrations/openai_agents/patches/tools.py,sha256=uAx1GgsiDJBP7jpYW8
133
133
  sentry_sdk/integrations/openai_agents/spans/__init__.py,sha256=RlVi781zGsvCJBciDO_EbBbwkakwbP9DoFQBbo4VAEE,353
134
134
  sentry_sdk/integrations/openai_agents/spans/agent_workflow.py,sha256=fdRSThD31TcoMXFg-2vmqK2YcSws8Yhd0oC6fxOnysM,469
135
135
  sentry_sdk/integrations/openai_agents/spans/ai_client.py,sha256=0HG5pT8a06Zgc5JUmRx8p_6bPoQFQLjDrMY_QSQd0_E,1206
136
- sentry_sdk/integrations/openai_agents/spans/execute_tool.py,sha256=w3QWWS4wbpteFTz4JjMCXdDpR6JVKcUVREQ-lvJOQTY,1420
136
+ sentry_sdk/integrations/openai_agents/spans/execute_tool.py,sha256=tqtDIzaxhxJUE-XEvm2dSyJV65UXJ7Mr23C6NTt6ZJE,1411
137
137
  sentry_sdk/integrations/openai_agents/spans/handoff.py,sha256=MBhzy7MpvPGwQTPT5TFcOnmSPiSH_uadQ5wvksueIik,525
138
138
  sentry_sdk/integrations/openai_agents/spans/invoke_agent.py,sha256=yyg-wyVZaYMYbaORva_BotNxB9oyK5Dsn8KfQ3Y7OZI,2323
139
139
  sentry_sdk/integrations/opentelemetry/__init__.py,sha256=emNL5aAq_NhK0PZmfX_g4GIdvBS6nHqGrjrIgrdC5m8,229
@@ -160,9 +160,9 @@ sentry_sdk/profiler/__init__.py,sha256=3PI3bHk9RSkkOXZKN84DDedk_7M65EiqqaIGo-DYs
160
160
  sentry_sdk/profiler/continuous_profiler.py,sha256=7Qb75TaKLNYxMA97wO-qEpDVqxPQWOLUi2rnUm6_Ci0,23066
161
161
  sentry_sdk/profiler/transaction_profiler.py,sha256=e3MsUqs-YIp6-nmzpmBYGoWWIF7RyuSGu24Dj-8GXAU,27970
162
162
  sentry_sdk/profiler/utils.py,sha256=G5s4tYai9ATJqcHrQ3bOIxlK6jIaHzELrDtU5k3N4HI,6556
163
- sentry_sdk-2.38.0.dist-info/licenses/LICENSE,sha256=KhQNZg9GKBL6KQvHQNBGMxJsXsRdhLebVp4Sew7t3Qs,1093
164
- sentry_sdk-2.38.0.dist-info/METADATA,sha256=cxysc3uOmG-4teAeFmBvG40-oF7DfJDO01sPlHYG8aI,10358
165
- sentry_sdk-2.38.0.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
166
- sentry_sdk-2.38.0.dist-info/entry_points.txt,sha256=qacZEz40UspQZD1IukCXykx0JtImqGDOctS5KfOLTko,91
167
- sentry_sdk-2.38.0.dist-info/top_level.txt,sha256=XrQz30XE9FKXSY_yGLrd9bsv2Rk390GTDJOSujYaMxI,11
168
- sentry_sdk-2.38.0.dist-info/RECORD,,
163
+ sentry_sdk-2.39.0.dist-info/licenses/LICENSE,sha256=KhQNZg9GKBL6KQvHQNBGMxJsXsRdhLebVp4Sew7t3Qs,1093
164
+ sentry_sdk-2.39.0.dist-info/METADATA,sha256=taZTJIDINnsHLuPc4upXBJPLMLnD3bdXscPqoNE_F8o,10358
165
+ sentry_sdk-2.39.0.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
166
+ sentry_sdk-2.39.0.dist-info/entry_points.txt,sha256=qacZEz40UspQZD1IukCXykx0JtImqGDOctS5KfOLTko,91
167
+ sentry_sdk-2.39.0.dist-info/top_level.txt,sha256=XrQz30XE9FKXSY_yGLrd9bsv2Rk390GTDJOSujYaMxI,11
168
+ sentry_sdk-2.39.0.dist-info/RECORD,,