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

Files changed (38) hide show
  1. sentry_sdk/client.py +6 -6
  2. sentry_sdk/consts.py +12 -2
  3. sentry_sdk/envelope.py +28 -14
  4. sentry_sdk/feature_flags.py +0 -1
  5. sentry_sdk/hub.py +17 -9
  6. sentry_sdk/integrations/__init__.py +1 -0
  7. sentry_sdk/integrations/asgi.py +3 -2
  8. sentry_sdk/integrations/dramatiq.py +89 -31
  9. sentry_sdk/integrations/grpc/aio/client.py +2 -1
  10. sentry_sdk/integrations/grpc/client.py +3 -4
  11. sentry_sdk/integrations/langchain.py +0 -1
  12. sentry_sdk/integrations/launchdarkly.py +0 -1
  13. sentry_sdk/integrations/litellm.py +251 -0
  14. sentry_sdk/integrations/litestar.py +4 -4
  15. sentry_sdk/integrations/openai_agents/spans/ai_client.py +4 -1
  16. sentry_sdk/integrations/openai_agents/utils.py +25 -1
  17. sentry_sdk/integrations/pure_eval.py +3 -1
  18. sentry_sdk/integrations/spark/spark_driver.py +2 -1
  19. sentry_sdk/integrations/sqlalchemy.py +2 -6
  20. sentry_sdk/integrations/starlette.py +1 -3
  21. sentry_sdk/integrations/starlite.py +4 -4
  22. sentry_sdk/integrations/wsgi.py +3 -2
  23. sentry_sdk/metrics.py +17 -11
  24. sentry_sdk/profiler/utils.py +2 -6
  25. sentry_sdk/scope.py +6 -3
  26. sentry_sdk/serializer.py +1 -3
  27. sentry_sdk/session.py +4 -2
  28. sentry_sdk/sessions.py +4 -2
  29. sentry_sdk/tracing.py +36 -7
  30. sentry_sdk/tracing_utils.py +1 -3
  31. sentry_sdk/transport.py +8 -9
  32. sentry_sdk/utils.py +5 -3
  33. {sentry_sdk-2.39.0.dist-info → sentry_sdk-2.40.0.dist-info}/METADATA +3 -1
  34. {sentry_sdk-2.39.0.dist-info → sentry_sdk-2.40.0.dist-info}/RECORD +38 -37
  35. {sentry_sdk-2.39.0.dist-info → sentry_sdk-2.40.0.dist-info}/WHEEL +0 -0
  36. {sentry_sdk-2.39.0.dist-info → sentry_sdk-2.40.0.dist-info}/entry_points.txt +0 -0
  37. {sentry_sdk-2.39.0.dist-info → sentry_sdk-2.40.0.dist-info}/licenses/LICENSE +0 -0
  38. {sentry_sdk-2.39.0.dist-info → sentry_sdk-2.40.0.dist-info}/top_level.txt +0 -0
sentry_sdk/tracing.py CHANGED
@@ -30,6 +30,7 @@ if TYPE_CHECKING:
30
30
  from typing import Tuple
31
31
  from typing import Union
32
32
  from typing import TypeVar
33
+ from typing import Set
33
34
 
34
35
  from typing_extensions import TypedDict, Unpack
35
36
 
@@ -970,6 +971,12 @@ class Transaction(Span):
970
971
 
971
972
  return scope_or_hub
972
973
 
974
+ def _get_log_representation(self):
975
+ # type: () -> str
976
+ return "{op}transaction <{name}>".format(
977
+ op=("<" + self.op + "> " if self.op else ""), name=self.name
978
+ )
979
+
973
980
  def finish(
974
981
  self,
975
982
  scope=None, # type: Optional[sentry_sdk.Scope]
@@ -998,9 +1005,7 @@ class Transaction(Span):
998
1005
 
999
1006
  # For backwards compatibility, we must handle the case where `scope`
1000
1007
  # or `hub` could both either be a `Scope` or a `Hub`.
1001
- scope = self._get_scope_from_finish_args(
1002
- scope, hub
1003
- ) # type: Optional[sentry_sdk.Scope]
1008
+ scope = self._get_scope_from_finish_args(scope, hub) # type: Optional[sentry_sdk.Scope]
1004
1009
 
1005
1010
  scope = scope or self.scope or sentry_sdk.get_current_scope()
1006
1011
  client = sentry_sdk.get_client()
@@ -1041,6 +1046,32 @@ class Transaction(Span):
1041
1046
 
1042
1047
  super().finish(scope, end_timestamp)
1043
1048
 
1049
+ status_code = self._data.get(SPANDATA.HTTP_STATUS_CODE)
1050
+ if (
1051
+ status_code is not None
1052
+ and status_code in client.options["trace_ignore_status_codes"]
1053
+ ):
1054
+ logger.debug(
1055
+ "[Tracing] Discarding {transaction_description} because the HTTP status code {status_code} is matched by trace_ignore_status_codes: {trace_ignore_status_codes}".format(
1056
+ transaction_description=self._get_log_representation(),
1057
+ status_code=self._data[SPANDATA.HTTP_STATUS_CODE],
1058
+ trace_ignore_status_codes=client.options[
1059
+ "trace_ignore_status_codes"
1060
+ ],
1061
+ )
1062
+ )
1063
+ if client.transport:
1064
+ client.transport.record_lost_event(
1065
+ "event_processor", data_category="transaction"
1066
+ )
1067
+
1068
+ num_spans = len(self._span_recorder.spans) + 1
1069
+ client.transport.record_lost_event(
1070
+ "event_processor", data_category="span", quantity=num_spans
1071
+ )
1072
+
1073
+ self.sampled = False
1074
+
1044
1075
  if not self.sampled:
1045
1076
  # At this point a `sampled = None` should have already been resolved
1046
1077
  # to a concrete decision.
@@ -1188,9 +1219,7 @@ class Transaction(Span):
1188
1219
  """
1189
1220
  client = sentry_sdk.get_client()
1190
1221
 
1191
- transaction_description = "{op}transaction <{name}>".format(
1192
- op=("<" + self.op + "> " if self.op else ""), name=self.name
1193
- )
1222
+ transaction_description = self._get_log_representation()
1194
1223
 
1195
1224
  # nothing to do if tracing is disabled
1196
1225
  if not has_tracing_enabled(client.options):
@@ -1209,8 +1238,8 @@ class Transaction(Span):
1209
1238
  sample_rate = (
1210
1239
  client.options["traces_sampler"](sampling_context)
1211
1240
  if callable(client.options.get("traces_sampler"))
1241
+ # default inheritance behavior
1212
1242
  else (
1213
- # default inheritance behavior
1214
1243
  sampling_context["parent_sampled"]
1215
1244
  if sampling_context["parent_sampled"] is not None
1216
1245
  else client.options["traces_sample_rate"]
@@ -527,9 +527,7 @@ class PropagationContext:
527
527
  )
528
528
  return
529
529
 
530
- self.dynamic_sampling_context["sample_rand"] = (
531
- f"{sample_rand:.6f}" # noqa: E231
532
- )
530
+ self.dynamic_sampling_context["sample_rand"] = f"{sample_rand:.6f}" # noqa: E231
533
531
 
534
532
  def _sample_rand(self):
535
533
  # type: () -> Optional[str]
sentry_sdk/transport.py CHANGED
@@ -203,9 +203,7 @@ class BaseHttpTransport(Transport):
203
203
  self._disabled_until = {} # type: Dict[Optional[EventDataCategory], datetime]
204
204
  # We only use this Retry() class for the `get_retry_after` method it exposes
205
205
  self._retry = urllib3.util.Retry()
206
- self._discarded_events = defaultdict(
207
- int
208
- ) # type: DefaultDict[Tuple[EventDataCategory, str], int]
206
+ self._discarded_events = defaultdict(int) # type: DefaultDict[Tuple[EventDataCategory, str], int]
209
207
  self._last_client_report_sent = time.time()
210
208
 
211
209
  self._pool = self._make_pool()
@@ -549,7 +547,8 @@ class BaseHttpTransport(Transport):
549
547
  raise NotImplementedError()
550
548
 
551
549
  def capture_envelope(
552
- self, envelope # type: Envelope
550
+ self,
551
+ envelope, # type: Envelope
553
552
  ):
554
553
  # type: (...) -> None
555
554
  def send_envelope_wrapper():
@@ -862,14 +861,16 @@ class _FunctionTransport(Transport):
862
861
  """
863
862
 
864
863
  def __init__(
865
- self, func # type: Callable[[Event], None]
864
+ self,
865
+ func, # type: Callable[[Event], None]
866
866
  ):
867
867
  # type: (...) -> None
868
868
  Transport.__init__(self)
869
869
  self._func = func
870
870
 
871
871
  def capture_event(
872
- self, event # type: Event
872
+ self,
873
+ event, # type: Event
873
874
  ):
874
875
  # type: (...) -> None
875
876
  self._func(event)
@@ -891,9 +892,7 @@ def make_transport(options):
891
892
  use_http2_transport = options.get("_experiments", {}).get("transport_http2", False)
892
893
 
893
894
  # By default, we use the http transport class
894
- transport_cls = (
895
- Http2Transport if use_http2_transport else HttpTransport
896
- ) # type: Type[Transport]
895
+ transport_cls = Http2Transport if use_http2_transport else HttpTransport # type: Type[Transport]
897
896
 
898
897
  if isinstance(ref_transport, Transport):
899
898
  return ref_transport
sentry_sdk/utils.py CHANGED
@@ -389,7 +389,8 @@ class Auth:
389
389
  self.client = client
390
390
 
391
391
  def get_api_url(
392
- self, type=EndpointType.ENVELOPE # type: EndpointType
392
+ self,
393
+ type=EndpointType.ENVELOPE, # type: EndpointType
393
394
  ):
394
395
  # type: (...) -> str
395
396
  """Returns the API url for storing events."""
@@ -850,7 +851,9 @@ def exceptions_from_error(
850
851
  parent_id = exception_id
851
852
  exception_id += 1
852
853
 
853
- should_supress_context = hasattr(exc_value, "__suppress_context__") and exc_value.__suppress_context__ # type: ignore
854
+ should_supress_context = (
855
+ hasattr(exc_value, "__suppress_context__") and exc_value.__suppress_context__ # type: ignore
856
+ )
854
857
  if should_supress_context:
855
858
  # Add direct cause.
856
859
  # The field `__cause__` is set when raised with the exception (using the `from` keyword).
@@ -1845,7 +1848,6 @@ try:
1845
1848
  from gevent import get_hub as get_gevent_hub
1846
1849
  from gevent.monkey import is_module_patched
1847
1850
  except ImportError:
1848
-
1849
1851
  # it's not great that the signatures are different, get_hub can't return None
1850
1852
  # consider adding an if TYPE_CHECKING to change the signature to Optional[Hub]
1851
1853
  def get_gevent_hub(): # type: ignore[misc]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sentry-sdk
3
- Version: 2.39.0
3
+ Version: 2.40.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
@@ -76,6 +76,8 @@ Provides-Extra: langgraph
76
76
  Requires-Dist: langgraph>=0.6.6; extra == "langgraph"
77
77
  Provides-Extra: launchdarkly
78
78
  Requires-Dist: launchdarkly-server-sdk>=9.8.0; extra == "launchdarkly"
79
+ Provides-Extra: litellm
80
+ Requires-Dist: litellm>=1.77.5; extra == "litellm"
79
81
  Provides-Extra: litestar
80
82
  Requires-Dist: litestar>=2.0.0; extra == "litestar"
81
83
  Provides-Extra: loguru
@@ -8,27 +8,27 @@ sentry_sdk/_types.py,sha256=Gw9Pn0mIHZP23B8C2iM1g07NzxnAkpgRAGR5MrKA2Es,10487
8
8
  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
- sentry_sdk/client.py,sha256=oQcolwFdLvuX4huUaCcpgABy3M5Yb4IhzymlzyrqfkE,38860
12
- sentry_sdk/consts.py,sha256=o2sL8csVj4m-XkGOqeXN0C-ZZJcY2yS1qP-EBXfQsN8,50182
11
+ sentry_sdk/client.py,sha256=FMcG9m8stHlUaZuQrsyWVz5FWYaa0WhkYB6lbMSNNIA,38854
12
+ sentry_sdk/consts.py,sha256=EwIR-aX5afHvEFCuJTqewc0heN61uoTjXX8VUavS5B8,50688
13
13
  sentry_sdk/debug.py,sha256=ddBehQlAuQC1sg1XO-N4N3diZ0x0iT5RWJwFdrtcsjw,1019
14
- sentry_sdk/envelope.py,sha256=nCUvqVWIVWV-RoVvMgrTNUDfo7h_Z5jU8g90T30wdXE,10360
15
- sentry_sdk/feature_flags.py,sha256=99JRig6TBkrkBzVCKqYcmVgjsuA_Hk-ul7jFHGhJplc,2233
16
- sentry_sdk/hub.py,sha256=2QLvEtIYSYV04r8h7VBmQjookILaiBZxZBGTtQKNAWg,25675
14
+ sentry_sdk/envelope.py,sha256=JRJlnz9lQj-0_f21dh-lWF_NMbEKp7E7jr4kOwSA7fA,10486
15
+ sentry_sdk/feature_flags.py,sha256=savtmWAHjAvgw2m_KWW8mUagjLhAXCm3jjscmBlfIJ4,2232
16
+ sentry_sdk/hub.py,sha256=jg7UqYiJFJ1dknVCNT4_E5lIBfrCFQdWwnJrhgScVNg,25748
17
17
  sentry_sdk/logger.py,sha256=HnmkMmOf1hwvxIcPW2qOvIOSnFZ9yRNDBae_eriGsoY,2471
18
- sentry_sdk/metrics.py,sha256=3IvBwbHlU-C-JdwDysTeJqOoVyYXsHZ7oEkkU0qTZb4,29913
18
+ sentry_sdk/metrics.py,sha256=HBlrCca7XWgxYwxgPBWkBQOXtUqOFQxW4hNdtAFl1uc,29961
19
19
  sentry_sdk/monitor.py,sha256=52CG1m2e8okFDVoTpbqfm9zeeaLa0ciC_r9x2RiXuDg,3639
20
20
  sentry_sdk/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
- sentry_sdk/scope.py,sha256=opbEbR_qWzSj4OCp8vr9Sn-7H11Qe7z4vKY0pjIgA88,63907
21
+ sentry_sdk/scope.py,sha256=gTdGB0eUvjS1TMKvRHckB5AJnBGFGpwps8uPh--KI8k,63934
22
22
  sentry_sdk/scrubber.py,sha256=rENmQ35buugDl269bRZuIAtgr27B9SzisJYUF-691pc,6064
23
- sentry_sdk/serializer.py,sha256=_d7bPzE0EsCsffDCsN9jnhrwfdvu3h5vG-vM6205A5Q,13550
24
- sentry_sdk/session.py,sha256=TqDVmRKKHUDSmZb4jQR-s8wDt7Fwb6QaG21hawUGWEs,5571
25
- sentry_sdk/sessions.py,sha256=UZ2jfrqhYvZzTxCDGc1MLD6P_aHLJnTFetSUROIaPaA,9154
23
+ sentry_sdk/serializer.py,sha256=0-WdtKYwmGEM7nVxmOeRAXjC0DVdIHCymQpRuIHDBX0,13534
24
+ sentry_sdk/session.py,sha256=BXWHf5Opg9yx7jKe-_iHxF6LDJw9Jnu7NfHxo3UQRpw,5589
25
+ sentry_sdk/sessions.py,sha256=e7Jv8McW3QZp3H1GuI_CA_ezq_G0ZWY6nK0ZLqJRdNI,9172
26
26
  sentry_sdk/spotlight.py,sha256=93kdd8KxdLfcPaxFnFuqHgYAAL4FCfpK1hiiPoD7Ac4,8678
27
- sentry_sdk/tracing.py,sha256=QMg5KuP6SI21YS9ufBTpv1LvLCxlFE2YBfF4mHhvVNI,51582
28
- sentry_sdk/tracing_utils.py,sha256=yeor53ehPe2OWGuIMnk-0v_Q1VvWeNCwJMzETp0qwFo,39312
29
- sentry_sdk/transport.py,sha256=A0uux7XnniDJuExLudLyyFDYnS5C6r7zozGbkveUM7E,32469
27
+ sentry_sdk/tracing.py,sha256=1KFwMzq6II0pCRbX6rwgJprmcbuO-PoGlPRVOSKZFP4,52840
28
+ sentry_sdk/tracing_utils.py,sha256=XXdU_YH0Shuk2pkeUGZrZgi_CTQFuf42Plgu4qQq978,39288
29
+ sentry_sdk/transport.py,sha256=Oj-QJ-ZaBjpMb2TlXgmhssIu-UhFpU564Qj1XDvc6Ns,32458
30
30
  sentry_sdk/types.py,sha256=NLbnRzww2K3_oGz2GzcC8TdX5L2DXYso1-H1uCv2Hwc,1222
31
- sentry_sdk/utils.py,sha256=KubsR-No80YTJ1FYwNQxavYU4hOQyBixevnPsXxNCBc,61705
31
+ sentry_sdk/utils.py,sha256=Xi56iOOeGjT82SIMjBkNpxT7U3rndL9BIZfqFLD-m4I,61729
32
32
  sentry_sdk/worker.py,sha256=VSMaigRMbInVyupSFpBC42bft2oIViea-0C_d9ThnIo,4464
33
33
  sentry_sdk/ai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
34
  sentry_sdk/ai/monitoring.py,sha256=bS_KneWCAL9ehml5XiyficoPVx4DUUG6acbH3cjP3I8,5057
@@ -37,7 +37,7 @@ 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=8u7jM0K-emYrV8ukmybQiPzMrD030aSPSGO5A22gSQc,10367
40
+ sentry_sdk/integrations/__init__.py,sha256=qtU1pBq6CEeAKPikc9cfARULouHYkl8jbXJpmZi-JUg,10394
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
@@ -45,7 +45,7 @@ sentry_sdk/integrations/anthropic.py,sha256=7nMkdkhNlo9gepMShnlidUn0lfn5vcIOpvO2
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
48
- sentry_sdk/integrations/asgi.py,sha256=zjoOOA5bHlTptRsP3ZU4X5UsluyHFqebsUt3lRfiGtE,12738
48
+ sentry_sdk/integrations/asgi.py,sha256=b3zE8Om_yP7SDxcD8MMCdDthYhLLgOB3LC3ZZCf94hw,12800
49
49
  sentry_sdk/integrations/asyncio.py,sha256=DEoXAwk8oVl_1Sbmm2TthpruaLO7p4WZBTh9K-mch_g,4136
50
50
  sentry_sdk/integrations/asyncpg.py,sha256=fbBTi5bEERK3c9o43LBLtS5wPaSVq_qIl3Y50NPmr5Y,6521
51
51
  sentry_sdk/integrations/atexit.py,sha256=sY46N2hEvtGuT1DBQhirUXHbjgXjXAm7R_sgiectVKw,1652
@@ -58,7 +58,7 @@ sentry_sdk/integrations/clickhouse_driver.py,sha256=2qpRznwSNuRSzrCA1R5bmpgiehDm
58
58
  sentry_sdk/integrations/cloud_resource_context.py,sha256=_gFldMeVHs5pxP5sm8uP7ZKmm6s_5hw3UsnXek9Iw8A,7780
59
59
  sentry_sdk/integrations/cohere.py,sha256=VI5mLukp_CQDt-OFVNgtVqpbY-j-d5UOfD7iPBKu0FU,9401
60
60
  sentry_sdk/integrations/dedupe.py,sha256=FMdGQOlL86r4AjiSf4MfzyfEIjkI5b_v3Ko2gOZKkBE,1975
61
- sentry_sdk/integrations/dramatiq.py,sha256=I09vKWnfiuhdRFCjYYjmE9LOBQvDTPS-KFqf3iHFSsM,5583
61
+ sentry_sdk/integrations/dramatiq.py,sha256=P0j732DU4pkUQi_CRtY4DxvhcalXN8jQVX6gdHl6yPw,7455
62
62
  sentry_sdk/integrations/excepthook.py,sha256=tfwpSQuo1b_OmJbNKPPRh90EUjD_OSE4DqqgYY9PVQI,2408
63
63
  sentry_sdk/integrations/executing.py,sha256=5lxBAxO5FypY-zTV03AHncGmolmaHd327-3Vrjzskcc,1994
64
64
  sentry_sdk/integrations/falcon.py,sha256=uhjqFPKa8bWRQr0za4pVXGYaPr-LRdICw2rUO-laKCo,9501
@@ -71,16 +71,17 @@ sentry_sdk/integrations/graphene.py,sha256=I6ZJ8Apd9dO9XPVvZY7I46-v1eXOW1C1rAkWw
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
73
  sentry_sdk/integrations/huggingface_hub.py,sha256=B5z0--bC2tEDtWl5V7xAqM4234yhY_RYbnkZGgqC8PA,14952
74
- sentry_sdk/integrations/langchain.py,sha256=mlbcshMs28wv10naLQv-4o1k-ERLgUjRlQsiiH8_DZM,29518
74
+ sentry_sdk/integrations/langchain.py,sha256=m9KvJeFMBMaqVB6Sswg0VUFK0xc8OEUgKacOZdkBjNo,29517
75
75
  sentry_sdk/integrations/langgraph.py,sha256=YyDDc14gFCNVuqVmKwX8GRQ17T17WOx2SqqD4IHROPs,11015
76
- sentry_sdk/integrations/launchdarkly.py,sha256=bvtExuj68xPXZFsQeWTDR-ZBqP087tPuVzP1bNAOZHc,1935
77
- sentry_sdk/integrations/litestar.py,sha256=jao0f8v5JQagkBg15dUJTdWGPxpS3LmOV301-lwGkGc,11815
76
+ sentry_sdk/integrations/launchdarkly.py,sha256=L5yE9NBRon8JPYzO6XT-dA4YkvNcrUfK4nD5fycSXM0,1934
77
+ sentry_sdk/integrations/litellm.py,sha256=WCwjsIZBxJ2Rk2yAWJBUxyNehgO6B37a_X2JJcvM4OY,8858
78
+ sentry_sdk/integrations/litestar.py,sha256=0BkfynHkxERshbxycwHDnpjzGx31c5ipYvBYqprAoHY,11830
78
79
  sentry_sdk/integrations/logging.py,sha256=4JC2ehLqd5Tz_rad8YVb9KhZnPcDzLxLh-AjopyNVEc,13905
79
80
  sentry_sdk/integrations/loguru.py,sha256=fgivPdQn3rmsMeInUd2wbNlbXPAH9MKhjaqytRVKnsI,6215
80
81
  sentry_sdk/integrations/modules.py,sha256=vzLx3Erg77Vl4mnUvAgTg_3teAuWy7zylFpAidBI9I0,820
81
82
  sentry_sdk/integrations/openai.py,sha256=o41gBELZRVdaPXPrM3FQ7cOn6zIzvdu5hzMIf_nK5_I,24060
82
83
  sentry_sdk/integrations/openfeature.py,sha256=-vvdrN4fK0Xhu2ip41bkPIPEqdzv8xzmLu9wRlI2xPA,1131
83
- sentry_sdk/integrations/pure_eval.py,sha256=OvT76XvllQ_J6ABu3jVNU6KD2QAxnXMtTZ7hqhXNhpY,4581
84
+ sentry_sdk/integrations/pure_eval.py,sha256=R2UuFCtQ_ShTIZJKPn9RUD06lbc6mug4Mv8S1_mo1j0,4605
84
85
  sentry_sdk/integrations/pymongo.py,sha256=cPpMGEbXHlV6HTHgmIDL1F-x3w7ZMROXVb4eUhLs3bw,6380
85
86
  sentry_sdk/integrations/pyramid.py,sha256=IDonzoZvLrH18JL-i_Qpbztc4T3iZNQhWFFv6SAXac8,7364
86
87
  sentry_sdk/integrations/quart.py,sha256=7h4BuGNWzZabVIIOKm194gMKDlIvS-dmWFW4iZXsmF4,7413
@@ -90,9 +91,9 @@ sentry_sdk/integrations/rust_tracing.py,sha256=fQ0eG09w3IPZe8ecgeUoQTPoGFThkkarU
90
91
  sentry_sdk/integrations/sanic.py,sha256=Z7orxkX9YhU9YSX4Oidsi3n46J0qlVG7Ajog-fnUreo,12960
91
92
  sentry_sdk/integrations/serverless.py,sha256=npiKJuIy_sEkWT_x0Eu2xSEMiMh_aySqGYlnvIROsYk,1804
92
93
  sentry_sdk/integrations/socket.py,sha256=hlJDYlspzOy3UNjsd7qXPUoqJl5s1ShF3iijTRWpVaU,3169
93
- sentry_sdk/integrations/sqlalchemy.py,sha256=QemZA6BmmZN5A8ux84gYdelJ9G9G-6kZQB7a5yRJCtQ,4372
94
- sentry_sdk/integrations/starlette.py,sha256=URQB0dJDiVPyAKyySC1RdfR3qo9WU9GJU_fudp6T8ww,26267
95
- sentry_sdk/integrations/starlite.py,sha256=llHsTmS__WWLeSKX0VxZ_LTIk_2cNf3UDQzqJ8r8noE,10544
94
+ sentry_sdk/integrations/sqlalchemy.py,sha256=rzOK3yFLrRE3V7q-wVcAUhq5iSTrqGPW5ytbGU9lXkk,4344
95
+ sentry_sdk/integrations/starlette.py,sha256=oHuzJXRWnCgD22Q9_JHfuD2OSW7gIt_wwA-TTwJ_2ng,26235
96
+ sentry_sdk/integrations/starlite.py,sha256=hSiVB6KZr8pxsQVRSGGP-9UQBLsBl-3DmrK_5CPebB8,10559
96
97
  sentry_sdk/integrations/statsig.py,sha256=-e57hxHfHo1S13YQKObV65q_UvREyxbR56fnf7bkC9o,1227
97
98
  sentry_sdk/integrations/stdlib.py,sha256=vgB9weDGh455vBwmUSgcQRgzViKstu3O0syOthCn_H0,8831
98
99
  sentry_sdk/integrations/strawberry.py,sha256=u7Lk4u3sNEycdSmY1nQBzYKmqI-mO8BWKAAJkCSuTRA,14126
@@ -103,7 +104,7 @@ sentry_sdk/integrations/trytond.py,sha256=BaLCNqQeRWDbHHDEelS5tmj-p_CrbmtGEHIn6J
103
104
  sentry_sdk/integrations/typer.py,sha256=FQrFgpR9t6yQWF-oWCI9KJLFioEnA2c_1BEtYV-mPAs,1815
104
105
  sentry_sdk/integrations/unleash.py,sha256=6JshqyuAY_kbu9Nr20tMOhtgx-ryqPHCrq_EQIzeqm4,1058
105
106
  sentry_sdk/integrations/unraisablehook.py,sha256=8IW8Ia9t2hKgPLh8WS8WkmeAsyjJ6Al4qi8sM6vGrpU,1753
106
- sentry_sdk/integrations/wsgi.py,sha256=aW_EnDCcex41NGdrxKFZsfJxJhndsMCv0d2a5LBb7wU,10747
107
+ sentry_sdk/integrations/wsgi.py,sha256=M3lExlLqQ_J-vEZPmv5HI7vRf8T7DvPicbNZiypUvmE,10809
107
108
  sentry_sdk/integrations/celery/__init__.py,sha256=FNmrLL0Cs95kv6yUCpJGu9X8Cpw20mMYGmnkBC4IL4Y,18699
108
109
  sentry_sdk/integrations/celery/beat.py,sha256=WHEdKetrDJgtZGNp1VUMa6BG1q-MhsLZMefUmVrPu3w,8953
109
110
  sentry_sdk/integrations/celery/utils.py,sha256=CMWQOpg9yniEkm3WlXe7YakJfVnLwaY0-jyeo2GX-ZI,1208
@@ -116,15 +117,15 @@ sentry_sdk/integrations/django/templates.py,sha256=k3PQrNICGS4wqmFxK3o8KwOlqip7r
116
117
  sentry_sdk/integrations/django/transactions.py,sha256=Axyh3l4UvM96R3go2anVhew3JbrEZ4FSYd1r3UXEcw4,4951
117
118
  sentry_sdk/integrations/django/views.py,sha256=bjHwt6TVfYY7yfGUa2Rat9yowkUbQ2bYCcJaXJxP2Ik,3137
118
119
  sentry_sdk/integrations/grpc/__init__.py,sha256=zukyRYtaxRGcDuQSXBbVcpa7ZMAYdLQ-laRQqqHsHgc,5620
119
- sentry_sdk/integrations/grpc/client.py,sha256=rOPwbU0IO6Ve99atvvwhdVZA8nqBy7_wbH2frb0kIJ0,3382
120
+ sentry_sdk/integrations/grpc/client.py,sha256=4MCY24tqZAU6OzNC_0pphyCLnR_SrfBC-xh8Kb-i8LU,3373
120
121
  sentry_sdk/integrations/grpc/consts.py,sha256=NpsN5gKWDmtGtVK_L5HscgFZBHqjOpmLJLGKyh8GZBA,31
121
122
  sentry_sdk/integrations/grpc/server.py,sha256=oo79zjfGaJtCSwtxaJeCFRA6UWoH1PDzjR6SDMtt398,2474
122
123
  sentry_sdk/integrations/grpc/aio/__init__.py,sha256=2rgrliowpPfLLw40_2YU6ixSzIu_3f8NN3TRplzc8S8,141
123
- sentry_sdk/integrations/grpc/aio/client.py,sha256=csOwlJb7fg9fBnzeNHxr-qpZEmU97I_jnqkCq6ZLFAs,3322
124
+ sentry_sdk/integrations/grpc/aio/client.py,sha256=3zfF3XkpzR717BpY1ehxi72jDUvT8Xntx8vkD78kCXc,3327
124
125
  sentry_sdk/integrations/grpc/aio/server.py,sha256=SCkdikPZRdWyrlnZewsSGpPk4v6AsdSApVAbO-lf_Lk,4019
125
126
  sentry_sdk/integrations/openai_agents/__init__.py,sha256=-ydqG0sFIrvJlT9JHO58EZpCAzyy9J59Av8dxn0fHuw,1424
126
127
  sentry_sdk/integrations/openai_agents/consts.py,sha256=PTb3vlqkuMPktu21ALK72o5WMIX4-cewTEiTRdHKFdQ,38
127
- sentry_sdk/integrations/openai_agents/utils.py,sha256=NWcko9EphtvirpW_PhZV_l81299QNTouiRZxOKu15rE,5286
128
+ sentry_sdk/integrations/openai_agents/utils.py,sha256=igOXsKaNygGtF7ycwssELn1CztMJFLc4DRQpC5RZC64,6375
128
129
  sentry_sdk/integrations/openai_agents/patches/__init__.py,sha256=I7C9JZ70Mf8PV3wPdFsxTqvcYl4TYUgSZYfNU2Spb7Y,231
129
130
  sentry_sdk/integrations/openai_agents/patches/agent_run.py,sha256=GPBV-j8YnHOrJAhdhu_tphe14z7G0-riFVmjFNDgy0s,5773
130
131
  sentry_sdk/integrations/openai_agents/patches/models.py,sha256=DtwqCmSsYFlhRZquKM2jiTOnnAg97eyCTtJYZkWqdww,1405
@@ -132,7 +133,7 @@ sentry_sdk/integrations/openai_agents/patches/runner.py,sha256=Fr5tflgadu3fnEThS
132
133
  sentry_sdk/integrations/openai_agents/patches/tools.py,sha256=uAx1GgsiDJBP7jpYW8r_kOImdgzXlwYqK-uhkyP3icI,3255
133
134
  sentry_sdk/integrations/openai_agents/spans/__init__.py,sha256=RlVi781zGsvCJBciDO_EbBbwkakwbP9DoFQBbo4VAEE,353
134
135
  sentry_sdk/integrations/openai_agents/spans/agent_workflow.py,sha256=fdRSThD31TcoMXFg-2vmqK2YcSws8Yhd0oC6fxOnysM,469
135
- sentry_sdk/integrations/openai_agents/spans/ai_client.py,sha256=0HG5pT8a06Zgc5JUmRx8p_6bPoQFQLjDrMY_QSQd0_E,1206
136
+ sentry_sdk/integrations/openai_agents/spans/ai_client.py,sha256=gCZrl1vpBmf8vzDTSLCvoZg-x_TvMUFTLOxh4Vy_4OY,1292
136
137
  sentry_sdk/integrations/openai_agents/spans/execute_tool.py,sha256=tqtDIzaxhxJUE-XEvm2dSyJV65UXJ7Mr23C6NTt6ZJE,1411
137
138
  sentry_sdk/integrations/openai_agents/spans/handoff.py,sha256=MBhzy7MpvPGwQTPT5TFcOnmSPiSH_uadQ5wvksueIik,525
138
139
  sentry_sdk/integrations/openai_agents/spans/invoke_agent.py,sha256=yyg-wyVZaYMYbaORva_BotNxB9oyK5Dsn8KfQ3Y7OZI,2323
@@ -154,15 +155,15 @@ sentry_sdk/integrations/redis/modules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCe
154
155
  sentry_sdk/integrations/redis/modules/caches.py,sha256=eY8XY4Nk3QsMM0T26OOYdcNr4bN0Sp9325HkH-hO8cg,4063
155
156
  sentry_sdk/integrations/redis/modules/queries.py,sha256=0GxZ98wyjqcc4CwPG3xJ4bSGIGW8wPXChSk5Fxm6kYg,2035
156
157
  sentry_sdk/integrations/spark/__init__.py,sha256=oOewMErnZk2rzNvIlZO6URxQexu9bUJuSLM2m_zECy8,208
157
- sentry_sdk/integrations/spark/spark_driver.py,sha256=mqGQMngDAZWM78lWK5S0FPpmjd1Q65Ta5T4bOH6mNXs,9465
158
+ sentry_sdk/integrations/spark/spark_driver.py,sha256=hInLM2dO5yPxQT9Wb5gvHIKkbbA1i84LBsx416Dv-6c,9474
158
159
  sentry_sdk/integrations/spark/spark_worker.py,sha256=FGT4yRU2X_iQCC46aasMmvJfYOKmBip8KbDF_wnhvEY,3706
159
160
  sentry_sdk/profiler/__init__.py,sha256=3PI3bHk9RSkkOXZKN84DDedk_7M65EiqqaIGo-DYs0E,1291
160
161
  sentry_sdk/profiler/continuous_profiler.py,sha256=7Qb75TaKLNYxMA97wO-qEpDVqxPQWOLUi2rnUm6_Ci0,23066
161
162
  sentry_sdk/profiler/transaction_profiler.py,sha256=e3MsUqs-YIp6-nmzpmBYGoWWIF7RyuSGu24Dj-8GXAU,27970
162
- sentry_sdk/profiler/utils.py,sha256=G5s4tYai9ATJqcHrQ3bOIxlK6jIaHzELrDtU5k3N4HI,6556
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,,
163
+ sentry_sdk/profiler/utils.py,sha256=80MF0wiguKe47O-uWQfl-81G1caiVa8HgcFHWBzFpuM,6492
164
+ sentry_sdk-2.40.0.dist-info/licenses/LICENSE,sha256=KhQNZg9GKBL6KQvHQNBGMxJsXsRdhLebVp4Sew7t3Qs,1093
165
+ sentry_sdk-2.40.0.dist-info/METADATA,sha256=Z_VV2kNltO1wSFpbZ8zuL3clZndreGE0oHxpZdE2q1Y,10433
166
+ sentry_sdk-2.40.0.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
167
+ sentry_sdk-2.40.0.dist-info/entry_points.txt,sha256=qacZEz40UspQZD1IukCXykx0JtImqGDOctS5KfOLTko,91
168
+ sentry_sdk-2.40.0.dist-info/top_level.txt,sha256=XrQz30XE9FKXSY_yGLrd9bsv2Rk390GTDJOSujYaMxI,11
169
+ sentry_sdk-2.40.0.dist-info/RECORD,,