sentry-sdk 2.63.0__tar.gz → 2.64.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 (511) hide show
  1. {sentry_sdk-2.63.0/sentry_sdk.egg-info → sentry_sdk-2.64.0}/PKG-INFO +1 -1
  2. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/client.py +7 -0
  3. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/consts.py +16 -2
  4. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/_asgi_common.py +42 -5
  5. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/aiohttp.py +15 -9
  6. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/asgi.py +42 -6
  7. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/asyncpg.py +14 -2
  8. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/boto3.py +2 -1
  9. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/clickhouse_driver.py +1 -0
  10. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/executing.py +2 -2
  11. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/httpx.py +3 -2
  12. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/httpx2.py +3 -2
  13. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/langchain.py +11 -4
  14. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/langgraph.py +5 -0
  15. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/litellm.py +18 -15
  16. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/mcp.py +264 -64
  17. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/pydantic_ai/spans/ai_client.py +7 -4
  18. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/pydantic_ai/spans/invoke_agent.py +7 -4
  19. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/pymongo.py +1 -0
  20. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/pyramid.py +9 -1
  21. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/pyreqwest.py +2 -1
  22. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/redis/_async_common.py +16 -1
  23. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/redis/_sync_common.py +16 -1
  24. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/sanic.py +5 -3
  25. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/starlette.py +9 -2
  26. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/stdlib.py +6 -5
  27. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/tornado.py +5 -3
  28. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/wsgi.py +10 -6
  29. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/scope.py +10 -0
  30. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/traces.py +1 -0
  31. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/tracing.py +1 -1
  32. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/tracing_utils.py +11 -3
  33. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/utils.py +20 -24
  34. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0/sentry_sdk.egg-info}/PKG-INFO +1 -1
  35. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/setup.py +1 -1
  36. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/conftest.py +117 -77
  37. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/aiohttp/test_aiohttp.py +45 -17
  38. sentry_sdk-2.64.0/tests/integrations/aiomysql/test_aiomysql.py +1154 -0
  39. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/anthropic/test_anthropic.py +6 -0
  40. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/asgi/test_asgi.py +1 -0
  41. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/asyncpg/test_asyncpg.py +138 -108
  42. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/boto3/test_s3.py +30 -20
  43. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/clickhouse_driver/test_clickhouse_driver.py +20 -1
  44. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/fastapi/test_fastapi.py +46 -0
  45. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/google_genai/test_google_genai.py +4 -0
  46. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/httpx/test_httpx.py +21 -7
  47. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/httpx2/test_httpx2.py +37 -0
  48. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/huggingface_hub/test_huggingface_hub.py +14 -0
  49. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/langchain/test_langchain.py +1 -0
  50. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/langgraph/test_langgraph.py +28 -0
  51. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/litellm/test_litellm.py +1 -0
  52. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/logging/test_logging.py +3 -0
  53. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/loguru/test_loguru.py +3 -1
  54. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/mcp/test_mcp.py +738 -136
  55. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/openai/test_openai.py +35 -74
  56. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/openai_agents/test_openai_agents.py +1 -0
  57. sentry_sdk-2.64.0/tests/integrations/opentelemetry/test_entry_points.py +26 -0
  58. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/pymongo/test_pymongo.py +4 -0
  59. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/pyramid/test_pyramid.py +45 -1
  60. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/pyreqwest/test_pyreqwest.py +39 -6
  61. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/quart/test_quart.py +2 -0
  62. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/redis/test_redis.py +31 -0
  63. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/redis/test_redis_cache_module.py +15 -0
  64. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/redis/test_redis_cache_module_async.py +4 -0
  65. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/requests/test_requests.py +2 -2
  66. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/rust_tracing/test_rust_tracing.py +22 -33
  67. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/sanic/test_sanic.py +15 -3
  68. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/starlette/test_starlette.py +49 -0
  69. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/stdlib/test_httplib.py +25 -11
  70. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/tornado/test_tornado.py +17 -4
  71. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/wsgi/test_wsgi.py +19 -4
  72. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/profiler/test_transaction_profiler.py +1 -1
  73. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/test_gevent.py +6 -8
  74. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/test_logs.py +16 -0
  75. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/test_metrics.py +8 -0
  76. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/test_transport.py +2 -4
  77. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/tracing/test_decorator.py +12 -0
  78. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/tracing/test_span_streaming.py +9 -0
  79. sentry_sdk-2.63.0/tests/integrations/aiomysql/test_aiomysql.py +0 -801
  80. sentry_sdk-2.63.0/tests/integrations/opentelemetry/test_entry_points.py +0 -18
  81. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/LICENSE +0 -0
  82. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/MANIFEST.in +0 -0
  83. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/README.md +0 -0
  84. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/pyproject.toml +0 -0
  85. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/__init__.py +0 -0
  86. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/_batcher.py +0 -0
  87. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/_compat.py +0 -0
  88. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/_init_implementation.py +0 -0
  89. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/_log_batcher.py +0 -0
  90. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/_lru_cache.py +0 -0
  91. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/_metrics_batcher.py +0 -0
  92. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/_queue.py +0 -0
  93. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/_span_batcher.py +0 -0
  94. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/_types.py +0 -0
  95. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/_werkzeug.py +0 -0
  96. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/ai/__init__.py +0 -0
  97. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/ai/_openai_completions_api.py +0 -0
  98. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/ai/_openai_responses_api.py +0 -0
  99. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/ai/consts.py +0 -0
  100. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/ai/monitoring.py +0 -0
  101. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/ai/utils.py +0 -0
  102. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/api.py +0 -0
  103. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/attachments.py +0 -0
  104. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/crons/__init__.py +0 -0
  105. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/crons/api.py +0 -0
  106. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/crons/consts.py +0 -0
  107. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/crons/decorator.py +0 -0
  108. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/debug.py +0 -0
  109. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/envelope.py +0 -0
  110. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/feature_flags.py +0 -0
  111. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/hub.py +0 -0
  112. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/__init__.py +0 -0
  113. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/_wsgi_common.py +0 -0
  114. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/aiomysql.py +0 -0
  115. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/anthropic.py +0 -0
  116. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/argv.py +0 -0
  117. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/ariadne.py +0 -0
  118. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/arq.py +0 -0
  119. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/asyncio.py +0 -0
  120. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/atexit.py +0 -0
  121. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/aws_lambda.py +0 -0
  122. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/beam.py +0 -0
  123. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/bottle.py +0 -0
  124. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/celery/__init__.py +0 -0
  125. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/celery/beat.py +0 -0
  126. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/celery/utils.py +0 -0
  127. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/chalice.py +0 -0
  128. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/cloud_resource_context.py +0 -0
  129. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/cohere.py +0 -0
  130. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/dedupe.py +0 -0
  131. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/django/__init__.py +0 -0
  132. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/django/asgi.py +0 -0
  133. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/django/caching.py +0 -0
  134. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/django/middleware.py +0 -0
  135. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/django/signals_handlers.py +0 -0
  136. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/django/tasks.py +0 -0
  137. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/django/templates.py +0 -0
  138. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/django/transactions.py +0 -0
  139. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/django/views.py +0 -0
  140. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/dramatiq.py +0 -0
  141. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/excepthook.py +0 -0
  142. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/falcon.py +0 -0
  143. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/fastapi.py +0 -0
  144. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/flask.py +0 -0
  145. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/gcp.py +0 -0
  146. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/gnu_backtrace.py +0 -0
  147. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/google_genai/__init__.py +0 -0
  148. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/google_genai/consts.py +0 -0
  149. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/google_genai/streaming.py +0 -0
  150. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/google_genai/utils.py +0 -0
  151. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/gql.py +0 -0
  152. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/graphene.py +0 -0
  153. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/grpc/__init__.py +0 -0
  154. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/grpc/aio/__init__.py +0 -0
  155. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/grpc/aio/client.py +0 -0
  156. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/grpc/aio/server.py +0 -0
  157. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/grpc/client.py +0 -0
  158. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/grpc/consts.py +0 -0
  159. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/grpc/server.py +0 -0
  160. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/huey.py +0 -0
  161. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/huggingface_hub.py +0 -0
  162. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/launchdarkly.py +0 -0
  163. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/litestar.py +0 -0
  164. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/logging.py +0 -0
  165. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/loguru.py +0 -0
  166. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/modules.py +0 -0
  167. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/openai.py +0 -0
  168. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/openai_agents/__init__.py +0 -0
  169. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/openai_agents/consts.py +0 -0
  170. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/openai_agents/patches/__init__.py +0 -0
  171. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/openai_agents/patches/agent_run.py +0 -0
  172. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/openai_agents/patches/error_tracing.py +0 -0
  173. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/openai_agents/patches/models.py +0 -0
  174. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/openai_agents/patches/runner.py +0 -0
  175. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/openai_agents/patches/tools.py +0 -0
  176. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/openai_agents/spans/__init__.py +0 -0
  177. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/openai_agents/spans/agent_workflow.py +0 -0
  178. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/openai_agents/spans/ai_client.py +0 -0
  179. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/openai_agents/spans/execute_tool.py +0 -0
  180. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/openai_agents/spans/handoff.py +0 -0
  181. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/openai_agents/spans/invoke_agent.py +0 -0
  182. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/openai_agents/utils.py +0 -0
  183. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/openfeature.py +0 -0
  184. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/opentelemetry/__init__.py +0 -0
  185. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/opentelemetry/consts.py +0 -0
  186. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/opentelemetry/integration.py +0 -0
  187. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/opentelemetry/propagator.py +0 -0
  188. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/opentelemetry/span_processor.py +0 -0
  189. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/otlp.py +0 -0
  190. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/pure_eval.py +0 -0
  191. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/pydantic_ai/__init__.py +0 -0
  192. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/pydantic_ai/consts.py +0 -0
  193. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/pydantic_ai/patches/__init__.py +0 -0
  194. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/pydantic_ai/patches/agent_run.py +0 -0
  195. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/pydantic_ai/patches/graph_nodes.py +0 -0
  196. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/pydantic_ai/patches/tools.py +0 -0
  197. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/pydantic_ai/spans/__init__.py +0 -0
  198. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/pydantic_ai/spans/execute_tool.py +0 -0
  199. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/pydantic_ai/spans/utils.py +0 -0
  200. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/pydantic_ai/utils.py +0 -0
  201. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/quart.py +0 -0
  202. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/ray.py +0 -0
  203. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/redis/__init__.py +0 -0
  204. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/redis/consts.py +0 -0
  205. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/redis/modules/__init__.py +0 -0
  206. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/redis/modules/caches.py +0 -0
  207. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/redis/modules/queries.py +0 -0
  208. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/redis/rb.py +0 -0
  209. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/redis/redis.py +0 -0
  210. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/redis/redis_cluster.py +0 -0
  211. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/redis/redis_py_cluster_legacy.py +0 -0
  212. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/redis/utils.py +0 -0
  213. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/rq.py +0 -0
  214. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/rust_tracing.py +0 -0
  215. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/serverless.py +0 -0
  216. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/socket.py +0 -0
  217. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/spark/__init__.py +0 -0
  218. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/spark/spark_driver.py +0 -0
  219. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/spark/spark_worker.py +0 -0
  220. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/sqlalchemy.py +0 -0
  221. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/starlite.py +0 -0
  222. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/statsig.py +0 -0
  223. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/strawberry.py +0 -0
  224. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/sys_exit.py +0 -0
  225. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/threading.py +0 -0
  226. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/trytond.py +0 -0
  227. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/typer.py +0 -0
  228. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/unleash.py +0 -0
  229. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/integrations/unraisablehook.py +0 -0
  230. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/logger.py +0 -0
  231. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/metrics.py +0 -0
  232. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/monitor.py +0 -0
  233. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/profiler/__init__.py +0 -0
  234. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/profiler/continuous_profiler.py +0 -0
  235. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/profiler/transaction_profiler.py +0 -0
  236. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/profiler/utils.py +0 -0
  237. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/py.typed +0 -0
  238. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/scrubber.py +0 -0
  239. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/serializer.py +0 -0
  240. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/session.py +0 -0
  241. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/sessions.py +0 -0
  242. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/spotlight.py +0 -0
  243. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/transport.py +0 -0
  244. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/types.py +0 -0
  245. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk/worker.py +0 -0
  246. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk.egg-info/SOURCES.txt +0 -0
  247. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk.egg-info/dependency_links.txt +0 -0
  248. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk.egg-info/entry_points.txt +0 -0
  249. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk.egg-info/not-zip-safe +0 -0
  250. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk.egg-info/requires.txt +0 -0
  251. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/sentry_sdk.egg-info/top_level.txt +0 -0
  252. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/setup.cfg +0 -0
  253. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/__init__.py +0 -0
  254. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/__init__.py +0 -0
  255. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/aiohttp/__init__.py +0 -0
  256. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/aiohttp/aiohttp_helpers/__init__.py +0 -0
  257. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/aiohttp/aiohttp_helpers/helpers.py +0 -0
  258. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/aiomysql/__init__.py +0 -0
  259. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/anthropic/__init__.py +0 -0
  260. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/argv/test_argv.py +0 -0
  261. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/ariadne/__init__.py +0 -0
  262. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/ariadne/test_ariadne.py +0 -0
  263. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/arq/__init__.py +0 -0
  264. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/arq/test_arq.py +0 -0
  265. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/asgi/__init__.py +0 -0
  266. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/asyncio/__init__.py +0 -0
  267. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/asyncio/test_asyncio.py +0 -0
  268. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/asyncpg/__init__.py +0 -0
  269. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/asyncpg/asyncpg_helpers/__init__.py +0 -0
  270. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/asyncpg/asyncpg_helpers/helpers.py +0 -0
  271. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/aws_lambda/__init__.py +0 -0
  272. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/aws_lambda/lambda_functions/BasicException/index.py +0 -0
  273. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/aws_lambda/lambda_functions/BasicOk/index.py +0 -0
  274. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/aws_lambda/lambda_functions/InitError/index.py +0 -0
  275. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/aws_lambda/lambda_functions/TimeoutError/index.py +0 -0
  276. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreaming/.gitignore +0 -0
  277. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreaming/index.py +0 -0
  278. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreamingPii/.gitignore +0 -0
  279. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreamingPii/index.py +0 -0
  280. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/RaiseErrorPerformanceDisabled/.gitignore +0 -0
  281. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/RaiseErrorPerformanceDisabled/index.py +0 -0
  282. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/RaiseErrorPerformanceEnabled/.gitignore +0 -0
  283. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/RaiseErrorPerformanceEnabled/index.py +0 -0
  284. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/RaiseErrorSpanStreaming/.gitignore +0 -0
  285. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/RaiseErrorSpanStreaming/index.py +0 -0
  286. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/TimeoutErrorScopeModified/.gitignore +0 -0
  287. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/TimeoutErrorScopeModified/index.py +0 -0
  288. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/TracesSampler/.gitignore +0 -0
  289. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/TracesSampler/index.py +0 -0
  290. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/aws_lambda/test_aws_lambda.py +0 -0
  291. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/aws_lambda/utils.py +0 -0
  292. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/beam/__init__.py +0 -0
  293. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/beam/test_beam.py +0 -0
  294. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/boto3/__init__.py +0 -0
  295. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/boto3/aws_mock.py +0 -0
  296. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/boto3/s3_list.xml +0 -0
  297. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/bottle/__init__.py +0 -0
  298. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/bottle/test_bottle.py +0 -0
  299. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/celery/__init__.py +0 -0
  300. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/celery/integration_tests/__init__.py +0 -0
  301. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/celery/integration_tests/test_celery_beat_cron_monitoring.py +0 -0
  302. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/celery/test_celery.py +0 -0
  303. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/celery/test_celery_beat_crons.py +0 -0
  304. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/celery/test_update_celery_task_headers.py +0 -0
  305. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/chalice/__init__.py +0 -0
  306. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/chalice/test_chalice.py +0 -0
  307. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/clickhouse_driver/__init__.py +0 -0
  308. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/cloud_resource_context/__init__.py +0 -0
  309. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/cloud_resource_context/test_cloud_resource_context.py +0 -0
  310. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/cohere/__init__.py +0 -0
  311. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/cohere/test_cohere.py +0 -0
  312. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/conftest.py +0 -0
  313. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/django/__init__.py +0 -0
  314. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/django/asgi/__init__.py +0 -0
  315. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/django/asgi/image.png +0 -0
  316. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/django/asgi/test_asgi.py +0 -0
  317. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/django/django_helpers/__init__.py +0 -0
  318. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/django/django_helpers/views.py +0 -0
  319. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/django/myapp/__init__.py +0 -0
  320. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/django/myapp/asgi.py +0 -0
  321. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/django/myapp/custom_urls.py +0 -0
  322. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/django/myapp/manage.py +0 -0
  323. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/django/myapp/management/__init__.py +0 -0
  324. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/django/myapp/management/commands/__init__.py +0 -0
  325. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/django/myapp/management/commands/mycrash.py +0 -0
  326. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/django/myapp/middleware.py +0 -0
  327. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/django/myapp/routing.py +0 -0
  328. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/django/myapp/settings.py +0 -0
  329. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/django/myapp/signals.py +0 -0
  330. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/django/myapp/templates/error.html +0 -0
  331. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/django/myapp/templates/trace_meta.html +0 -0
  332. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/django/myapp/templates/user_name.html +0 -0
  333. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/django/myapp/urls.py +0 -0
  334. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/django/myapp/views.py +0 -0
  335. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/django/myapp/wsgi.py +0 -0
  336. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/django/test_basic.py +0 -0
  337. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/django/test_cache_module.py +0 -0
  338. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/django/test_data_scrubbing.py +0 -0
  339. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/django/test_db_query_data.py +0 -0
  340. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/django/test_db_transactions.py +0 -0
  341. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/django/test_middleware.py +0 -0
  342. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/django/test_tasks.py +0 -0
  343. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/django/test_transactions.py +0 -0
  344. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/django/utils.py +0 -0
  345. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/dramatiq/__init__.py +0 -0
  346. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/dramatiq/test_dramatiq.py +0 -0
  347. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/excepthook/test_excepthook.py +0 -0
  348. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/falcon/__init__.py +0 -0
  349. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/falcon/test_falcon.py +0 -0
  350. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/fastapi/__init__.py +0 -0
  351. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/fastapi/photo.jpg +0 -0
  352. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/fastmcp/__init__.py +0 -0
  353. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/fastmcp/test_fastmcp.py +0 -0
  354. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/flask/__init__.py +0 -0
  355. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/flask/test_flask.py +0 -0
  356. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/gcp/__init__.py +0 -0
  357. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/gcp/test_gcp.py +0 -0
  358. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/google_genai/__init__.py +0 -0
  359. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/gql/__init__.py +0 -0
  360. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/gql/test_gql.py +0 -0
  361. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/graphene/__init__.py +0 -0
  362. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/graphene/test_graphene.py +0 -0
  363. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/grpc/__init__.py +0 -0
  364. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/grpc/compile_test_services.sh +0 -0
  365. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/grpc/grpc_test_service_pb2.py +0 -0
  366. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/grpc/grpc_test_service_pb2.pyi +0 -0
  367. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/grpc/grpc_test_service_pb2_grpc.py +0 -0
  368. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/grpc/protos/grpc_test_service.proto +0 -0
  369. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/grpc/test_grpc.py +0 -0
  370. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/grpc/test_grpc_aio.py +0 -0
  371. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/httpx/__init__.py +0 -0
  372. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/httpx/httpx_helpers/__init__.py +0 -0
  373. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/httpx/httpx_helpers/helpers.py +0 -0
  374. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/httpx2/__init__.py +0 -0
  375. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/httpx2/httpx2_helpers/__init__.py +0 -0
  376. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/httpx2/httpx2_helpers/helpers.py +0 -0
  377. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/huey/__init__.py +0 -0
  378. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/huey/test_huey.py +0 -0
  379. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/huggingface_hub/__init__.py +0 -0
  380. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/langchain/__init__.py +0 -0
  381. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/langgraph/__init__.py +0 -0
  382. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/launchdarkly/__init__.py +0 -0
  383. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/launchdarkly/test_launchdarkly.py +0 -0
  384. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/litellm/__init__.py +0 -0
  385. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/litestar/__init__.py +0 -0
  386. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/litestar/test_litestar.py +0 -0
  387. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/loguru/__init__.py +0 -0
  388. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/mcp/__init__.py +0 -0
  389. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/modules/test_modules.py +0 -0
  390. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/openai/__init__.py +0 -0
  391. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/openai_agents/__init__.py +0 -0
  392. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/openfeature/__init__.py +0 -0
  393. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/openfeature/test_openfeature.py +0 -0
  394. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/opentelemetry/__init__.py +0 -0
  395. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/opentelemetry/test_experimental.py +0 -0
  396. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/opentelemetry/test_propagator.py +0 -0
  397. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/opentelemetry/test_span_processor.py +0 -0
  398. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/otlp/__init__.py +0 -0
  399. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/otlp/test_otlp.py +0 -0
  400. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/pure_eval/__init__.py +0 -0
  401. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/pure_eval/test_pure_eval.py +0 -0
  402. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/pydantic_ai/__init__.py +0 -0
  403. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/pydantic_ai/test_pydantic_ai.py +0 -0
  404. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/pymongo/__init__.py +0 -0
  405. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/pyramid/__init__.py +0 -0
  406. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/pyreqwest/__init__.py +0 -0
  407. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/pyreqwest/pyreqwest_helpers/__init__.py +0 -0
  408. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/pyreqwest/pyreqwest_helpers/helpers.py +0 -0
  409. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/quart/__init__.py +0 -0
  410. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/ray/__init__.py +0 -0
  411. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/ray/test_ray.py +0 -0
  412. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/redis/__init__.py +0 -0
  413. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/redis/asyncio/__init__.py +0 -0
  414. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/redis/asyncio/test_redis_asyncio.py +0 -0
  415. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/redis/cluster/__init__.py +0 -0
  416. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/redis/cluster/test_redis_cluster.py +0 -0
  417. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/redis/cluster_asyncio/__init__.py +0 -0
  418. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/redis/cluster_asyncio/test_redis_cluster_asyncio.py +0 -0
  419. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/redis_py_cluster_legacy/__init__.py +0 -0
  420. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/redis_py_cluster_legacy/test_redis_py_cluster_legacy.py +0 -0
  421. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/requests/__init__.py +0 -0
  422. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/rq/__init__.py +0 -0
  423. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/rq/test_rq.py +0 -0
  424. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/rust_tracing/__init__.py +0 -0
  425. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/sanic/__init__.py +0 -0
  426. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/serverless/test_serverless.py +0 -0
  427. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/socket/__init__.py +0 -0
  428. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/socket/test_socket.py +0 -0
  429. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/spark/__init__.py +0 -0
  430. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/spark/test_spark.py +0 -0
  431. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/sqlalchemy/__init__.py +0 -0
  432. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/sqlalchemy/sqlalchemy_helpers/__init__.py +0 -0
  433. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/sqlalchemy/sqlalchemy_helpers/helpers.py +0 -0
  434. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/sqlalchemy/test_sqlalchemy.py +0 -0
  435. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/starlette/__init__.py +0 -0
  436. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/starlette/photo.jpg +0 -0
  437. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/starlette/templates/trace_meta.html +0 -0
  438. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/starlite/__init__.py +0 -0
  439. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/starlite/test_starlite.py +0 -0
  440. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/statsig/__init__.py +0 -0
  441. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/statsig/test_statsig.py +0 -0
  442. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/stdlib/__init__.py +0 -0
  443. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/stdlib/httplib_helpers/__init__.py +0 -0
  444. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/stdlib/httplib_helpers/helpers.py +0 -0
  445. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/stdlib/test_subprocess.py +0 -0
  446. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/strawberry/__init__.py +0 -0
  447. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/strawberry/test_strawberry.py +0 -0
  448. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/sys_exit/test_sys_exit.py +0 -0
  449. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/test_gnu_backtrace.py +0 -0
  450. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/threading/test_threading.py +0 -0
  451. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/tornado/__init__.py +0 -0
  452. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/trytond/__init__.py +0 -0
  453. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/trytond/test_trytond.py +0 -0
  454. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/typer/__init__.py +0 -0
  455. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/typer/test_typer.py +0 -0
  456. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/unleash/__init__.py +0 -0
  457. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/unleash/test_unleash.py +0 -0
  458. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/unleash/testutils.py +0 -0
  459. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/integrations/unraisablehook/test_unraisablehook.py +0 -0
  460. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/new_scopes_compat/__init__.py +0 -0
  461. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/new_scopes_compat/conftest.py +0 -0
  462. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/new_scopes_compat/test_new_scopes_compat.py +0 -0
  463. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/new_scopes_compat/test_new_scopes_compat_event.py +0 -0
  464. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/profiler/__init__.py +0 -0
  465. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/profiler/test_continuous_profiler.py +0 -0
  466. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/test.key +0 -0
  467. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/test.pem +0 -0
  468. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/test_ai_integration_deactivation.py +0 -0
  469. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/test_ai_monitoring.py +0 -0
  470. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/test_api.py +0 -0
  471. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/test_attributes.py +0 -0
  472. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/test_basics.py +0 -0
  473. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/test_client.py +0 -0
  474. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/test_conftest.py +0 -0
  475. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/test_crons.py +0 -0
  476. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/test_dsc.py +0 -0
  477. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/test_envelope.py +0 -0
  478. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/test_exceptiongroup.py +0 -0
  479. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/test_feature_flags.py +0 -0
  480. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/test_full_stack_frames.py +0 -0
  481. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/test_import.py +0 -0
  482. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/test_lru_cache.py +0 -0
  483. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/test_monitor.py +0 -0
  484. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/test_propagationcontext.py +0 -0
  485. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/test_scope.py +0 -0
  486. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/test_scrubber.py +0 -0
  487. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/test_serializer.py +0 -0
  488. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/test_sessions.py +0 -0
  489. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/test_shadowed_module.py +0 -0
  490. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/test_spotlight.py +0 -0
  491. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/test_tracing_utils.py +0 -0
  492. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/test_types.py +0 -0
  493. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/test_utils.py +0 -0
  494. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/tracing/test_baggage.py +0 -0
  495. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/tracing/test_deprecated.py +0 -0
  496. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/tracing/test_http_headers.py +0 -0
  497. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/tracing/test_ignore_status_codes.py +0 -0
  498. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/tracing/test_integration_tests.py +0 -0
  499. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/tracing/test_misc.py +0 -0
  500. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/tracing/test_noop_span.py +0 -0
  501. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/tracing/test_propagation.py +0 -0
  502. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/tracing/test_sample_rand.py +0 -0
  503. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/tracing/test_sample_rand_propagation.py +0 -0
  504. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/tracing/test_sampling.py +0 -0
  505. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/tracing/test_span_batcher.py +0 -0
  506. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/tracing/test_span_name.py +0 -0
  507. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/tracing/test_span_origin.py +0 -0
  508. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/utils/__init__.py +0 -0
  509. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/utils/test_contextvars.py +0 -0
  510. {sentry_sdk-2.63.0 → sentry_sdk-2.64.0}/tests/utils/test_general.py +0 -0
  511. {sentry_sdk-2.63.0 → sentry_sdk-2.64.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.63.0
3
+ Version: 2.64.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
@@ -1,7 +1,9 @@
1
1
  import json
2
2
  import os
3
+ import platform
3
4
  import random
4
5
  import socket
6
+ import sys
5
7
  import uuid
6
8
  import warnings
7
9
  from collections.abc import Iterable, Mapping
@@ -241,6 +243,11 @@ def _serialized_v1_span_to_serialized_v2_span(
241
243
  if "version" in sdk_info:
242
244
  attributes["sentry.sdk.version"] = sdk_info["version"]
243
245
 
246
+ attributes["process.runtime.name"] = platform.python_implementation()
247
+ attributes["process.runtime.version"] = (
248
+ f"{sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro}"
249
+ )
250
+
244
251
  if not attributes:
245
252
  return res
246
253
 
@@ -518,6 +518,12 @@ class SPANDATA:
518
518
  Example: postgresql
519
519
  """
520
520
 
521
+ DB_QUERY_TEXT = "db.query.text"
522
+ """
523
+ The database query being executed.
524
+ Example: "SELECT * FROM users WHERE id = $1"
525
+ """
526
+
521
527
  DB_SYSTEM_NAME = "db.system.name"
522
528
  """
523
529
  An identifier for the database management system (DBMS) product being used. See OpenTelemetry's list of well-known DBMS identifiers.
@@ -1014,6 +1020,12 @@ class SPANDATA:
1014
1020
  Example: "details"
1015
1021
  """
1016
1022
 
1023
+ URL_PATH = "url.path"
1024
+ """
1025
+ The URI path component.
1026
+ Example: "/foo"
1027
+ """
1028
+
1017
1029
  URL_QUERY = "url.query"
1018
1030
  """
1019
1031
  The query string present in the URL. Note that this does not contain the leading ? character, while the `http.query` attribute does.
@@ -1180,6 +1192,8 @@ class OP:
1180
1192
  COHERE_CHAT_COMPLETIONS_CREATE = "ai.chat_completions.create.cohere"
1181
1193
  COHERE_EMBEDDINGS_CREATE = "ai.embeddings.create.cohere"
1182
1194
  DB = "db"
1195
+ DB_CURSOR_ITERATOR = "db.cursor.iter"
1196
+ DB_CURSOR_FETCH = "db.cursor.fetch"
1183
1197
  DB_REDIS = "db.redis"
1184
1198
  EVENT_DJANGO = "event.django"
1185
1199
  FUNCTION = "function"
@@ -1320,7 +1334,7 @@ class ClientConstructor:
1320
1334
  before_send_metric: "Optional[Callable[[Metric, Hint], Optional[Metric]]]" = None,
1321
1335
  org_id: "Optional[str]" = None,
1322
1336
  strict_trace_continuation: bool = False,
1323
- stream_gen_ai_spans: bool = False,
1337
+ stream_gen_ai_spans: bool = True,
1324
1338
  ) -> None:
1325
1339
  """Initialize the Sentry SDK with the given parameters. All parameters described here can be used in a call to `sentry_sdk.init()`.
1326
1340
 
@@ -1765,4 +1779,4 @@ DEFAULT_OPTIONS = _get_default_options()
1765
1779
  del _get_default_options
1766
1780
 
1767
1781
 
1768
- VERSION = "2.63.0"
1782
+ VERSION = "2.64.0"
@@ -1,4 +1,5 @@
1
1
  import urllib
2
+ from enum import Enum
2
3
  from typing import TYPE_CHECKING
3
4
 
4
5
  from sentry_sdk.integrations._wsgi_common import _filter_headers
@@ -12,6 +13,11 @@ if TYPE_CHECKING:
12
13
  from sentry_sdk.utils import AnnotatedValue
13
14
 
14
15
 
16
+ class _RootPathInPath(Enum):
17
+ EXCLUDED = "excluded"
18
+ EITHER = "either"
19
+
20
+
15
21
  def _get_headers(asgi_scope: "Any") -> "Dict[str, str]":
16
22
  """
17
23
  Extract headers from the ASGI scope, in the format that the Sentry protocol expects.
@@ -28,10 +34,27 @@ def _get_headers(asgi_scope: "Any") -> "Dict[str, str]":
28
34
  return headers
29
35
 
30
36
 
37
+ def _get_path(
38
+ asgi_scope: "Dict[str, Any]", root_path_in_path: "_RootPathInPath"
39
+ ) -> "str":
40
+ if root_path_in_path is _RootPathInPath.EXCLUDED:
41
+ return asgi_scope.get("root_path", "") + asgi_scope.get("path", "")
42
+
43
+ # Inverse of https://github.com/Kludex/starlette/blob/de970d7b3facb853eb7ad077decbf3d94f2aab6c/starlette/_utils.py#L96
44
+ path = asgi_scope["path"]
45
+ root_path = asgi_scope.get("root_path", "")
46
+
47
+ if not root_path or path == root_path or path.startswith(root_path + "/"):
48
+ return path
49
+
50
+ return root_path + path
51
+
52
+
31
53
  def _get_url(
32
54
  asgi_scope: "Dict[str, Any]",
33
55
  default_scheme: "Literal['ws', 'http']",
34
56
  host: "Optional[Union[AnnotatedValue, str]]",
57
+ path: str,
35
58
  ) -> str:
36
59
  """
37
60
  Extract URL from the ASGI scope, without also including the querystring.
@@ -39,7 +62,6 @@ def _get_url(
39
62
  scheme = asgi_scope.get("scheme", default_scheme)
40
63
 
41
64
  server = asgi_scope.get("server", None)
42
- path = asgi_scope.get("root_path", "") + asgi_scope.get("path", "")
43
65
 
44
66
  if host:
45
67
  return "%s://%s%s" % (scheme, host, path)
@@ -81,7 +103,10 @@ def _get_ip(asgi_scope: "Any") -> str:
81
103
  return asgi_scope.get("client")[0]
82
104
 
83
105
 
84
- def _get_request_data(asgi_scope: "Any") -> "Dict[str, Any]":
106
+ def _get_request_data(
107
+ asgi_scope: "Any",
108
+ root_path_in_path: "_RootPathInPath",
109
+ ) -> "Dict[str, Any]":
85
110
  """
86
111
  Returns data related to the HTTP request from the ASGI scope.
87
112
  """
@@ -96,7 +121,10 @@ def _get_request_data(asgi_scope: "Any") -> "Dict[str, Any]":
96
121
  request_data["query_string"] = _get_query(asgi_scope)
97
122
 
98
123
  request_data["url"] = _get_url(
99
- asgi_scope, "http" if ty == "http" else "ws", headers.get("host")
124
+ asgi_scope,
125
+ "http" if ty == "http" else "ws",
126
+ headers.get("host"),
127
+ path=_get_path(asgi_scope=asgi_scope, root_path_in_path=root_path_in_path),
100
128
  )
101
129
 
102
130
  client = asgi_scope.get("client")
@@ -106,7 +134,10 @@ def _get_request_data(asgi_scope: "Any") -> "Dict[str, Any]":
106
134
  return request_data
107
135
 
108
136
 
109
- def _get_request_attributes(asgi_scope: "Any") -> "dict[str, Any]":
137
+ def _get_request_attributes(
138
+ asgi_scope: "Any",
139
+ root_path_in_path: "_RootPathInPath",
140
+ ) -> "dict[str, Any]":
110
141
  """
111
142
  Return attributes related to the HTTP request from the ASGI scope.
112
143
  """
@@ -126,8 +157,14 @@ def _get_request_attributes(asgi_scope: "Any") -> "dict[str, Any]":
126
157
  if query:
127
158
  attributes["http.query"] = query
128
159
 
160
+ path = _get_path(asgi_scope=asgi_scope, root_path_in_path=root_path_in_path)
161
+ attributes["url.path"] = path
162
+
129
163
  url_without_query_string = _get_url(
130
- asgi_scope, "http" if ty == "http" else "ws", headers.get("host")
164
+ asgi_scope,
165
+ "http" if ty == "http" else "ws",
166
+ headers.get("host"),
167
+ path=path,
131
168
  )
132
169
  query_string = _get_query(asgi_scope)
133
170
  attributes["url.full"] = (
@@ -159,11 +159,17 @@ class AioHttpIntegration(Integration):
159
159
  header_value
160
160
  )
161
161
 
162
- url_query_attribute = (
163
- {"url.query": request.query_string}
164
- if request.query_string
165
- else {}
166
- )
162
+ url_attributes = {}
163
+ if should_send_default_pii():
164
+ url_attributes["url.full"] = "%s://%s%s" % (
165
+ request.scheme,
166
+ request.host,
167
+ request.path,
168
+ )
169
+ url_attributes["url.path"] = request.path
170
+
171
+ if request.query_string:
172
+ url_attributes["url.query"] = request.query_string
167
173
 
168
174
  client_address_attributes = {}
169
175
  if should_send_default_pii() and request.remote:
@@ -180,10 +186,8 @@ class AioHttpIntegration(Integration):
180
186
  "sentry.op": OP.HTTP_SERVER,
181
187
  "sentry.origin": AioHttpIntegration.origin,
182
188
  "sentry.span.source": SegmentSource.ROUTE.value,
183
- "url.full": "%s://%s%s"
184
- % (request.scheme, request.host, request.path),
185
189
  "http.request.method": request.method,
186
- **url_query_attribute,
190
+ **url_attributes,
187
191
  **client_address_attributes,
188
192
  **header_attributes,
189
193
  },
@@ -354,8 +358,10 @@ def create_trace_config() -> "TraceConfig":
354
358
  "sentry.origin": AioHttpIntegration.origin,
355
359
  "http.request.method": method,
356
360
  }
357
- if parsed_url is not None:
361
+ if parsed_url is not None and should_send_default_pii():
358
362
  attributes["url.full"] = parsed_url.url
363
+ attributes["url.path"] = params.url.path
364
+
359
365
  if parsed_url.query:
360
366
  attributes["url.query"] = parsed_url.query
361
367
  if parsed_url.fragment:
@@ -16,9 +16,11 @@ from sentry_sdk.consts import OP, SPANDATA
16
16
  from sentry_sdk.integrations._asgi_common import (
17
17
  _get_headers,
18
18
  _get_ip,
19
+ _get_path,
19
20
  _get_request_attributes,
20
21
  _get_request_data,
21
22
  _get_url,
23
+ _RootPathInPath,
22
24
  )
23
25
  from sentry_sdk.integrations._wsgi_common import (
24
26
  DEFAULT_HTTP_METHODS_TO_CAPTURE,
@@ -105,6 +107,7 @@ class SentryAsgiMiddleware:
105
107
  "mechanism_type",
106
108
  "span_origin",
107
109
  "http_methods_to_capture",
110
+ "root_path_in_path",
108
111
  )
109
112
 
110
113
  def __init__(
@@ -116,6 +119,7 @@ class SentryAsgiMiddleware:
116
119
  span_origin: str = "manual",
117
120
  http_methods_to_capture: "Tuple[str, ...]" = DEFAULT_HTTP_METHODS_TO_CAPTURE,
118
121
  asgi_version: "Optional[int]" = None,
122
+ root_path_in_path: "_RootPathInPath" = _RootPathInPath.EXCLUDED,
119
123
  ) -> None:
120
124
  """
121
125
  Instrument an ASGI application with Sentry. Provides HTTP/websocket
@@ -152,6 +156,7 @@ class SentryAsgiMiddleware:
152
156
  self.span_origin = span_origin
153
157
  self.app = app
154
158
  self.http_methods_to_capture = http_methods_to_capture
159
+ self.root_path_in_path = root_path_in_path
155
160
 
156
161
  if asgi_version is None:
157
162
  if _looks_like_asgi3(app):
@@ -319,7 +324,8 @@ class SentryAsgiMiddleware:
319
324
  with span_ctx as span:
320
325
  if isinstance(span, StreamedSpan):
321
326
  for attribute, value in _get_request_attributes(
322
- scope
327
+ scope,
328
+ root_path_in_path=self.root_path_in_path,
323
329
  ).items():
324
330
  span.set_attribute(attribute, value)
325
331
 
@@ -401,7 +407,9 @@ class SentryAsgiMiddleware:
401
407
  self, event: "Event", hint: "Hint", asgi_scope: "Any"
402
408
  ) -> "Optional[Event]":
403
409
  request_data = event.get("request", {})
404
- request_data.update(_get_request_data(asgi_scope))
410
+ request_data.update(
411
+ _get_request_data(asgi_scope, root_path_in_path=self.root_path_in_path)
412
+ )
405
413
  event["request"] = deepcopy(request_data)
406
414
 
407
415
  # Only set transaction name if not already set by Starlette or FastAPI (or other frameworks)
@@ -447,7 +455,14 @@ class SentryAsgiMiddleware:
447
455
  if endpoint:
448
456
  name = transaction_from_function(endpoint) or ""
449
457
  else:
450
- name = _get_url(asgi_scope, "http" if ty == "http" else "ws", host=None)
458
+ name = _get_url(
459
+ asgi_scope,
460
+ "http" if ty == "http" else "ws",
461
+ host=None,
462
+ path=_get_path(
463
+ asgi_scope=asgi_scope, root_path_in_path=self.root_path_in_path
464
+ ),
465
+ )
451
466
  source = TransactionSource.URL
452
467
 
453
468
  elif transaction_style == "url":
@@ -459,7 +474,14 @@ class SentryAsgiMiddleware:
459
474
  if path is not None:
460
475
  name = path
461
476
  else:
462
- name = _get_url(asgi_scope, "http" if ty == "http" else "ws", host=None)
477
+ name = _get_url(
478
+ asgi_scope,
479
+ "http" if ty == "http" else "ws",
480
+ host=None,
481
+ path=_get_path(
482
+ asgi_scope=asgi_scope, root_path_in_path=self.root_path_in_path
483
+ ),
484
+ )
463
485
  source = TransactionSource.URL
464
486
 
465
487
  if name is None:
@@ -484,7 +506,14 @@ class SentryAsgiMiddleware:
484
506
  if endpoint:
485
507
  name = qualname_from_function(endpoint) or ""
486
508
  else:
487
- name = _get_url(asgi_scope, "http" if ty == "http" else "ws", host=None)
509
+ name = _get_url(
510
+ asgi_scope,
511
+ "http" if ty == "http" else "ws",
512
+ host=None,
513
+ path=_get_path(
514
+ asgi_scope=asgi_scope, root_path_in_path=self.root_path_in_path
515
+ ),
516
+ )
488
517
  source = SegmentSource.URL.value
489
518
 
490
519
  elif segment_style == "url":
@@ -496,7 +525,14 @@ class SentryAsgiMiddleware:
496
525
  if path is not None:
497
526
  name = path
498
527
  else:
499
- name = _get_url(asgi_scope, "http" if ty == "http" else "ws", host=None)
528
+ name = _get_url(
529
+ asgi_scope,
530
+ "http" if ty == "http" else "ws",
531
+ host=None,
532
+ path=_get_path(
533
+ asgi_scope=asgi_scope, root_path_in_path=self.root_path_in_path
534
+ ),
535
+ )
500
536
  source = SegmentSource.URL.value
501
537
 
502
538
  if name is None:
@@ -20,8 +20,12 @@ from sentry_sdk.utils import (
20
20
  )
21
21
 
22
22
  try:
23
- import asyncpg # type: ignore[import-not-found]
24
- from asyncpg.cursor import BaseCursor # type: ignore
23
+ import asyncpg # type: ignore
24
+ from asyncpg.cursor import ( # type: ignore
25
+ BaseCursor,
26
+ Cursor,
27
+ CursorIterator,
28
+ )
25
29
 
26
30
  except ImportError:
27
31
  raise DidNotEnable("asyncpg not installed.")
@@ -169,6 +173,13 @@ def _wrap_cursor_method(
169
173
  return await f(*args, **kwargs)
170
174
 
171
175
  cursor = args[0]
176
+ if type(cursor) is CursorIterator:
177
+ span_op_override_value = OP.DB_CURSOR_ITERATOR
178
+ elif type(cursor) is Cursor:
179
+ span_op_override_value = OP.DB_CURSOR_FETCH
180
+ else:
181
+ span_op_override_value = None
182
+
172
183
  query = _normalize_query(cursor._query)
173
184
  with record_sql_queries(
174
185
  cursor=cursor,
@@ -178,6 +189,7 @@ def _wrap_cursor_method(
178
189
  executemany=False,
179
190
  record_cursor_repr=True,
180
191
  span_origin=AsyncPGIntegration.origin,
192
+ span_op_override_value=span_op_override_value,
181
193
  ) as span:
182
194
  _set_db_data(span, cursor._connection)
183
195
  res = await f(*args, **kwargs)
@@ -4,6 +4,7 @@ from typing import TYPE_CHECKING
4
4
  import sentry_sdk
5
5
  from sentry_sdk.consts import OP, SPANDATA
6
6
  from sentry_sdk.integrations import DidNotEnable, Integration, _check_minimum_version
7
+ from sentry_sdk.scope import should_send_default_pii
7
8
  from sentry_sdk.traces import StreamedSpan
8
9
  from sentry_sdk.tracing import Span
9
10
  from sentry_sdk.tracing_utils import has_span_streaming_enabled
@@ -74,7 +75,7 @@ def _sentry_request_created(
74
75
  SPANDATA.RPC_METHOD: f"{service_id}/{operation_name}",
75
76
  },
76
77
  )
77
- if request.url is not None:
78
+ if request.url is not None and should_send_default_pii():
78
79
  with capture_internal_exceptions():
79
80
  parsed_url = parse_url(request.url, sanitize=False)
80
81
  span.set_attribute(SPANDATA.URL_FULL, parsed_url.url)
@@ -90,6 +90,7 @@ def _wrap_start(f: "Callable[P, T]") -> "Callable[P, T]":
90
90
  attributes={
91
91
  "sentry.op": OP.DB,
92
92
  "sentry.origin": ClickhouseDriverIntegration.origin,
93
+ SPANDATA.DB_QUERY_TEXT: str(query),
93
94
  },
94
95
  )
95
96
  else:
@@ -11,7 +11,7 @@ if TYPE_CHECKING:
11
11
  from sentry_sdk._types import Event, Hint
12
12
 
13
13
  try:
14
- import executing
14
+ from executing import Source
15
15
  except ImportError:
16
16
  raise DidNotEnable("executing is not installed")
17
17
 
@@ -60,7 +60,7 @@ class ExecutingIntegration(Integration):
60
60
 
61
61
  for sentry_frame, tb in zip(sentry_frames, tbs):
62
62
  frame = tb.tb_frame
63
- source = executing.Source.for_frame(frame)
63
+ source = Source.for_frame(frame)
64
64
  sentry_frame["function"] = source.code_qualname(frame.f_code)
65
65
 
66
66
  return event
@@ -3,6 +3,7 @@ from typing import TYPE_CHECKING
3
3
  import sentry_sdk
4
4
  from sentry_sdk.consts import OP, SPANDATA
5
5
  from sentry_sdk.integrations import DidNotEnable, Integration
6
+ from sentry_sdk.scope import should_send_default_pii
6
7
  from sentry_sdk.tracing import BAGGAGE_HEADER_NAME
7
8
  from sentry_sdk.tracing_utils import (
8
9
  add_http_request_source,
@@ -73,7 +74,7 @@ def _install_httpx_client() -> None:
73
74
  ) as streamed_span:
74
75
  attributes: "Attributes" = {}
75
76
 
76
- if parsed_url is not None:
77
+ if parsed_url is not None and should_send_default_pii():
77
78
  attributes["url.full"] = parsed_url.url
78
79
  if parsed_url.query:
79
80
  attributes["url.query"] = parsed_url.query
@@ -183,7 +184,7 @@ def _install_httpx_async_client() -> None:
183
184
  ) as streamed_span:
184
185
  attributes: "Attributes" = {}
185
186
 
186
- if parsed_url is not None:
187
+ if parsed_url is not None and should_send_default_pii():
187
188
  attributes["url.full"] = parsed_url.url
188
189
  if parsed_url.query:
189
190
  attributes["url.query"] = parsed_url.query
@@ -3,6 +3,7 @@ from typing import TYPE_CHECKING
3
3
  import sentry_sdk
4
4
  from sentry_sdk.consts import OP, SPANDATA
5
5
  from sentry_sdk.integrations import DidNotEnable, Integration
6
+ from sentry_sdk.scope import should_send_default_pii
6
7
  from sentry_sdk.tracing import BAGGAGE_HEADER_NAME
7
8
  from sentry_sdk.tracing_utils import (
8
9
  add_http_request_source,
@@ -73,7 +74,7 @@ def _install_httpx2_client() -> None:
73
74
  ) as streamed_span:
74
75
  attributes: "Attributes" = {}
75
76
 
76
- if parsed_url is not None:
77
+ if parsed_url is not None and should_send_default_pii():
77
78
  attributes["url.full"] = parsed_url.url
78
79
  if parsed_url.query:
79
80
  attributes["url.query"] = parsed_url.query
@@ -183,7 +184,7 @@ def _install_httpx2_async_client() -> None:
183
184
  ) as streamed_span:
184
185
  attributes: "Attributes" = {}
185
186
 
186
- if parsed_url is not None:
187
+ if parsed_url is not None and should_send_default_pii():
187
188
  attributes["url.full"] = parsed_url.url
188
189
  if parsed_url.query:
189
190
  attributes["url.query"] = parsed_url.query
@@ -210,6 +210,8 @@ class LangchainIntegration(Integration):
210
210
  identifier = "langchain"
211
211
  origin = f"auto.ai.{identifier}"
212
212
 
213
+ _ignored_exceptions: "set[type[Exception]]" = set()
214
+
213
215
  def __init__(
214
216
  self: "LangchainIntegration",
215
217
  include_prompts: bool = True,
@@ -262,17 +264,22 @@ class SentryLangchainCallback(BaseCallbackHandler): # type: ignore[misc]
262
264
  self._exit_span(span, run_id)
263
265
 
264
266
  def _handle_error(self, run_id: "UUID", error: "Any") -> None:
267
+ is_ignored = isinstance(error, tuple(LangchainIntegration._ignored_exceptions))
268
+
265
269
  with capture_internal_exceptions():
266
270
  if not run_id or run_id not in self.span_map:
267
271
  return
268
272
 
269
273
  span = self.span_map[run_id]
270
274
 
271
- sentry_sdk.capture_exception(
272
- error, span._scope if isinstance(span, StreamedSpan) else span.scope
273
- )
275
+ if is_ignored:
276
+ span.__exit__(None, None, None)
277
+ else:
278
+ sentry_sdk.capture_exception(
279
+ error, span._scope if isinstance(span, StreamedSpan) else span.scope
280
+ )
281
+ span.__exit__(type(error), error, error.__traceback__)
274
282
 
275
- span.__exit__(type(error), error, error.__traceback__)
276
283
  del self.span_map[run_id]
277
284
 
278
285
  def _normalize_langchain_message(self, message: "BaseMessage") -> "Any":
@@ -10,6 +10,9 @@ from sentry_sdk.ai.utils import (
10
10
  )
11
11
  from sentry_sdk.consts import OP, SPANDATA
12
12
  from sentry_sdk.integrations import DidNotEnable, Integration
13
+
14
+ # This is fine because langgraph depends on langchain-base, and LangchainIntegration only imports from langchain-base.
15
+ from sentry_sdk.integrations.langchain import LangchainIntegration
13
16
  from sentry_sdk.scope import should_send_default_pii
14
17
  from sentry_sdk.traces import StreamedSpan
15
18
  from sentry_sdk.tracing_utils import (
@@ -19,6 +22,7 @@ from sentry_sdk.tracing_utils import (
19
22
  from sentry_sdk.utils import safe_serialize
20
23
 
21
24
  try:
25
+ from langgraph.errors import GraphBubbleUp
22
26
  from langgraph.graph import StateGraph
23
27
  from langgraph.pregel import Pregel
24
28
  except ImportError:
@@ -34,6 +38,7 @@ class LanggraphIntegration(Integration):
34
38
 
35
39
  @staticmethod
36
40
  def setup_once() -> None:
41
+ LangchainIntegration._ignored_exceptions.add(GraphBubbleUp)
37
42
  # LangGraph lets users create agents using a StateGraph or the Functional API.
38
43
  # StateGraphs are then compiled to a CompiledStateGraph. Both CompiledStateGraph and
39
44
  # the functional API execute on a Pregel instance. Pregel is the runtime for the graph
@@ -31,16 +31,21 @@ except ImportError:
31
31
  raise DidNotEnable("LiteLLM not installed")
32
32
 
33
33
 
34
- def _get_metadata_dict(kwargs: "Dict[str, Any]") -> "Dict[str, Any]":
35
- """Get the metadata dictionary from the kwargs."""
36
- litellm_params = kwargs.setdefault("litellm_params", {})
34
+ # Stash the span on a top-level key of the per-request kwargs dict litellm passes
35
+ # to every callback, so it lives and dies with the request.
36
+ _SPAN_KEY = "_sentry_span"
37
37
 
38
- # we need this weird little dance, as metadata might be set but may be None initially
39
- metadata = litellm_params.get("metadata")
40
- if metadata is None:
41
- metadata = {}
42
- litellm_params["metadata"] = metadata
43
- return metadata
38
+
39
+ def _store_span(kwargs: "Dict[str, Any]", span: "Any") -> None:
40
+ kwargs[_SPAN_KEY] = span
41
+
42
+
43
+ def _peek_span(kwargs: "Dict[str, Any]") -> "Any":
44
+ return kwargs.get(_SPAN_KEY)
45
+
46
+
47
+ def _pop_span(kwargs: "Dict[str, Any]") -> "Any":
48
+ return kwargs.pop(_SPAN_KEY, None)
44
49
 
45
50
 
46
51
  def _convert_message_parts(messages: "List[Dict[str, Any]]") -> "List[Dict[str, Any]]":
@@ -117,8 +122,7 @@ def _input_callback(kwargs: "Dict[str, Any]") -> None:
117
122
  )
118
123
  span.__enter__()
119
124
 
120
- # Store span for later
121
- _get_metadata_dict(kwargs)["_sentry_span"] = span
125
+ _store_span(kwargs, span)
122
126
 
123
127
  # Set basic data
124
128
  set_data_normalized(span, SPANDATA.GEN_AI_SYSTEM, provider)
@@ -198,8 +202,7 @@ def _success_callback(
198
202
  ) -> None:
199
203
  """Handle successful completion."""
200
204
 
201
- metadata = _get_metadata_dict(kwargs)
202
- span = metadata.get("_sentry_span")
205
+ span = _peek_span(kwargs)
203
206
  if span is None:
204
207
  return
205
208
 
@@ -259,7 +262,7 @@ def _success_callback(
259
262
  or "complete_streaming_response" in kwargs
260
263
  or "async_complete_streaming_response" in kwargs
261
264
  ):
262
- span = metadata.pop("_sentry_span", None)
265
+ span = _pop_span(kwargs)
263
266
  if span is not None:
264
267
  span.__exit__(None, None, None)
265
268
 
@@ -285,7 +288,7 @@ def _failure_callback(
285
288
  end_time: "datetime",
286
289
  ) -> None:
287
290
  """Handle request failure."""
288
- span = _get_metadata_dict(kwargs).get("_sentry_span")
291
+ span = _pop_span(kwargs)
289
292
  if span is None:
290
293
  return
291
294