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 +4 -2
- sentry_sdk/integrations/__init__.py +1 -0
- sentry_sdk/integrations/anthropic.py +18 -3
- sentry_sdk/integrations/cohere.py +4 -0
- sentry_sdk/integrations/dedupe.py +16 -2
- sentry_sdk/integrations/huggingface_hub.py +3 -2
- sentry_sdk/integrations/langchain.py +12 -11
- sentry_sdk/integrations/openai.py +13 -8
- sentry_sdk/integrations/openai_agents/spans/execute_tool.py +1 -1
- sentry_sdk/integrations/openai_agents/utils.py +3 -0
- sentry_sdk/serializer.py +12 -1
- sentry_sdk/tracing.py +2 -1
- sentry_sdk/tracing_utils.py +14 -1
- {sentry_sdk-2.38.0.dist-info → sentry_sdk-2.39.0.dist-info}/METADATA +1 -1
- {sentry_sdk-2.38.0.dist-info → sentry_sdk-2.39.0.dist-info}/RECORD +19 -19
- {sentry_sdk-2.38.0.dist-info → sentry_sdk-2.39.0.dist-info}/WHEEL +0 -0
- {sentry_sdk-2.38.0.dist-info → sentry_sdk-2.39.0.dist-info}/entry_points.txt +0 -0
- {sentry_sdk-2.38.0.dist-info → sentry_sdk-2.39.0.dist-info}/licenses/LICENSE +0 -0
- {sentry_sdk-2.38.0.dist-info → sentry_sdk-2.39.0.dist-info}/top_level.txt +0 -0
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.
|
|
1336
|
+
VERSION = "2.39.0"
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
|
48
|
+
if last_seen is exc:
|
|
40
49
|
logger.info("DedupeIntegration dropped duplicated error event %s", exc)
|
|
41
50
|
return None
|
|
42
51
|
|
|
43
|
-
|
|
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.
|
|
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
|
|
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
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
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
|
-
|
|
283
|
-
|
|
284
|
-
|
|
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
|
-
|
|
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
|
-
|
|
338
|
-
|
|
339
|
-
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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
|
sentry_sdk/tracing_utils.py
CHANGED
|
@@ -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
|
*,
|
|
@@ -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=
|
|
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=
|
|
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=
|
|
28
|
-
sentry_sdk/tracing_utils.py,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
60
|
-
sentry_sdk/integrations/dedupe.py,sha256=
|
|
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=
|
|
74
|
-
sentry_sdk/integrations/langchain.py,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
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.
|
|
164
|
-
sentry_sdk-2.
|
|
165
|
-
sentry_sdk-2.
|
|
166
|
-
sentry_sdk-2.
|
|
167
|
-
sentry_sdk-2.
|
|
168
|
-
sentry_sdk-2.
|
|
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,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|