sentry-sdk 2.70.0__tar.gz → 2.72.0__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.
Files changed (558) hide show
  1. {sentry_sdk-2.70.0/sentry_sdk.egg-info → sentry_sdk-2.72.0}/PKG-INFO +1 -1
  2. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/pyproject.toml +1 -0
  3. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/_batcher.py +39 -25
  4. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/_log_batcher.py +1 -24
  5. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/_metrics_batcher.py +1 -7
  6. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/_types.py +1 -0
  7. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/ai/monitoring.py +7 -0
  8. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/client.py +72 -11
  9. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/consts.py +77 -1
  10. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/crons/api.py +3 -2
  11. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/__init__.py +1 -0
  12. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/_asgi_common.py +5 -2
  13. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/aiohttp.py +27 -0
  14. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/anthropic.py +17 -8
  15. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/asgi.py +23 -5
  16. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/aws_lambda.py +2 -2
  17. sentry_sdk-2.72.0/sentry_sdk/integrations/boto3/__init__.py +21 -0
  18. sentry_sdk-2.72.0/sentry_sdk/integrations/boto3/_client.py +155 -0
  19. sentry_sdk-2.72.0/sentry_sdk/integrations/boto3/_context.py +49 -0
  20. sentry_sdk-2.72.0/sentry_sdk/integrations/boto3/_instrumentation.py +496 -0
  21. sentry_sdk-2.72.0/sentry_sdk/integrations/boto3/_services/base.py +36 -0
  22. sentry_sdk-2.72.0/sentry_sdk/integrations/boto3/_services/registry.py +22 -0
  23. sentry_sdk-2.72.0/sentry_sdk/integrations/boto3/consts.py +12 -0
  24. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/cohere.py +58 -16
  25. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/fastapi.py +2 -33
  26. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/gql.py +3 -1
  27. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/huggingface_hub.py +55 -24
  28. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/litellm.py +23 -6
  29. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/openai.py +46 -17
  30. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/openai_agents/patches/agent_run.py +1 -1
  31. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/openai_agents/patches/models.py +2 -2
  32. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/openai_agents/patches/runner.py +4 -4
  33. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/openai_agents/utils.py +2 -2
  34. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/sanic.py +15 -0
  35. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/socket.py +2 -2
  36. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/starlette.py +32 -12
  37. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/stdlib.py +13 -1
  38. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/strawberry.py +7 -7
  39. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/tornado.py +25 -0
  40. sentry_sdk-2.72.0/sentry_sdk/integrations/typesafe.py +417 -0
  41. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/wsgi.py +17 -0
  42. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/profiler/transaction_profiler.py +9 -1
  43. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/scope.py +3 -1
  44. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/scrubber.py +3 -1
  45. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/spotlight.py +1 -1
  46. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/tracing.py +3 -6
  47. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/tracing_utils.py +2 -5
  48. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/transport.py +16 -5
  49. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/types.py +3 -0
  50. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/utils.py +54 -0
  51. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0/sentry_sdk.egg-info}/PKG-INFO +1 -1
  52. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk.egg-info/SOURCES.txt +14 -1
  53. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/setup.py +1 -1
  54. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/conftest.py +83 -142
  55. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aiohttp/test_aiohttp.py +94 -0
  56. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/asgi/test_asgi.py +112 -24
  57. sentry_sdk-2.72.0/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/TimeoutErrorScopeModified/.gitignore +11 -0
  58. sentry_sdk-2.72.0/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/TracesSampler/.gitignore +11 -0
  59. sentry_sdk-2.72.0/tests/integrations/boto3/test_client.py +897 -0
  60. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/boto3/test_s3.py +42 -24
  61. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/flask/test_flask.py +3 -3
  62. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/graphene/test_graphene.py +3 -3
  63. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/huey/test_huey.py +8 -8
  64. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/huggingface_hub/test_huggingface_hub.py +98 -16
  65. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/langchain/test_langchain.py +15 -1
  66. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/litellm/test_litellm.py +16 -2
  67. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/loguru/test_loguru.py +19 -19
  68. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/openai/test_openai.py +421 -335
  69. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/openai_agents/test_openai_agents.py +208 -13
  70. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/otlp/test_otlp.py +34 -0
  71. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/ray/test_ray.py +8 -8
  72. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/sanic/test_sanic.py +88 -0
  73. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/starlette/test_starlette.py +8 -3
  74. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/tornado/test_tornado.py +75 -0
  75. sentry_sdk-2.72.0/tests/integrations/typesafe/__init__.py +3 -0
  76. sentry_sdk-2.72.0/tests/integrations/typesafe/test_typesafe.py +625 -0
  77. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/wsgi/test_wsgi.py +78 -0
  78. sentry_sdk-2.72.0/tests/profiler/__init__.py +0 -0
  79. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/profiler/test_transaction_profiler.py +30 -0
  80. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/test_attributes.py +7 -7
  81. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/test_basics.py +59 -0
  82. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/test_client.py +23 -1
  83. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/test_crons.py +36 -1
  84. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/test_data_collection.py +32 -25
  85. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/test_logs.py +56 -1
  86. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/test_metrics.py +69 -4
  87. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/test_scrubber.py +53 -0
  88. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/test_transport.py +116 -1
  89. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/test_utils.py +58 -0
  90. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/tracing/test_decorator.py +6 -6
  91. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/tracing/test_sampling.py +5 -105
  92. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/tracing/test_span_batcher.py +1 -1
  93. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/tracing/test_span_streaming.py +66 -43
  94. sentry_sdk-2.70.0/sentry_sdk/integrations/boto3.py +0 -269
  95. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/LICENSE +0 -0
  96. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/MANIFEST.in +0 -0
  97. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/README.md +0 -0
  98. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/__init__.py +0 -0
  99. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/_compat.py +0 -0
  100. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/_init_implementation.py +0 -0
  101. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/_lru_cache.py +0 -0
  102. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/_queue.py +0 -0
  103. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/_span_batcher.py +0 -0
  104. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/_werkzeug.py +0 -0
  105. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/ai/__init__.py +0 -0
  106. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/ai/_openai_completions_api.py +0 -0
  107. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/ai/_openai_responses_api.py +0 -0
  108. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/ai/consts.py +0 -0
  109. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/ai/utils.py +0 -0
  110. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/api.py +0 -0
  111. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/attachments.py +0 -0
  112. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/crons/__init__.py +0 -0
  113. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/crons/consts.py +0 -0
  114. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/crons/decorator.py +0 -0
  115. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/data_collection.py +0 -0
  116. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/debug.py +0 -0
  117. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/envelope.py +0 -0
  118. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/feature_flags.py +0 -0
  119. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/hub.py +0 -0
  120. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/_wsgi_common.py +0 -0
  121. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/aiomysql.py +0 -0
  122. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/argv.py +0 -0
  123. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/ariadne.py +0 -0
  124. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/arq.py +0 -0
  125. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/asyncio.py +0 -0
  126. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/asyncpg.py +0 -0
  127. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/atexit.py +0 -0
  128. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/beam.py +0 -0
  129. {sentry_sdk-2.70.0/sentry_sdk/integrations/redis/modules → sentry_sdk-2.72.0/sentry_sdk/integrations/boto3/_services}/__init__.py +0 -0
  130. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/bottle.py +0 -0
  131. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/celery/__init__.py +0 -0
  132. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/celery/beat.py +0 -0
  133. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/celery/utils.py +0 -0
  134. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/chalice.py +0 -0
  135. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/clickhouse_driver.py +0 -0
  136. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/cloud_resource_context.py +0 -0
  137. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/dedupe.py +0 -0
  138. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/django/__init__.py +0 -0
  139. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/django/asgi.py +0 -0
  140. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/django/caching.py +0 -0
  141. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/django/middleware.py +0 -0
  142. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/django/signals_handlers.py +0 -0
  143. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/django/tasks.py +0 -0
  144. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/django/templates.py +0 -0
  145. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/django/transactions.py +0 -0
  146. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/django/views.py +0 -0
  147. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/dramatiq.py +0 -0
  148. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/excepthook.py +0 -0
  149. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/executing.py +0 -0
  150. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/falcon.py +0 -0
  151. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/flask.py +0 -0
  152. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/gcp.py +0 -0
  153. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/gnu_backtrace.py +0 -0
  154. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/google_genai/__init__.py +0 -0
  155. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/google_genai/consts.py +0 -0
  156. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/google_genai/streaming.py +0 -0
  157. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/google_genai/utils.py +0 -0
  158. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/graphene.py +0 -0
  159. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/grpc/__init__.py +0 -0
  160. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/grpc/aio/__init__.py +0 -0
  161. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/grpc/aio/client.py +0 -0
  162. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/grpc/aio/server.py +0 -0
  163. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/grpc/client.py +0 -0
  164. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/grpc/consts.py +0 -0
  165. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/grpc/server.py +0 -0
  166. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/httpx.py +0 -0
  167. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/httpx2.py +0 -0
  168. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/huey.py +0 -0
  169. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/langchain.py +0 -0
  170. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/langgraph.py +0 -0
  171. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/launchdarkly.py +0 -0
  172. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/litestar.py +0 -0
  173. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/logging.py +0 -0
  174. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/loguru.py +0 -0
  175. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/mcp.py +0 -0
  176. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/mistral.py +0 -0
  177. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/modules.py +0 -0
  178. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/openai_agents/__init__.py +0 -0
  179. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/openai_agents/consts.py +0 -0
  180. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/openai_agents/patches/__init__.py +0 -0
  181. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/openai_agents/patches/error_tracing.py +0 -0
  182. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/openai_agents/patches/tools.py +0 -0
  183. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/openai_agents/spans/__init__.py +0 -0
  184. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/openai_agents/spans/agent_workflow.py +0 -0
  185. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/openai_agents/spans/ai_client.py +0 -0
  186. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/openai_agents/spans/execute_tool.py +0 -0
  187. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/openai_agents/spans/handoff.py +0 -0
  188. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/openai_agents/spans/invoke_agent.py +0 -0
  189. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/openfeature.py +0 -0
  190. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/opentelemetry/__init__.py +0 -0
  191. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/opentelemetry/consts.py +0 -0
  192. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/opentelemetry/integration.py +0 -0
  193. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/opentelemetry/propagator.py +0 -0
  194. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/opentelemetry/span_processor.py +0 -0
  195. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/otlp.py +0 -0
  196. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/pure_eval.py +0 -0
  197. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/pydantic_ai/__init__.py +0 -0
  198. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/pydantic_ai/consts.py +0 -0
  199. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/pydantic_ai/patches/__init__.py +0 -0
  200. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/pydantic_ai/patches/agent_run.py +0 -0
  201. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/pydantic_ai/patches/graph_nodes.py +0 -0
  202. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/pydantic_ai/patches/tools.py +0 -0
  203. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/pydantic_ai/spans/__init__.py +0 -0
  204. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/pydantic_ai/spans/ai_client.py +0 -0
  205. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/pydantic_ai/spans/execute_tool.py +0 -0
  206. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/pydantic_ai/spans/invoke_agent.py +0 -0
  207. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/pydantic_ai/spans/utils.py +0 -0
  208. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/pydantic_ai/utils.py +0 -0
  209. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/pymongo.py +0 -0
  210. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/pyramid.py +0 -0
  211. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/pyreqwest.py +0 -0
  212. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/quart.py +0 -0
  213. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/ray.py +0 -0
  214. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/redis/__init__.py +0 -0
  215. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/redis/_async_common.py +0 -0
  216. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/redis/_sync_common.py +0 -0
  217. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/redis/consts.py +0 -0
  218. {sentry_sdk-2.70.0/tests/integrations → sentry_sdk-2.72.0/sentry_sdk/integrations/redis/modules}/__init__.py +0 -0
  219. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/redis/modules/caches.py +0 -0
  220. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/redis/modules/queries.py +0 -0
  221. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/redis/rb.py +0 -0
  222. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/redis/redis.py +0 -0
  223. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/redis/redis_cluster.py +0 -0
  224. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/redis/redis_py_cluster_legacy.py +0 -0
  225. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/redis/utils.py +0 -0
  226. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/rq.py +0 -0
  227. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/rust_tracing.py +0 -0
  228. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/serverless.py +0 -0
  229. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/spark/__init__.py +0 -0
  230. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/spark/spark_driver.py +0 -0
  231. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/spark/spark_worker.py +0 -0
  232. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/sqlalchemy.py +0 -0
  233. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/starlite.py +0 -0
  234. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/statsig.py +0 -0
  235. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/sys_exit.py +0 -0
  236. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/threading.py +0 -0
  237. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/trytond.py +0 -0
  238. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/typer.py +0 -0
  239. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/unleash.py +0 -0
  240. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/integrations/unraisablehook.py +0 -0
  241. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/logger.py +0 -0
  242. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/metrics.py +0 -0
  243. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/monitor.py +0 -0
  244. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/profiler/__init__.py +0 -0
  245. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/profiler/continuous_profiler.py +0 -0
  246. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/profiler/utils.py +0 -0
  247. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/py.typed +0 -0
  248. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/serializer.py +0 -0
  249. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/session.py +0 -0
  250. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/sessions.py +0 -0
  251. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/traces.py +0 -0
  252. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk/worker.py +0 -0
  253. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk.egg-info/dependency_links.txt +0 -0
  254. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk.egg-info/entry_points.txt +0 -0
  255. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk.egg-info/not-zip-safe +0 -0
  256. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk.egg-info/requires.txt +0 -0
  257. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/sentry_sdk.egg-info/top_level.txt +0 -0
  258. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/setup.cfg +0 -0
  259. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/__init__.py +0 -0
  260. {sentry_sdk-2.70.0/tests/integrations/aiohttp/aiohttp_helpers → sentry_sdk-2.72.0/tests/integrations}/__init__.py +0 -0
  261. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aiohttp/__init__.py +0 -0
  262. {sentry_sdk-2.70.0/tests/integrations/asyncio → sentry_sdk-2.72.0/tests/integrations/aiohttp/aiohttp_helpers}/__init__.py +0 -0
  263. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aiohttp/aiohttp_helpers/helpers.py +0 -0
  264. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aiomysql/__init__.py +0 -0
  265. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aiomysql/test_aiomysql.py +0 -0
  266. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/anthropic/__init__.py +0 -0
  267. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/anthropic/test_anthropic.py +0 -0
  268. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/argv/test_argv.py +0 -0
  269. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/ariadne/__init__.py +0 -0
  270. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/ariadne/test_ariadne.py +0 -0
  271. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/arq/__init__.py +0 -0
  272. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/arq/test_arq.py +0 -0
  273. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/asgi/__init__.py +0 -0
  274. {sentry_sdk-2.70.0/tests/integrations/asyncpg/asyncpg_helpers → sentry_sdk-2.72.0/tests/integrations/asyncio}/__init__.py +0 -0
  275. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/asyncio/test_asyncio.py +0 -0
  276. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/asyncpg/__init__.py +0 -0
  277. {sentry_sdk-2.70.0/tests/integrations/cloud_resource_context → sentry_sdk-2.72.0/tests/integrations/asyncpg/asyncpg_helpers}/__init__.py +0 -0
  278. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/asyncpg/asyncpg_helpers/helpers.py +0 -0
  279. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/asyncpg/test_asyncpg.py +0 -0
  280. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/__init__.py +0 -0
  281. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/lambda_functions/BasicException/index.py +0 -0
  282. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/lambda_functions/BasicOk/index.py +0 -0
  283. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/lambda_functions/InitError/index.py +0 -0
  284. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/lambda_functions/TimeoutError/index.py +0 -0
  285. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionAllowlist/.gitignore +0 -0
  286. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionAllowlist/.lock +0 -0
  287. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionAllowlist/index.py +0 -0
  288. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionDenylist/.gitignore +0 -0
  289. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionDenylist/.lock +0 -0
  290. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionDenylist/index.py +0 -0
  291. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionOff/.gitignore +0 -0
  292. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionOff/.lock +0 -0
  293. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionOff/index.py +0 -0
  294. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionUrlQueryAllowlist/.gitignore +0 -0
  295. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionUrlQueryAllowlist/index.py +0 -0
  296. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionUrlQueryDenylist/.gitignore +0 -0
  297. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionUrlQueryDenylist/index.py +0 -0
  298. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionUrlQueryOff/.gitignore +0 -0
  299. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionUrlQueryOff/index.py +0 -0
  300. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionUserInfoOff/.gitignore +0 -0
  301. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionUserInfoOff/index.py +0 -0
  302. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionUserInfoOn/.gitignore +0 -0
  303. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionUserInfoOn/index.py +0 -0
  304. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSendDefaultPii/.gitignore +0 -0
  305. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSendDefaultPii/.lock +0 -0
  306. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSendDefaultPii/index.py +0 -0
  307. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreaming/.gitignore +0 -0
  308. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreaming/index.py +0 -0
  309. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreamingDataCollection/.gitignore +0 -0
  310. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreamingDataCollection/index.py +0 -0
  311. {sentry_sdk-2.70.0/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreamingPii → sentry_sdk-2.72.0/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreamingDataCollectionUserInfoOff}/.gitignore +0 -0
  312. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreamingDataCollectionUserInfoOff/index.py +0 -0
  313. {sentry_sdk-2.70.0/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/RaiseErrorPerformanceDisabled → sentry_sdk-2.72.0/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreamingDataCollectionUserInfoOn}/.gitignore +0 -0
  314. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreamingDataCollectionUserInfoOn/index.py +0 -0
  315. {sentry_sdk-2.70.0/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/RaiseErrorPerformanceEnabled → sentry_sdk-2.72.0/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreamingPii}/.gitignore +0 -0
  316. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreamingPii/index.py +0 -0
  317. {sentry_sdk-2.70.0/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/RaiseErrorSpanStreaming → sentry_sdk-2.72.0/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/RaiseErrorPerformanceDisabled}/.gitignore +0 -0
  318. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/RaiseErrorPerformanceDisabled/index.py +0 -0
  319. {sentry_sdk-2.70.0/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/TimeoutErrorScopeModified → sentry_sdk-2.72.0/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/RaiseErrorPerformanceEnabled}/.gitignore +0 -0
  320. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/RaiseErrorPerformanceEnabled/index.py +0 -0
  321. {sentry_sdk-2.70.0/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/TracesSampler → sentry_sdk-2.72.0/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/RaiseErrorSpanStreaming}/.gitignore +0 -0
  322. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/RaiseErrorSpanStreaming/index.py +0 -0
  323. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/TimeoutErrorScopeModified/index.py +0 -0
  324. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/TracesSampler/index.py +0 -0
  325. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/test_aws_lambda.py +0 -0
  326. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/aws_lambda/utils.py +0 -0
  327. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/beam/__init__.py +0 -0
  328. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/beam/test_beam.py +0 -0
  329. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/boto3/__init__.py +0 -0
  330. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/boto3/aws_mock.py +0 -0
  331. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/boto3/s3_list.xml +0 -0
  332. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/boto3/test_aws_http_connection.py +0 -0
  333. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/boto3/test_trace_propagation.py +0 -0
  334. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/bottle/__init__.py +0 -0
  335. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/bottle/test_bottle.py +0 -0
  336. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/celery/__init__.py +0 -0
  337. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/celery/integration_tests/__init__.py +0 -0
  338. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/celery/integration_tests/test_celery_beat_cron_monitoring.py +0 -0
  339. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/celery/test_celery.py +0 -0
  340. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/celery/test_celery_beat_crons.py +0 -0
  341. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/celery/test_update_celery_task_headers.py +0 -0
  342. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/chalice/__init__.py +0 -0
  343. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/chalice/test_chalice.py +0 -0
  344. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/clickhouse_driver/__init__.py +0 -0
  345. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/clickhouse_driver/test_clickhouse_driver.py +0 -0
  346. {sentry_sdk-2.70.0/tests/integrations/django/django_helpers → sentry_sdk-2.72.0/tests/integrations/cloud_resource_context}/__init__.py +0 -0
  347. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/cloud_resource_context/test_cloud_resource_context.py +0 -0
  348. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/cohere/__init__.py +0 -0
  349. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/cohere/test_cohere.py +0 -0
  350. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/conftest.py +0 -0
  351. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/django/__init__.py +0 -0
  352. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/django/asgi/__init__.py +0 -0
  353. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/django/asgi/image.png +0 -0
  354. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/django/asgi/test_asgi.py +0 -0
  355. {sentry_sdk-2.70.0/tests/integrations/django/myapp → sentry_sdk-2.72.0/tests/integrations/django/django_helpers}/__init__.py +0 -0
  356. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/django/django_helpers/views.py +0 -0
  357. {sentry_sdk-2.70.0/tests/integrations/django/myapp/management → sentry_sdk-2.72.0/tests/integrations/django/myapp}/__init__.py +0 -0
  358. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/django/myapp/asgi.py +0 -0
  359. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/django/myapp/custom_urls.py +0 -0
  360. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/django/myapp/manage.py +0 -0
  361. {sentry_sdk-2.70.0/tests/integrations/django/myapp/management/commands → sentry_sdk-2.72.0/tests/integrations/django/myapp/management}/__init__.py +0 -0
  362. {sentry_sdk-2.70.0/tests/integrations/httpx/httpx_helpers → sentry_sdk-2.72.0/tests/integrations/django/myapp/management/commands}/__init__.py +0 -0
  363. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/django/myapp/management/commands/mycrash.py +0 -0
  364. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/django/myapp/middleware.py +0 -0
  365. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/django/myapp/routing.py +0 -0
  366. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/django/myapp/settings.py +0 -0
  367. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/django/myapp/signals.py +0 -0
  368. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/django/myapp/templates/error.html +0 -0
  369. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/django/myapp/templates/trace_meta.html +0 -0
  370. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/django/myapp/templates/user_name.html +0 -0
  371. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/django/myapp/urls.py +0 -0
  372. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/django/myapp/views.py +0 -0
  373. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/django/myapp/wsgi.py +0 -0
  374. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/django/test_basic.py +0 -0
  375. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/django/test_cache_module.py +0 -0
  376. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/django/test_data_scrubbing.py +0 -0
  377. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/django/test_db_query_data.py +0 -0
  378. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/django/test_db_transactions.py +0 -0
  379. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/django/test_middleware.py +0 -0
  380. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/django/test_tasks.py +0 -0
  381. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/django/test_transactions.py +0 -0
  382. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/django/utils.py +0 -0
  383. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/dramatiq/__init__.py +0 -0
  384. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/dramatiq/test_dramatiq.py +0 -0
  385. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/excepthook/test_excepthook.py +0 -0
  386. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/falcon/__init__.py +0 -0
  387. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/falcon/test_falcon.py +0 -0
  388. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/fastapi/__init__.py +0 -0
  389. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/fastapi/photo.jpg +0 -0
  390. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/fastapi/test_fastapi.py +0 -0
  391. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/fastmcp/__init__.py +0 -0
  392. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/fastmcp/test_fastmcp.py +0 -0
  393. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/flask/__init__.py +0 -0
  394. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/gcp/__init__.py +0 -0
  395. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/gcp/test_gcp.py +0 -0
  396. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/google_genai/__init__.py +0 -0
  397. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/google_genai/test_google_genai.py +0 -0
  398. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/gql/__init__.py +0 -0
  399. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/gql/test_gql.py +0 -0
  400. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/graphene/__init__.py +0 -0
  401. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/grpc/__init__.py +0 -0
  402. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/grpc/compile_test_services.sh +0 -0
  403. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/grpc/grpc_test_service_pb2.py +0 -0
  404. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/grpc/grpc_test_service_pb2.pyi +0 -0
  405. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/grpc/grpc_test_service_pb2_grpc.py +0 -0
  406. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/grpc/protos/grpc_test_service.proto +0 -0
  407. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/grpc/test_grpc.py +0 -0
  408. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/grpc/test_grpc_aio.py +0 -0
  409. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/httpx/__init__.py +0 -0
  410. {sentry_sdk-2.70.0/tests/integrations/httpx2/httpx2_helpers → sentry_sdk-2.72.0/tests/integrations/httpx/httpx_helpers}/__init__.py +0 -0
  411. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/httpx/httpx_helpers/helpers.py +0 -0
  412. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/httpx/test_httpx.py +0 -0
  413. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/httpx2/__init__.py +0 -0
  414. {sentry_sdk-2.70.0/tests/integrations/litellm → sentry_sdk-2.72.0/tests/integrations/httpx2/httpx2_helpers}/__init__.py +0 -0
  415. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/httpx2/httpx2_helpers/helpers.py +0 -0
  416. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/httpx2/test_httpx2.py +0 -0
  417. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/huey/__init__.py +0 -0
  418. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/huggingface_hub/__init__.py +0 -0
  419. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/langchain/__init__.py +0 -0
  420. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/langgraph/__init__.py +0 -0
  421. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/langgraph/test_langgraph.py +0 -0
  422. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/launchdarkly/__init__.py +0 -0
  423. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/launchdarkly/test_launchdarkly.py +0 -0
  424. {sentry_sdk-2.70.0/tests/integrations/pyreqwest/pyreqwest_helpers → sentry_sdk-2.72.0/tests/integrations/litellm}/__init__.py +0 -0
  425. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/litestar/__init__.py +0 -0
  426. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/litestar/test_litestar.py +0 -0
  427. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/logging/test_logging.py +0 -0
  428. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/loguru/__init__.py +0 -0
  429. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/mcp/__init__.py +0 -0
  430. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/mcp/test_mcp.py +0 -0
  431. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/mistral/__init__.py +0 -0
  432. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/mistral/test_mistral.py +0 -0
  433. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/modules/test_modules.py +0 -0
  434. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/openai/__init__.py +0 -0
  435. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/openai_agents/__init__.py +0 -0
  436. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/openfeature/__init__.py +0 -0
  437. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/openfeature/test_openfeature.py +0 -0
  438. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/opentelemetry/__init__.py +0 -0
  439. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/opentelemetry/test_entry_points.py +0 -0
  440. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/opentelemetry/test_experimental.py +0 -0
  441. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/opentelemetry/test_propagator.py +0 -0
  442. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/opentelemetry/test_span_processor.py +0 -0
  443. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/otlp/__init__.py +0 -0
  444. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/pure_eval/__init__.py +0 -0
  445. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/pure_eval/test_pure_eval.py +0 -0
  446. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/pydantic_ai/__init__.py +0 -0
  447. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/pydantic_ai/test_pydantic_ai.py +0 -0
  448. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/pymongo/__init__.py +0 -0
  449. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/pymongo/test_pymongo.py +0 -0
  450. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/pyramid/__init__.py +0 -0
  451. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/pyramid/test_pyramid.py +0 -0
  452. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/pyreqwest/__init__.py +0 -0
  453. {sentry_sdk-2.70.0/tests/integrations/rust_tracing → sentry_sdk-2.72.0/tests/integrations/pyreqwest/pyreqwest_helpers}/__init__.py +0 -0
  454. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/pyreqwest/pyreqwest_helpers/helpers.py +0 -0
  455. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/pyreqwest/test_pyreqwest.py +0 -0
  456. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/quart/__init__.py +0 -0
  457. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/quart/test_quart.py +0 -0
  458. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/ray/__init__.py +0 -0
  459. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/redis/__init__.py +0 -0
  460. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/redis/asyncio/__init__.py +0 -0
  461. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/redis/asyncio/test_redis_asyncio.py +0 -0
  462. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/redis/cluster/__init__.py +0 -0
  463. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/redis/cluster/test_redis_cluster.py +0 -0
  464. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/redis/cluster_asyncio/__init__.py +0 -0
  465. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/redis/cluster_asyncio/test_redis_cluster_asyncio.py +0 -0
  466. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/redis/test_redis.py +0 -0
  467. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/redis/test_redis_cache_module.py +0 -0
  468. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/redis/test_redis_cache_module_async.py +0 -0
  469. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/redis_py_cluster_legacy/__init__.py +0 -0
  470. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/redis_py_cluster_legacy/test_redis_py_cluster_legacy.py +0 -0
  471. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/requests/__init__.py +0 -0
  472. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/requests/test_requests.py +0 -0
  473. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/rq/__init__.py +0 -0
  474. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/rq/test_rq.py +0 -0
  475. {sentry_sdk-2.70.0/tests/integrations/sqlalchemy/sqlalchemy_helpers → sentry_sdk-2.72.0/tests/integrations/rust_tracing}/__init__.py +0 -0
  476. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/rust_tracing/test_rust_tracing.py +0 -0
  477. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/sanic/__init__.py +0 -0
  478. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/serverless/test_serverless.py +0 -0
  479. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/socket/__init__.py +0 -0
  480. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/socket/test_socket.py +0 -0
  481. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/spark/__init__.py +0 -0
  482. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/spark/test_spark.py +0 -0
  483. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/sqlalchemy/__init__.py +0 -0
  484. {sentry_sdk-2.70.0/tests/integrations/stdlib/httplib_helpers → sentry_sdk-2.72.0/tests/integrations/sqlalchemy/sqlalchemy_helpers}/__init__.py +0 -0
  485. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/sqlalchemy/sqlalchemy_helpers/helpers.py +0 -0
  486. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/sqlalchemy/test_sqlalchemy.py +0 -0
  487. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/starlette/__init__.py +0 -0
  488. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/starlette/photo.jpg +0 -0
  489. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/starlette/templates/trace_meta.html +0 -0
  490. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/starlite/__init__.py +0 -0
  491. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/starlite/test_starlite.py +0 -0
  492. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/statsig/__init__.py +0 -0
  493. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/statsig/test_statsig.py +0 -0
  494. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/stdlib/__init__.py +0 -0
  495. {sentry_sdk-2.70.0/tests/integrations/strawberry → sentry_sdk-2.72.0/tests/integrations/stdlib/httplib_helpers}/__init__.py +0 -0
  496. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/stdlib/httplib_helpers/helpers.py +0 -0
  497. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/stdlib/test_httplib.py +0 -0
  498. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/stdlib/test_subprocess.py +0 -0
  499. {sentry_sdk-2.70.0/tests/profiler → sentry_sdk-2.72.0/tests/integrations/strawberry}/__init__.py +0 -0
  500. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/strawberry/test_strawberry.py +0 -0
  501. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/sys_exit/test_sys_exit.py +0 -0
  502. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/test_gnu_backtrace.py +0 -0
  503. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/threading/test_threading.py +0 -0
  504. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/tornado/__init__.py +0 -0
  505. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/trytond/__init__.py +0 -0
  506. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/trytond/test_trytond.py +0 -0
  507. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/typer/__init__.py +0 -0
  508. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/typer/test_typer.py +0 -0
  509. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/unleash/__init__.py +0 -0
  510. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/unleash/test_unleash.py +0 -0
  511. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/unleash/testutils.py +0 -0
  512. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/unraisablehook/test_unraisablehook.py +0 -0
  513. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/integrations/utils.py +0 -0
  514. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/new_scopes_compat/__init__.py +0 -0
  515. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/new_scopes_compat/conftest.py +0 -0
  516. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/new_scopes_compat/test_new_scopes_compat.py +0 -0
  517. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/new_scopes_compat/test_new_scopes_compat_event.py +0 -0
  518. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/profiler/test_continuous_profiler.py +0 -0
  519. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/test.key +0 -0
  520. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/test.pem +0 -0
  521. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/test_ai_integration_deactivation.py +0 -0
  522. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/test_ai_monitoring.py +0 -0
  523. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/test_api.py +0 -0
  524. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/test_conftest.py +0 -0
  525. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/test_dsc.py +0 -0
  526. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/test_envelope.py +0 -0
  527. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/test_exceptiongroup.py +0 -0
  528. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/test_feature_flags.py +0 -0
  529. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/test_full_stack_frames.py +0 -0
  530. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/test_gevent.py +0 -0
  531. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/test_import.py +0 -0
  532. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/test_lru_cache.py +0 -0
  533. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/test_monitor.py +0 -0
  534. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/test_propagationcontext.py +0 -0
  535. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/test_scope.py +0 -0
  536. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/test_serializer.py +0 -0
  537. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/test_sessions.py +0 -0
  538. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/test_shadowed_module.py +0 -0
  539. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/test_spotlight.py +0 -0
  540. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/test_tracing_utils.py +0 -0
  541. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/test_types.py +0 -0
  542. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/tracing/test_baggage.py +0 -0
  543. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/tracing/test_conversation_id.py +0 -0
  544. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/tracing/test_deprecated.py +0 -0
  545. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/tracing/test_http_headers.py +0 -0
  546. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/tracing/test_ignore_status_codes.py +0 -0
  547. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/tracing/test_integration_tests.py +0 -0
  548. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/tracing/test_misc.py +0 -0
  549. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/tracing/test_noop_span.py +0 -0
  550. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/tracing/test_propagation.py +0 -0
  551. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/tracing/test_sample_rand.py +0 -0
  552. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/tracing/test_sample_rand_propagation.py +0 -0
  553. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/tracing/test_span_name.py +0 -0
  554. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/tracing/test_span_origin.py +0 -0
  555. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/utils/__init__.py +0 -0
  556. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/utils/test_contextvars.py +0 -0
  557. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/utils/test_general.py +0 -0
  558. {sentry_sdk-2.70.0 → sentry_sdk-2.72.0}/tests/utils/test_transaction.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sentry-sdk
3
- Version: 2.70.0
3
+ Version: 2.72.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
@@ -81,6 +81,7 @@ typing = [
81
81
  "aiohttp>=3.14.3",
82
82
  "openai-agents>=0.22.0",
83
83
  "mistralai>=2.10.1",
84
+ "typesafe-sdk>=0.7.2",
84
85
  ]
85
86
  test = [
86
87
  "dataclasses ; python_full_version < '3.7'",
@@ -20,6 +20,7 @@ class Batcher(Generic[T]):
20
20
  FLUSH_WAIT_TIME = 5.0
21
21
 
22
22
  TYPE = ""
23
+ CLIENT_REPORT_TYPE = ""
23
24
  CONTENT_TYPE = ""
24
25
 
25
26
  def __init__(
@@ -123,13 +124,16 @@ class Batcher(Generic[T]):
123
124
  return None
124
125
 
125
126
  with self._lock:
126
- if len(self._buffer) >= self.MAX_BEFORE_DROP:
127
- self._record_lost(item)
128
- return None
129
-
130
- self._buffer.append(item)
131
- if len(self._buffer) >= self.MAX_BEFORE_FLUSH:
132
- self._flush_event.set()
127
+ dropped = len(self._buffer) >= self.MAX_BEFORE_DROP
128
+ if not dropped:
129
+ self._buffer.append(item)
130
+ if len(self._buffer) >= self.MAX_BEFORE_FLUSH:
131
+ self._flush_event.set()
132
+
133
+ # Record the loss outside of the lock, since this might involve
134
+ # serializing the item to report lost bytes
135
+ if dropped:
136
+ self._record_lost(item)
133
137
  finally:
134
138
  self._active.flag = False
135
139
 
@@ -149,25 +153,25 @@ class Batcher(Generic[T]):
149
153
  finally:
150
154
  self._active.flag = was_active
151
155
 
152
- def _add_to_envelope(self, envelope: "Envelope") -> None:
153
- envelope.add_item(
154
- Item(
155
- type=self.TYPE,
156
- content_type=self.CONTENT_TYPE,
157
- headers={
158
- "item_count": len(self._buffer),
159
- },
160
- payload=PayloadRef(
161
- json={
162
- "version": 2,
163
- "items": [
164
- self._to_transport_format(item) for item in self._buffer
165
- ],
166
- }
167
- ),
168
- )
156
+ @classmethod
157
+ def _to_envelope_item(cls, items: "list[T]") -> "Item":
158
+ return Item(
159
+ type=cls.TYPE,
160
+ content_type=cls.CONTENT_TYPE,
161
+ headers={
162
+ "item_count": len(items),
163
+ },
164
+ payload=PayloadRef(
165
+ json={
166
+ "version": 2,
167
+ "items": [cls._to_transport_format(item) for item in items],
168
+ }
169
+ ),
169
170
  )
170
171
 
172
+ def _add_to_envelope(self, envelope: "Envelope") -> None:
173
+ envelope.add_item(self._to_envelope_item(self._buffer))
174
+
171
175
  def _flush(self) -> "Optional[Envelope]":
172
176
  envelope = Envelope(
173
177
  headers={"sent_at": format_timestamp(datetime.now(timezone.utc))}
@@ -183,7 +187,17 @@ class Batcher(Generic[T]):
183
187
  return envelope
184
188
 
185
189
  def _record_lost(self, item: "T") -> None:
186
- pass
190
+ envelope_item = None
191
+ with capture_internal_exceptions():
192
+ envelope_item = self._to_envelope_item([item])
193
+
194
+ if envelope_item:
195
+ self._record_lost_func(
196
+ reason="queue_overflow",
197
+ data_category=self.CLIENT_REPORT_TYPE,
198
+ item=envelope_item,
199
+ quantity=1,
200
+ )
187
201
 
188
202
  @staticmethod
189
203
  def _to_transport_format(item: "T") -> "Any":
@@ -1,7 +1,6 @@
1
1
  from typing import TYPE_CHECKING
2
2
 
3
3
  from sentry_sdk._batcher import Batcher
4
- from sentry_sdk.envelope import Item, PayloadRef
5
4
  from sentry_sdk.utils import serialize_attribute
6
5
 
7
6
  if TYPE_CHECKING:
@@ -16,6 +15,7 @@ class LogBatcher(Batcher["Log"]):
16
15
  FLUSH_WAIT_TIME = 5.0
17
16
 
18
17
  TYPE = "log"
18
+ CLIENT_REPORT_TYPE = "log_item"
19
19
  CONTENT_TYPE = "application/vnd.sentry.items.log+json"
20
20
 
21
21
  @staticmethod
@@ -41,26 +41,3 @@ class LogBatcher(Batcher["Log"]):
41
41
  res["span_id"] = item["span_id"]
42
42
 
43
43
  return res
44
-
45
- def _record_lost(self, item: "Log") -> None:
46
- # Construct log envelope item without sending it to report lost bytes
47
- log_item = Item(
48
- type=self.TYPE,
49
- content_type=self.CONTENT_TYPE,
50
- headers={
51
- "item_count": 1,
52
- },
53
- payload=PayloadRef(
54
- json={
55
- "version": 2,
56
- "items": [self._to_transport_format(item)],
57
- }
58
- ),
59
- )
60
-
61
- self._record_lost_func(
62
- reason="queue_overflow",
63
- data_category="log_item",
64
- item=log_item,
65
- quantity=1,
66
- )
@@ -15,6 +15,7 @@ class MetricsBatcher(Batcher["Metric"]):
15
15
  FLUSH_WAIT_TIME = 5.0
16
16
 
17
17
  TYPE = "trace_metric"
18
+ CLIENT_REPORT_TYPE = "trace_metric"
18
19
  CONTENT_TYPE = "application/vnd.sentry.items.trace-metric+json"
19
20
 
20
21
  @staticmethod
@@ -39,10 +40,3 @@ class MetricsBatcher(Batcher["Metric"]):
39
40
  res["unit"] = item["unit"]
40
41
 
41
42
  return res
42
-
43
- def _record_lost(self, item: "Metric") -> None:
44
- self._record_lost_func(
45
- reason="queue_overflow",
46
- data_category="trace_metric",
47
- quantity=1,
48
- )
@@ -425,6 +425,7 @@ if TYPE_CHECKING:
425
425
  "log_item",
426
426
  "log_byte",
427
427
  "trace_metric",
428
+ "trace_metric_byte",
428
429
  ]
429
430
  SessionStatus = Literal["ok", "exited", "crashed", "abnormal"]
430
431
 
@@ -192,6 +192,13 @@ def record_token_usage(
192
192
  output_tokens_reasoning: "Optional[int]" = None,
193
193
  total_tokens: "Optional[int]" = None,
194
194
  ) -> None:
195
+ warnings.warn(
196
+ "record_token_usage() is deprecated and will be removed in version 3.0 of sentry-sdk. "
197
+ "Use the manual span API instead, e.g. span.set_attribute() (in streaming mode) or span.set_data().",
198
+ DeprecationWarning,
199
+ stacklevel=2,
200
+ )
201
+
195
202
  # TODO: move pipeline name elsewhere
196
203
  ai_pipeline_name = get_ai_pipeline_name()
197
204
  if ai_pipeline_name:
@@ -56,6 +56,7 @@ from sentry_sdk.utils import (
56
56
  capture_internal_exceptions,
57
57
  current_stacktrace,
58
58
  datetime_from_isoformat,
59
+ deprecation_warning,
59
60
  env_to_bool,
60
61
  format_timestamp,
61
62
  get_before_send_log,
@@ -350,6 +351,13 @@ def _get_options(*args: "Optional[str]", **kwargs: "Any") -> "Dict[str, Any]":
350
351
  if rv["enable_tracing"] is True and rv["traces_sample_rate"] is None:
351
352
  rv["traces_sample_rate"] = 1.0
352
353
 
354
+ if rv["send_default_pii"] is not None:
355
+ deprecation_warning(
356
+ "The send_default_pii option is deprecated. Use data_collection "
357
+ "instead. "
358
+ "See https://docs.sentry.io/platforms/python/data-management/data-collected/"
359
+ )
360
+
353
361
  rv["data_collection"] = _resolve_data_collection(rv)
354
362
 
355
363
  # Do not add the event scrubber if data collection is enabled as it can remove data that's
@@ -403,6 +411,21 @@ def _get_options(*args: "Optional[str]", **kwargs: "Any") -> "Dict[str, Any]":
403
411
  stacklevel=2,
404
412
  )
405
413
 
414
+ if has_profiling_enabled(rv):
415
+ warnings.warn(
416
+ "Transaction-based profiling is deprecated and will be removed in the next major version of the SDK. "
417
+ "Please use continuous profiling instead: https://docs.sentry.io/platforms/python/profiling/",
418
+ DeprecationWarning,
419
+ stacklevel=2,
420
+ )
421
+ if has_span_streaming_enabled(rv):
422
+ warnings.warn(
423
+ "Transaction-based profiling has no effect when `trace_lifecycle` is set to `stream`. "
424
+ "Please use continuous profiling instead: https://docs.sentry.io/platforms/python/profiling/",
425
+ UserWarning,
426
+ stacklevel=2,
427
+ )
428
+
406
429
  return rv
407
430
 
408
431
 
@@ -930,14 +953,22 @@ class _Client(BaseClient):
930
953
  and event.get("type") != "transaction"
931
954
  ):
932
955
  new_event = None
956
+ exception_raised_in_before_send = False
933
957
  with capture_internal_exceptions():
934
- new_event = before_send(event, hint or {})
958
+ try:
959
+ new_event = before_send(event, hint or {})
960
+ except Exception:
961
+ exception_raised_in_before_send = True
962
+ raise
935
963
  if new_event is None:
936
964
  logger.info("before send dropped event")
937
965
  if self.transport:
938
- self.transport.record_lost_event(
939
- "before_send", data_category="error"
966
+ reason = (
967
+ "callback_error"
968
+ if exception_raised_in_before_send
969
+ else "before_send"
940
970
  )
971
+ self.transport.record_lost_event(reason, data_category="error")
941
972
 
942
973
  # If this is an exception, reset the DedupeIntegration. It still
943
974
  # remembers the dropped exception as the last exception, meaning
@@ -955,17 +986,29 @@ class _Client(BaseClient):
955
986
  and event.get("type") == "transaction"
956
987
  ):
957
988
  new_event = None
989
+ exception_raised_in_before_send_transaction = False
958
990
  spans_before = len(cast(List[Dict[str, object]], event.get("spans", [])))
991
+
959
992
  with capture_internal_exceptions():
960
- new_event = before_send_transaction(event, hint or {})
993
+ try:
994
+ new_event = before_send_transaction(event, hint or {})
995
+ except Exception:
996
+ exception_raised_in_before_send_transaction = True
997
+ raise
998
+
961
999
  if new_event is None:
962
1000
  logger.info("before send transaction dropped event")
963
1001
  if self.transport:
1002
+ reason = (
1003
+ "callback_error"
1004
+ if exception_raised_in_before_send_transaction
1005
+ else "before_send"
1006
+ )
964
1007
  self.transport.record_lost_event(
965
- reason="before_send", data_category="transaction"
1008
+ reason=reason, data_category="transaction"
966
1009
  )
967
1010
  self.transport.record_lost_event(
968
- reason="before_send",
1011
+ reason=reason,
969
1012
  data_category="span",
970
1013
  quantity=spans_before + 1, # +1 for the transaction itself
971
1014
  )
@@ -1225,6 +1268,27 @@ class _Client(BaseClient):
1225
1268
 
1226
1269
  return return_value
1227
1270
 
1271
+ def _record_lost_telemetry(
1272
+ self, reason: str, ty: str, telemetry: "Union[Log, Metric]"
1273
+ ) -> None:
1274
+ if self.transport is None:
1275
+ return
1276
+
1277
+ batcher_cls: "Union[type[LogBatcher], type[MetricsBatcher]]"
1278
+ if ty == "log":
1279
+ data_category: "EventDataCategory" = "log_item"
1280
+ batcher_cls = LogBatcher
1281
+ else:
1282
+ data_category = "trace_metric"
1283
+ batcher_cls = MetricsBatcher
1284
+
1285
+ # Construct envelope item without sending it to report lost bytes
1286
+ item = None
1287
+ with capture_internal_exceptions():
1288
+ item = batcher_cls._to_envelope_item([telemetry]) # type: ignore[list-item]
1289
+
1290
+ self.transport.record_lost_event(reason, data_category=data_category, item=item)
1291
+
1228
1292
  def _capture_telemetry(
1229
1293
  self,
1230
1294
  telemetry: "Optional[Union[Log, Metric, StreamedSpan]]",
@@ -1266,14 +1330,11 @@ class _Client(BaseClient):
1266
1330
  raise
1267
1331
 
1268
1332
  if ty in ("log", "metric"):
1269
- # We are ok with dropping metrics and logs when an exception is raised
1270
- # because we allow users to drop them in their respect before_send_*
1271
- # functions.
1272
1333
  if exception_raised_in_before_send_func:
1334
+ self._record_lost_telemetry("callback_error", ty, telemetry) # type: ignore[arg-type]
1273
1335
  return
1274
- # Logs and metrics can be dropped in their respective
1275
- # before_send, so if we get None, don't queue them for sending.
1276
1336
  if serialized is None:
1337
+ self._record_lost_telemetry("before_send", ty, telemetry) # type: ignore[arg-type]
1277
1338
  return
1278
1339
 
1279
1340
  elif ty == "span" and isinstance(telemetry, StreamedSpan):
@@ -390,6 +390,18 @@ class SPANDATA:
390
390
  Example: ["Token limit exceeded"]
391
391
  """
392
392
 
393
+ AWS_EXTENDED_REQUEST_ID = "aws.extended_request_id"
394
+ """
395
+ The AWS extended request ID as returned in the response headers.
396
+ Example: "wzHcyEWfmOGDIE5QOhTAqFDoDWP3y8IUvpNINCwL9N4TEHbUw0/gZJ+VZTmCNCWR7fezEN3eCiQ="
397
+ """
398
+
399
+ AWS_REQUEST_ID = "aws.request_id"
400
+ """
401
+ The AWS request ID as returned in the response headers.
402
+ Example: "79b9da39-b7ae-508a-a6bc-864b2829c622"
403
+ """
404
+
393
405
  CACHE_HIT = "cache.hit"
394
406
  """
395
407
  A boolean indicating whether the requested data was found in the cache.
@@ -414,6 +426,12 @@ class SPANDATA:
414
426
  Example: "10.1.2.80"
415
427
  """
416
428
 
429
+ CLOUD_REGION = "cloud.region"
430
+ """
431
+ The geographical region the resource is running.
432
+ Example: "us-east-1"
433
+ """
434
+
417
435
  CODE_FILEPATH = "code.filepath"
418
436
  """
419
437
  .. deprecated::
@@ -541,6 +559,12 @@ class SPANDATA:
541
559
  Example: my_user
542
560
  """
543
561
 
562
+ ERROR_TYPE = "error.type"
563
+ """
564
+ Describes a class of error the operation ended with.
565
+ Example: "timeout"
566
+ """
567
+
544
568
  GEN_AI_AGENT_NAME = "gen_ai.agent.name"
545
569
  """
546
570
  The name of the agent being used.
@@ -880,6 +904,12 @@ class SPANDATA:
880
904
  Example: GET
881
905
  """
882
906
 
907
+ HTTP_REQUEST_RESEND_COUNT = "http.request.resend_count"
908
+ """
909
+ The ordinal number of request resending attempt (for any reason, including redirects).
910
+ Example: 2
911
+ """
912
+
883
913
  HTTP_ROUTE = "http.route"
884
914
  """
885
915
  The matched route, that is, the path template used to match the request.
@@ -977,12 +1007,24 @@ class SPANDATA:
977
1007
  Example: "com.example.ExampleService/exampleMethod"
978
1008
  """
979
1009
 
1010
+ RPC_SERVICE = "rpc.service"
1011
+ """
1012
+ The full (logical) name of the service being called, including its package name, if applicable.
1013
+ Example: "myService.BestService"
1014
+ """
1015
+
980
1016
  RPC_RESPONSE_STATUS_CODE = "rpc.response.status_code"
981
1017
  """
982
1018
  Status code of the RPC returned by the RPC server or generated by the client.
983
1019
  Example: "DEADLINE_EXCEEDED"
984
1020
  """
985
1021
 
1022
+ RPC_SYSTEM_NAME = "rpc.system.name"
1023
+ """
1024
+ A string identifying the remoting system.
1025
+ Example: "aws-api"
1026
+ """
1027
+
986
1028
  SERVER_ADDRESS = "server.address"
987
1029
  """
988
1030
  Name of the database host.
@@ -1164,6 +1206,32 @@ class SPANDATA:
1164
1206
  Example: "prod"
1165
1207
  """
1166
1208
 
1209
+ SENTRY_IS_LOCALHOST = "sentry.is_localhost"
1210
+ """
1211
+ Indicates whether a telemetry item was sent on a host, device or browser on
1212
+ a localhost URL or IP address.
1213
+
1214
+ Used in inbound filters.
1215
+ """
1216
+
1217
+ SENTRY_KIND = "sentry.kind"
1218
+ """
1219
+ Used to clarify the relationship between parents and children, or to distinguish between spans, e.g. a `server` and `client` span with the same name.
1220
+ Example: "client", "server", "producer", "consumer", "internal"
1221
+ """
1222
+
1223
+ SENTRY_OP = "sentry.op"
1224
+ """
1225
+ The operation of a span.
1226
+ Example: "http.client"
1227
+ """
1228
+
1229
+ SENTRY_ORIGIN = "sentry.origin"
1230
+ """
1231
+ The origin of the instrumentation (e.g. span, log, etc.)
1232
+ Example: "auto.http.otel.fastify"
1233
+ """
1234
+
1167
1235
  SENTRY_RELEASE = "sentry.release"
1168
1236
  """
1169
1237
  The Sentry release.
@@ -1194,6 +1262,13 @@ class SPANDATA:
1194
1262
  Example: ["AtexitIntegration", "StdlibIntegration"]
1195
1263
  """
1196
1264
 
1265
+ USER_AGENT_ORIGINAL = "user_agent.original"
1266
+ """
1267
+ Value of the HTTP User-Agent header sent by the client.
1268
+
1269
+ Used in inbound filters.
1270
+ """
1271
+
1197
1272
 
1198
1273
  class SPANSTATUS:
1199
1274
  """
@@ -1238,6 +1313,7 @@ class OP:
1238
1313
  GEN_AI_CHAT = "gen_ai.chat"
1239
1314
  GEN_AI_CREATE_AGENT = "gen_ai.create_agent"
1240
1315
  GEN_AI_EMBEDDINGS = "gen_ai.embeddings"
1316
+ GEN_AI_EVALUATE = "gen_ai.evaluate"
1241
1317
  GEN_AI_EXECUTE_TOOL = "gen_ai.execute_tool"
1242
1318
  GEN_AI_TEXT_COMPLETION = "gen_ai.text_completion"
1243
1319
  GEN_AI_HANDOFF = "gen_ai.handoff"
@@ -1848,4 +1924,4 @@ DEFAULT_OPTIONS = _get_default_options()
1848
1924
  del _get_default_options
1849
1925
 
1850
1926
 
1851
- VERSION = "2.70.0"
1927
+ VERSION = "2.72.0"
@@ -42,7 +42,7 @@ def capture_checkin(
42
42
  status: "Optional[str]" = None,
43
43
  duration: "Optional[float]" = None,
44
44
  monitor_config: "Optional[MonitorConfig]" = None,
45
- ) -> str:
45
+ ) -> "Optional[str]":
46
46
  check_in_event = _create_check_in_event(
47
47
  monitor_slug=monitor_slug,
48
48
  check_in_id=check_in_id,
@@ -51,7 +51,8 @@ def capture_checkin(
51
51
  monitor_config=monitor_config,
52
52
  )
53
53
 
54
- sentry_sdk.capture_event(check_in_event)
54
+ if sentry_sdk.capture_event(check_in_event) is None:
55
+ return None
55
56
 
56
57
  logger.debug(
57
58
  f"[Crons] Captured check-in ({check_in_event.get('check_in_id')}): {check_in_event.get('monitor_slug')} -> {check_in_event.get('status')}"
@@ -168,6 +168,7 @@ _MIN_VERSIONS = {
168
168
  "strawberry": (0, 209, 5),
169
169
  "tornado": (6, 0),
170
170
  "typer": (0, 15),
171
+ "typesafe": (0, 7),
171
172
  "unleash": (6, 0, 1),
172
173
  }
173
174
 
@@ -88,7 +88,7 @@ def _get_query(asgi_scope: "Any") -> "Optional[str]":
88
88
  return urllib.parse.unquote(qs.decode("latin-1"))
89
89
 
90
90
 
91
- def _get_ip(asgi_scope: "Any") -> str:
91
+ def _get_ip(asgi_scope: "Any") -> "Optional[str]":
92
92
  """
93
93
  Extract IP Address from the ASGI scope based on request headers with fallback to scope client.
94
94
  """
@@ -103,7 +103,10 @@ def _get_ip(asgi_scope: "Any") -> str:
103
103
  except KeyError:
104
104
  pass
105
105
 
106
- return asgi_scope.get("client")[0]
106
+ if asgi_scope.get("client"):
107
+ return asgi_scope["client"][0]
108
+
109
+ return None
107
110
 
108
111
 
109
112
  def _get_request_data(
@@ -46,6 +46,7 @@ from sentry_sdk.utils import (
46
46
  AnnotatedValue,
47
47
  _get_aws_sigv4_signed_headers_from_authorization_header,
48
48
  _get_aws_sigv4_signed_headers_from_url_query_string,
49
+ _is_localhost,
49
50
  _register_control_flow_exception,
50
51
  capture_internal_exceptions,
51
52
  ensure_integration_enabled,
@@ -146,6 +147,21 @@ class AioHttpIntegration(Integration):
146
147
  scope.clear_breadcrumbs()
147
148
  scope.add_event_processor(_make_request_processor(weak_request))
148
149
 
150
+ scope.set_attribute(
151
+ SPANDATA.SENTRY_IS_LOCALHOST,
152
+ _is_localhost(
153
+ client_ip=_get_client_ip(request),
154
+ host_header=request.headers.get("Host"),
155
+ forwarded_host_header=request.headers.get(
156
+ "X-Forwarded-Host"
157
+ ),
158
+ ),
159
+ )
160
+
161
+ user_agent = request.headers.get("User-Agent")
162
+ if user_agent:
163
+ scope.set_attribute(SPANDATA.USER_AGENT_ORIGINAL, user_agent)
164
+
149
165
  headers = dict(request.headers)
150
166
 
151
167
  span_ctx: "ContextManager[Union[Span, StreamedSpan]]"
@@ -643,6 +659,17 @@ def _make_request_processor(
643
659
  return aiohttp_processor
644
660
 
645
661
 
662
+ def _get_client_ip(request: "Request") -> "Optional[str]":
663
+ x_forwarded_for = request.headers.get("X-Forwarded-For", "").split(",")[0].strip()
664
+ if x_forwarded_for:
665
+ return x_forwarded_for
666
+
667
+ if request.headers.get("X-Real-IP"):
668
+ return request.headers["X-Real-IP"]
669
+
670
+ return request.remote
671
+
672
+
646
673
  def _capture_exception() -> "ExcInfo":
647
674
  exc_info = sys.exc_info()
648
675
  event, hint = event_from_exception(
@@ -5,7 +5,6 @@ from functools import wraps
5
5
  from typing import TYPE_CHECKING, cast
6
6
 
7
7
  import sentry_sdk
8
- from sentry_sdk.ai.monitoring import record_token_usage
9
8
  from sentry_sdk.ai.utils import (
10
9
  GEN_AI_ALLOWED_MESSAGE_ROLES,
11
10
  get_start_span_function,
@@ -714,13 +713,23 @@ def _set_output_data(
714
713
  span, SPANDATA.GEN_AI_RESPONSE_TEXT, output_messages["response"]
715
714
  )
716
715
 
717
- record_token_usage(
718
- span,
719
- input_tokens=input_tokens,
720
- output_tokens=output_tokens,
721
- input_tokens_cached=cache_read_input_tokens,
722
- input_tokens_cache_write=cache_write_input_tokens,
723
- )
716
+ if input_tokens is not None:
717
+ set_on_span(SPANDATA.GEN_AI_USAGE_INPUT_TOKENS, input_tokens)
718
+
719
+ if cache_read_input_tokens is not None:
720
+ set_on_span(SPANDATA.GEN_AI_USAGE_INPUT_TOKENS_CACHED, cache_read_input_tokens)
721
+
722
+ if cache_write_input_tokens is not None:
723
+ set_on_span(
724
+ SPANDATA.GEN_AI_USAGE_INPUT_TOKENS_CACHE_WRITE,
725
+ cache_write_input_tokens,
726
+ )
727
+
728
+ if output_tokens is not None:
729
+ set_on_span(SPANDATA.GEN_AI_USAGE_OUTPUT_TOKENS, output_tokens)
730
+
731
+ if input_tokens is not None and output_tokens is not None:
732
+ set_on_span(SPANDATA.GEN_AI_USAGE_TOTAL_TOKENS, input_tokens + output_tokens)
724
733
 
725
734
 
726
735
  def _sentry_patched_create_sync(f: "Any", *args: "Any", **kwargs: "Any") -> "Any":
@@ -45,6 +45,7 @@ from sentry_sdk.utils import (
45
45
  HAS_REAL_CONTEXTVARS,
46
46
  ContextVar,
47
47
  _get_installed_modules,
48
+ _is_localhost,
48
49
  capture_internal_exceptions,
49
50
  event_from_exception,
50
51
  has_data_collection_enabled,
@@ -232,6 +233,24 @@ class SentryAsgiMiddleware:
232
233
  processor = partial(self.event_processor, asgi_scope=scope)
233
234
  sentry_scope.add_event_processor(processor)
234
235
 
236
+ headers = _get_headers(scope)
237
+ sentry_scope.set_attribute(
238
+ SPANDATA.SENTRY_IS_LOCALHOST,
239
+ _is_localhost(
240
+ client_ip=_get_ip(scope),
241
+ url_host=scope.get("server")[0]
242
+ if scope.get("server") and not headers.get("host")
243
+ else None,
244
+ host_header=headers.get("host"),
245
+ forwarded_host_header=headers.get("x-forwarded-host"),
246
+ ),
247
+ )
248
+
249
+ if headers.get("user-agent"):
250
+ sentry_scope.set_attribute(
251
+ SPANDATA.USER_AGENT_ORIGINAL, headers["user-agent"]
252
+ )
253
+
235
254
  ty = scope["type"]
236
255
  (
237
256
  transaction_name,
@@ -254,17 +273,16 @@ class SentryAsgiMiddleware:
254
273
  "network.protocol.name": ty,
255
274
  }
256
275
 
257
- if scope.get("client"):
276
+ ip = _get_ip(scope)
277
+ if ip:
258
278
  client_options = sentry_sdk.get_client().options
259
279
  if has_data_collection_enabled(client_options):
260
280
  if client_options["data_collection"]["user_info"]:
261
281
  sentry_scope.set_attribute(
262
- SPANDATA.USER_IP_ADDRESS, _get_ip(scope)
282
+ SPANDATA.USER_IP_ADDRESS, ip
263
283
  )
264
284
  elif should_send_default_pii():
265
- sentry_scope.set_attribute(
266
- SPANDATA.USER_IP_ADDRESS, _get_ip(scope)
267
- )
285
+ sentry_scope.set_attribute(SPANDATA.USER_IP_ADDRESS, ip)
268
286
 
269
287
  if ty in ("http", "websocket"):
270
288
  if (