sentry-sdk 2.63.0__tar.gz → 2.65.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 (517) hide show
  1. {sentry_sdk-2.63.0/sentry_sdk.egg-info → sentry_sdk-2.65.0}/PKG-INFO +6 -1
  2. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/README.md +5 -0
  3. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/pyproject.toml +9 -0
  4. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/_types.py +54 -1
  5. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/client.py +29 -3
  6. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/consts.py +37 -3
  7. sentry_sdk-2.65.0/sentry_sdk/data_collection.py +261 -0
  8. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/_asgi_common.py +42 -5
  9. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/aiohttp.py +15 -9
  10. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/arq.py +8 -2
  11. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/asgi.py +42 -6
  12. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/asyncpg.py +14 -2
  13. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/boto3.py +2 -1
  14. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/clickhouse_driver.py +1 -0
  15. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/django/middleware.py +32 -7
  16. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/dramatiq.py +5 -1
  17. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/executing.py +2 -2
  18. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/httpx.py +3 -2
  19. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/httpx2.py +3 -2
  20. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/huey.py +5 -1
  21. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/langchain.py +11 -4
  22. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/langgraph.py +5 -0
  23. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/litellm.py +18 -15
  24. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/mcp.py +274 -74
  25. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/pydantic_ai/spans/ai_client.py +7 -4
  26. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/pydantic_ai/spans/invoke_agent.py +7 -4
  27. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/pymongo.py +1 -0
  28. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/pyramid.py +9 -1
  29. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/pyreqwest.py +2 -1
  30. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/redis/_async_common.py +16 -1
  31. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/redis/_sync_common.py +16 -1
  32. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/rq.py +8 -5
  33. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/sanic.py +5 -3
  34. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/starlette.py +39 -25
  35. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/starlite.py +1 -1
  36. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/stdlib.py +6 -5
  37. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/tornado.py +5 -3
  38. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/wsgi.py +10 -6
  39. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/scope.py +47 -9
  40. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/traces.py +35 -16
  41. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/tracing.py +1 -1
  42. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/tracing_utils.py +47 -17
  43. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/utils.py +27 -24
  44. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0/sentry_sdk.egg-info}/PKG-INFO +6 -1
  45. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk.egg-info/SOURCES.txt +3 -0
  46. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/setup.py +1 -1
  47. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/conftest.py +118 -77
  48. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/aiohttp/test_aiohttp.py +45 -17
  49. sentry_sdk-2.65.0/tests/integrations/aiomysql/test_aiomysql.py +1154 -0
  50. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/anthropic/test_anthropic.py +6 -0
  51. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/arq/test_arq.py +9 -0
  52. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/asgi/test_asgi.py +1 -0
  53. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/asyncpg/test_asyncpg.py +138 -108
  54. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/boto3/test_s3.py +30 -20
  55. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/clickhouse_driver/test_clickhouse_driver.py +20 -1
  56. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/django/asgi/test_asgi.py +47 -0
  57. sentry_sdk-2.65.0/tests/integrations/django/myapp/middleware.py +81 -0
  58. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/dramatiq/test_dramatiq.py +9 -1
  59. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/fastapi/test_fastapi.py +46 -0
  60. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/google_genai/test_google_genai.py +4 -0
  61. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/httpx/test_httpx.py +21 -7
  62. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/httpx2/test_httpx2.py +37 -0
  63. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/huey/test_huey.py +12 -1
  64. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/huggingface_hub/test_huggingface_hub.py +14 -0
  65. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/langchain/test_langchain.py +3 -0
  66. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/langgraph/test_langgraph.py +28 -0
  67. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/litellm/test_litellm.py +1 -0
  68. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/logging/test_logging.py +3 -0
  69. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/loguru/test_loguru.py +3 -1
  70. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/mcp/test_mcp.py +738 -136
  71. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/openai/test_openai.py +37 -74
  72. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/openai_agents/test_openai_agents.py +27 -1
  73. sentry_sdk-2.65.0/tests/integrations/opentelemetry/test_entry_points.py +26 -0
  74. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/pymongo/test_pymongo.py +4 -0
  75. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/pyramid/test_pyramid.py +45 -1
  76. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/pyreqwest/test_pyreqwest.py +39 -6
  77. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/quart/test_quart.py +2 -0
  78. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/ray/test_ray.py +21 -5
  79. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/redis/test_redis.py +31 -0
  80. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/redis/test_redis_cache_module.py +15 -0
  81. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/redis/test_redis_cache_module_async.py +4 -0
  82. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/requests/test_requests.py +2 -2
  83. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/rq/test_rq.py +5 -0
  84. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/rust_tracing/test_rust_tracing.py +22 -33
  85. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/sanic/test_sanic.py +15 -3
  86. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/starlette/test_starlette.py +91 -0
  87. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/stdlib/test_httplib.py +53 -23
  88. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/tornado/test_tornado.py +17 -4
  89. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/wsgi/test_wsgi.py +19 -4
  90. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/profiler/test_transaction_profiler.py +1 -1
  91. sentry_sdk-2.65.0/tests/test_data_collection.py +334 -0
  92. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/test_gevent.py +6 -8
  93. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/test_logs.py +16 -0
  94. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/test_metrics.py +8 -0
  95. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/test_scope.py +37 -0
  96. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/test_transport.py +2 -4
  97. sentry_sdk-2.65.0/tests/tracing/test_conversation_id.py +185 -0
  98. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/tracing/test_decorator.py +273 -3
  99. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/tracing/test_http_headers.py +21 -0
  100. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/tracing/test_misc.py +80 -187
  101. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/tracing/test_propagation.py +19 -0
  102. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/tracing/test_sample_rand_propagation.py +36 -0
  103. sentry_sdk-2.65.0/tests/tracing/test_sampling.py +683 -0
  104. sentry_sdk-2.65.0/tests/tracing/test_span_origin.py +76 -0
  105. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/tracing/test_span_streaming.py +246 -256
  106. sentry_sdk-2.63.0/tests/integrations/aiomysql/test_aiomysql.py +0 -801
  107. sentry_sdk-2.63.0/tests/integrations/django/myapp/middleware.py +0 -31
  108. sentry_sdk-2.63.0/tests/integrations/opentelemetry/test_entry_points.py +0 -18
  109. sentry_sdk-2.63.0/tests/tracing/test_sampling.py +0 -324
  110. sentry_sdk-2.63.0/tests/tracing/test_span_origin.py +0 -38
  111. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/LICENSE +0 -0
  112. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/MANIFEST.in +0 -0
  113. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/__init__.py +0 -0
  114. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/_batcher.py +0 -0
  115. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/_compat.py +0 -0
  116. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/_init_implementation.py +0 -0
  117. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/_log_batcher.py +0 -0
  118. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/_lru_cache.py +0 -0
  119. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/_metrics_batcher.py +0 -0
  120. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/_queue.py +0 -0
  121. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/_span_batcher.py +0 -0
  122. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/_werkzeug.py +0 -0
  123. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/ai/__init__.py +0 -0
  124. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/ai/_openai_completions_api.py +0 -0
  125. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/ai/_openai_responses_api.py +0 -0
  126. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/ai/consts.py +0 -0
  127. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/ai/monitoring.py +0 -0
  128. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/ai/utils.py +0 -0
  129. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/api.py +0 -0
  130. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/attachments.py +0 -0
  131. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/crons/__init__.py +0 -0
  132. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/crons/api.py +0 -0
  133. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/crons/consts.py +0 -0
  134. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/crons/decorator.py +0 -0
  135. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/debug.py +0 -0
  136. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/envelope.py +0 -0
  137. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/feature_flags.py +0 -0
  138. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/hub.py +0 -0
  139. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/__init__.py +0 -0
  140. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/_wsgi_common.py +0 -0
  141. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/aiomysql.py +0 -0
  142. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/anthropic.py +0 -0
  143. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/argv.py +0 -0
  144. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/ariadne.py +0 -0
  145. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/asyncio.py +0 -0
  146. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/atexit.py +0 -0
  147. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/aws_lambda.py +0 -0
  148. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/beam.py +0 -0
  149. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/bottle.py +0 -0
  150. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/celery/__init__.py +0 -0
  151. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/celery/beat.py +0 -0
  152. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/celery/utils.py +0 -0
  153. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/chalice.py +0 -0
  154. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/cloud_resource_context.py +0 -0
  155. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/cohere.py +0 -0
  156. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/dedupe.py +0 -0
  157. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/django/__init__.py +0 -0
  158. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/django/asgi.py +0 -0
  159. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/django/caching.py +0 -0
  160. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/django/signals_handlers.py +0 -0
  161. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/django/tasks.py +0 -0
  162. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/django/templates.py +0 -0
  163. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/django/transactions.py +0 -0
  164. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/django/views.py +0 -0
  165. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/excepthook.py +0 -0
  166. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/falcon.py +0 -0
  167. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/fastapi.py +0 -0
  168. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/flask.py +0 -0
  169. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/gcp.py +0 -0
  170. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/gnu_backtrace.py +0 -0
  171. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/google_genai/__init__.py +0 -0
  172. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/google_genai/consts.py +0 -0
  173. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/google_genai/streaming.py +0 -0
  174. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/google_genai/utils.py +0 -0
  175. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/gql.py +0 -0
  176. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/graphene.py +0 -0
  177. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/grpc/__init__.py +0 -0
  178. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/grpc/aio/__init__.py +0 -0
  179. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/grpc/aio/client.py +0 -0
  180. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/grpc/aio/server.py +0 -0
  181. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/grpc/client.py +0 -0
  182. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/grpc/consts.py +0 -0
  183. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/grpc/server.py +0 -0
  184. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/huggingface_hub.py +0 -0
  185. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/launchdarkly.py +0 -0
  186. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/litestar.py +0 -0
  187. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/logging.py +0 -0
  188. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/loguru.py +0 -0
  189. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/modules.py +0 -0
  190. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/openai.py +0 -0
  191. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/openai_agents/__init__.py +0 -0
  192. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/openai_agents/consts.py +0 -0
  193. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/openai_agents/patches/__init__.py +0 -0
  194. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/openai_agents/patches/agent_run.py +0 -0
  195. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/openai_agents/patches/error_tracing.py +0 -0
  196. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/openai_agents/patches/models.py +0 -0
  197. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/openai_agents/patches/runner.py +0 -0
  198. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/openai_agents/patches/tools.py +0 -0
  199. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/openai_agents/spans/__init__.py +0 -0
  200. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/openai_agents/spans/agent_workflow.py +0 -0
  201. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/openai_agents/spans/ai_client.py +0 -0
  202. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/openai_agents/spans/execute_tool.py +0 -0
  203. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/openai_agents/spans/handoff.py +0 -0
  204. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/openai_agents/spans/invoke_agent.py +0 -0
  205. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/openai_agents/utils.py +0 -0
  206. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/openfeature.py +0 -0
  207. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/opentelemetry/__init__.py +0 -0
  208. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/opentelemetry/consts.py +0 -0
  209. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/opentelemetry/integration.py +0 -0
  210. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/opentelemetry/propagator.py +0 -0
  211. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/opentelemetry/span_processor.py +0 -0
  212. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/otlp.py +0 -0
  213. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/pure_eval.py +0 -0
  214. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/pydantic_ai/__init__.py +0 -0
  215. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/pydantic_ai/consts.py +0 -0
  216. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/pydantic_ai/patches/__init__.py +0 -0
  217. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/pydantic_ai/patches/agent_run.py +0 -0
  218. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/pydantic_ai/patches/graph_nodes.py +0 -0
  219. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/pydantic_ai/patches/tools.py +0 -0
  220. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/pydantic_ai/spans/__init__.py +0 -0
  221. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/pydantic_ai/spans/execute_tool.py +0 -0
  222. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/pydantic_ai/spans/utils.py +0 -0
  223. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/pydantic_ai/utils.py +0 -0
  224. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/quart.py +0 -0
  225. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/ray.py +0 -0
  226. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/redis/__init__.py +0 -0
  227. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/redis/consts.py +0 -0
  228. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/redis/modules/__init__.py +0 -0
  229. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/redis/modules/caches.py +0 -0
  230. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/redis/modules/queries.py +0 -0
  231. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/redis/rb.py +0 -0
  232. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/redis/redis.py +0 -0
  233. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/redis/redis_cluster.py +0 -0
  234. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/redis/redis_py_cluster_legacy.py +0 -0
  235. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/redis/utils.py +0 -0
  236. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/rust_tracing.py +0 -0
  237. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/serverless.py +0 -0
  238. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/socket.py +0 -0
  239. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/spark/__init__.py +0 -0
  240. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/spark/spark_driver.py +0 -0
  241. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/spark/spark_worker.py +0 -0
  242. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/sqlalchemy.py +0 -0
  243. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/statsig.py +0 -0
  244. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/strawberry.py +0 -0
  245. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/sys_exit.py +0 -0
  246. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/threading.py +0 -0
  247. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/trytond.py +0 -0
  248. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/typer.py +0 -0
  249. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/unleash.py +0 -0
  250. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/integrations/unraisablehook.py +0 -0
  251. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/logger.py +0 -0
  252. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/metrics.py +0 -0
  253. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/monitor.py +0 -0
  254. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/profiler/__init__.py +0 -0
  255. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/profiler/continuous_profiler.py +0 -0
  256. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/profiler/transaction_profiler.py +0 -0
  257. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/profiler/utils.py +0 -0
  258. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/py.typed +0 -0
  259. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/scrubber.py +0 -0
  260. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/serializer.py +0 -0
  261. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/session.py +0 -0
  262. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/sessions.py +0 -0
  263. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/spotlight.py +0 -0
  264. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/transport.py +0 -0
  265. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/types.py +0 -0
  266. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk/worker.py +0 -0
  267. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk.egg-info/dependency_links.txt +0 -0
  268. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk.egg-info/entry_points.txt +0 -0
  269. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk.egg-info/not-zip-safe +0 -0
  270. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk.egg-info/requires.txt +0 -0
  271. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/sentry_sdk.egg-info/top_level.txt +0 -0
  272. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/setup.cfg +0 -0
  273. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/__init__.py +0 -0
  274. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/__init__.py +0 -0
  275. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/aiohttp/__init__.py +0 -0
  276. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/aiohttp/aiohttp_helpers/__init__.py +0 -0
  277. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/aiohttp/aiohttp_helpers/helpers.py +0 -0
  278. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/aiomysql/__init__.py +0 -0
  279. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/anthropic/__init__.py +0 -0
  280. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/argv/test_argv.py +0 -0
  281. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/ariadne/__init__.py +0 -0
  282. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/ariadne/test_ariadne.py +0 -0
  283. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/arq/__init__.py +0 -0
  284. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/asgi/__init__.py +0 -0
  285. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/asyncio/__init__.py +0 -0
  286. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/asyncio/test_asyncio.py +0 -0
  287. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/asyncpg/__init__.py +0 -0
  288. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/asyncpg/asyncpg_helpers/__init__.py +0 -0
  289. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/asyncpg/asyncpg_helpers/helpers.py +0 -0
  290. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/aws_lambda/__init__.py +0 -0
  291. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/aws_lambda/lambda_functions/BasicException/index.py +0 -0
  292. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/aws_lambda/lambda_functions/BasicOk/index.py +0 -0
  293. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/aws_lambda/lambda_functions/InitError/index.py +0 -0
  294. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/aws_lambda/lambda_functions/TimeoutError/index.py +0 -0
  295. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreaming/.gitignore +0 -0
  296. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreaming/index.py +0 -0
  297. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreamingPii/.gitignore +0 -0
  298. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreamingPii/index.py +0 -0
  299. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/RaiseErrorPerformanceDisabled/.gitignore +0 -0
  300. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/RaiseErrorPerformanceDisabled/index.py +0 -0
  301. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/RaiseErrorPerformanceEnabled/.gitignore +0 -0
  302. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/RaiseErrorPerformanceEnabled/index.py +0 -0
  303. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/RaiseErrorSpanStreaming/.gitignore +0 -0
  304. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/RaiseErrorSpanStreaming/index.py +0 -0
  305. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/TimeoutErrorScopeModified/.gitignore +0 -0
  306. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/TimeoutErrorScopeModified/index.py +0 -0
  307. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/TracesSampler/.gitignore +0 -0
  308. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/TracesSampler/index.py +0 -0
  309. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/aws_lambda/test_aws_lambda.py +0 -0
  310. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/aws_lambda/utils.py +0 -0
  311. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/beam/__init__.py +0 -0
  312. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/beam/test_beam.py +0 -0
  313. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/boto3/__init__.py +0 -0
  314. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/boto3/aws_mock.py +0 -0
  315. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/boto3/s3_list.xml +0 -0
  316. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/bottle/__init__.py +0 -0
  317. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/bottle/test_bottle.py +0 -0
  318. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/celery/__init__.py +0 -0
  319. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/celery/integration_tests/__init__.py +0 -0
  320. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/celery/integration_tests/test_celery_beat_cron_monitoring.py +0 -0
  321. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/celery/test_celery.py +0 -0
  322. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/celery/test_celery_beat_crons.py +0 -0
  323. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/celery/test_update_celery_task_headers.py +0 -0
  324. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/chalice/__init__.py +0 -0
  325. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/chalice/test_chalice.py +0 -0
  326. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/clickhouse_driver/__init__.py +0 -0
  327. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/cloud_resource_context/__init__.py +0 -0
  328. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/cloud_resource_context/test_cloud_resource_context.py +0 -0
  329. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/cohere/__init__.py +0 -0
  330. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/cohere/test_cohere.py +0 -0
  331. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/conftest.py +0 -0
  332. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/django/__init__.py +0 -0
  333. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/django/asgi/__init__.py +0 -0
  334. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/django/asgi/image.png +0 -0
  335. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/django/django_helpers/__init__.py +0 -0
  336. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/django/django_helpers/views.py +0 -0
  337. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/django/myapp/__init__.py +0 -0
  338. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/django/myapp/asgi.py +0 -0
  339. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/django/myapp/custom_urls.py +0 -0
  340. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/django/myapp/manage.py +0 -0
  341. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/django/myapp/management/__init__.py +0 -0
  342. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/django/myapp/management/commands/__init__.py +0 -0
  343. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/django/myapp/management/commands/mycrash.py +0 -0
  344. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/django/myapp/routing.py +0 -0
  345. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/django/myapp/settings.py +0 -0
  346. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/django/myapp/signals.py +0 -0
  347. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/django/myapp/templates/error.html +0 -0
  348. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/django/myapp/templates/trace_meta.html +0 -0
  349. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/django/myapp/templates/user_name.html +0 -0
  350. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/django/myapp/urls.py +0 -0
  351. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/django/myapp/views.py +0 -0
  352. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/django/myapp/wsgi.py +0 -0
  353. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/django/test_basic.py +0 -0
  354. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/django/test_cache_module.py +0 -0
  355. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/django/test_data_scrubbing.py +0 -0
  356. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/django/test_db_query_data.py +0 -0
  357. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/django/test_db_transactions.py +0 -0
  358. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/django/test_middleware.py +0 -0
  359. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/django/test_tasks.py +0 -0
  360. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/django/test_transactions.py +0 -0
  361. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/django/utils.py +0 -0
  362. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/dramatiq/__init__.py +0 -0
  363. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/excepthook/test_excepthook.py +0 -0
  364. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/falcon/__init__.py +0 -0
  365. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/falcon/test_falcon.py +0 -0
  366. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/fastapi/__init__.py +0 -0
  367. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/fastapi/photo.jpg +0 -0
  368. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/fastmcp/__init__.py +0 -0
  369. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/fastmcp/test_fastmcp.py +0 -0
  370. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/flask/__init__.py +0 -0
  371. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/flask/test_flask.py +0 -0
  372. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/gcp/__init__.py +0 -0
  373. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/gcp/test_gcp.py +0 -0
  374. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/google_genai/__init__.py +0 -0
  375. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/gql/__init__.py +0 -0
  376. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/gql/test_gql.py +0 -0
  377. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/graphene/__init__.py +0 -0
  378. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/graphene/test_graphene.py +0 -0
  379. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/grpc/__init__.py +0 -0
  380. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/grpc/compile_test_services.sh +0 -0
  381. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/grpc/grpc_test_service_pb2.py +0 -0
  382. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/grpc/grpc_test_service_pb2.pyi +0 -0
  383. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/grpc/grpc_test_service_pb2_grpc.py +0 -0
  384. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/grpc/protos/grpc_test_service.proto +0 -0
  385. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/grpc/test_grpc.py +0 -0
  386. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/grpc/test_grpc_aio.py +0 -0
  387. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/httpx/__init__.py +0 -0
  388. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/httpx/httpx_helpers/__init__.py +0 -0
  389. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/httpx/httpx_helpers/helpers.py +0 -0
  390. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/httpx2/__init__.py +0 -0
  391. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/httpx2/httpx2_helpers/__init__.py +0 -0
  392. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/httpx2/httpx2_helpers/helpers.py +0 -0
  393. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/huey/__init__.py +0 -0
  394. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/huggingface_hub/__init__.py +0 -0
  395. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/langchain/__init__.py +0 -0
  396. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/langgraph/__init__.py +0 -0
  397. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/launchdarkly/__init__.py +0 -0
  398. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/launchdarkly/test_launchdarkly.py +0 -0
  399. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/litellm/__init__.py +0 -0
  400. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/litestar/__init__.py +0 -0
  401. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/litestar/test_litestar.py +0 -0
  402. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/loguru/__init__.py +0 -0
  403. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/mcp/__init__.py +0 -0
  404. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/modules/test_modules.py +0 -0
  405. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/openai/__init__.py +0 -0
  406. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/openai_agents/__init__.py +0 -0
  407. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/openfeature/__init__.py +0 -0
  408. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/openfeature/test_openfeature.py +0 -0
  409. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/opentelemetry/__init__.py +0 -0
  410. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/opentelemetry/test_experimental.py +0 -0
  411. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/opentelemetry/test_propagator.py +0 -0
  412. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/opentelemetry/test_span_processor.py +0 -0
  413. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/otlp/__init__.py +0 -0
  414. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/otlp/test_otlp.py +0 -0
  415. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/pure_eval/__init__.py +0 -0
  416. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/pure_eval/test_pure_eval.py +0 -0
  417. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/pydantic_ai/__init__.py +0 -0
  418. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/pydantic_ai/test_pydantic_ai.py +0 -0
  419. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/pymongo/__init__.py +0 -0
  420. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/pyramid/__init__.py +0 -0
  421. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/pyreqwest/__init__.py +0 -0
  422. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/pyreqwest/pyreqwest_helpers/__init__.py +0 -0
  423. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/pyreqwest/pyreqwest_helpers/helpers.py +0 -0
  424. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/quart/__init__.py +0 -0
  425. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/ray/__init__.py +0 -0
  426. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/redis/__init__.py +0 -0
  427. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/redis/asyncio/__init__.py +0 -0
  428. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/redis/asyncio/test_redis_asyncio.py +0 -0
  429. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/redis/cluster/__init__.py +0 -0
  430. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/redis/cluster/test_redis_cluster.py +0 -0
  431. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/redis/cluster_asyncio/__init__.py +0 -0
  432. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/redis/cluster_asyncio/test_redis_cluster_asyncio.py +0 -0
  433. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/redis_py_cluster_legacy/__init__.py +0 -0
  434. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/redis_py_cluster_legacy/test_redis_py_cluster_legacy.py +0 -0
  435. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/requests/__init__.py +0 -0
  436. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/rq/__init__.py +0 -0
  437. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/rust_tracing/__init__.py +0 -0
  438. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/sanic/__init__.py +0 -0
  439. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/serverless/test_serverless.py +0 -0
  440. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/socket/__init__.py +0 -0
  441. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/socket/test_socket.py +0 -0
  442. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/spark/__init__.py +0 -0
  443. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/spark/test_spark.py +0 -0
  444. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/sqlalchemy/__init__.py +0 -0
  445. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/sqlalchemy/sqlalchemy_helpers/__init__.py +0 -0
  446. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/sqlalchemy/sqlalchemy_helpers/helpers.py +0 -0
  447. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/sqlalchemy/test_sqlalchemy.py +0 -0
  448. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/starlette/__init__.py +0 -0
  449. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/starlette/photo.jpg +0 -0
  450. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/starlette/templates/trace_meta.html +0 -0
  451. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/starlite/__init__.py +0 -0
  452. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/starlite/test_starlite.py +0 -0
  453. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/statsig/__init__.py +0 -0
  454. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/statsig/test_statsig.py +0 -0
  455. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/stdlib/__init__.py +0 -0
  456. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/stdlib/httplib_helpers/__init__.py +0 -0
  457. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/stdlib/httplib_helpers/helpers.py +0 -0
  458. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/stdlib/test_subprocess.py +0 -0
  459. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/strawberry/__init__.py +0 -0
  460. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/strawberry/test_strawberry.py +0 -0
  461. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/sys_exit/test_sys_exit.py +0 -0
  462. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/test_gnu_backtrace.py +0 -0
  463. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/threading/test_threading.py +0 -0
  464. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/tornado/__init__.py +0 -0
  465. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/trytond/__init__.py +0 -0
  466. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/trytond/test_trytond.py +0 -0
  467. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/typer/__init__.py +0 -0
  468. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/typer/test_typer.py +0 -0
  469. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/unleash/__init__.py +0 -0
  470. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/unleash/test_unleash.py +0 -0
  471. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/unleash/testutils.py +0 -0
  472. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/integrations/unraisablehook/test_unraisablehook.py +0 -0
  473. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/new_scopes_compat/__init__.py +0 -0
  474. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/new_scopes_compat/conftest.py +0 -0
  475. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/new_scopes_compat/test_new_scopes_compat.py +0 -0
  476. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/new_scopes_compat/test_new_scopes_compat_event.py +0 -0
  477. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/profiler/__init__.py +0 -0
  478. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/profiler/test_continuous_profiler.py +0 -0
  479. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/test.key +0 -0
  480. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/test.pem +0 -0
  481. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/test_ai_integration_deactivation.py +0 -0
  482. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/test_ai_monitoring.py +0 -0
  483. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/test_api.py +0 -0
  484. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/test_attributes.py +0 -0
  485. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/test_basics.py +0 -0
  486. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/test_client.py +0 -0
  487. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/test_conftest.py +0 -0
  488. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/test_crons.py +0 -0
  489. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/test_dsc.py +0 -0
  490. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/test_envelope.py +0 -0
  491. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/test_exceptiongroup.py +0 -0
  492. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/test_feature_flags.py +0 -0
  493. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/test_full_stack_frames.py +0 -0
  494. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/test_import.py +0 -0
  495. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/test_lru_cache.py +0 -0
  496. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/test_monitor.py +0 -0
  497. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/test_propagationcontext.py +0 -0
  498. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/test_scrubber.py +0 -0
  499. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/test_serializer.py +0 -0
  500. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/test_sessions.py +0 -0
  501. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/test_shadowed_module.py +0 -0
  502. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/test_spotlight.py +0 -0
  503. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/test_tracing_utils.py +0 -0
  504. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/test_types.py +0 -0
  505. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/test_utils.py +0 -0
  506. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/tracing/test_baggage.py +0 -0
  507. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/tracing/test_deprecated.py +0 -0
  508. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/tracing/test_ignore_status_codes.py +0 -0
  509. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/tracing/test_integration_tests.py +0 -0
  510. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/tracing/test_noop_span.py +0 -0
  511. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/tracing/test_sample_rand.py +0 -0
  512. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/tracing/test_span_batcher.py +0 -0
  513. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/tracing/test_span_name.py +0 -0
  514. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/utils/__init__.py +0 -0
  515. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/utils/test_contextvars.py +0 -0
  516. {sentry_sdk-2.63.0 → sentry_sdk-2.65.0}/tests/utils/test_general.py +0 -0
  517. {sentry_sdk-2.63.0 → sentry_sdk-2.65.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.65.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
@@ -193,6 +193,11 @@ sentry_sdk.init(
193
193
  # Set traces_sample_rate to 1.0 to capture 100%
194
194
  # of traces for performance monitoring.
195
195
  traces_sample_rate=1.0,
196
+
197
+ # To disable sending user data and HTTP request/response bodies, uncomment
198
+ # the line below. For more info visit:
199
+ # https://docs.sentry.io/platforms/python/configuration/options/#data_collection
200
+ # data_collection={"user_info": False, "http_bodies": []},
196
201
  )
197
202
  ```
198
203
 
@@ -49,6 +49,11 @@ sentry_sdk.init(
49
49
  # Set traces_sample_rate to 1.0 to capture 100%
50
50
  # of traces for performance monitoring.
51
51
  traces_sample_rate=1.0,
52
+
53
+ # To disable sending user data and HTTP request/response bodies, uncomment
54
+ # the line below. For more info visit:
55
+ # https://docs.sentry.io/platforms/python/configuration/options/#data_collection
56
+ # data_collection={"user_info": False, "http_bodies": []},
52
57
  )
53
58
  ```
54
59
 
@@ -67,6 +67,15 @@ typing = [
67
67
  "httpx2",
68
68
  "botocore-stubs",
69
69
  "werkzeug",
70
+ "mcp>=2.0.0b1",
71
+ "starlette>=1.3.1",
72
+ "python-multipart>=0.0.32",
73
+ "pydantic>=2.13.4",
74
+ ]
75
+ test = [
76
+ "dataclasses ; python_full_version < '3.7'",
77
+ "pytest>=6.0.0",
78
+ "pytest-cov",
70
79
  ]
71
80
 
72
81
  #
@@ -141,7 +141,7 @@ if TYPE_CHECKING:
141
141
  from collections.abc import Container, MutableMapping, Sequence
142
142
  from datetime import datetime
143
143
  from types import TracebackType
144
- from typing import Any, Callable, Dict, Mapping, NotRequired, Optional, Type
144
+ from typing import Any, Callable, Dict, List, Mapping, NotRequired, Optional, Type
145
145
 
146
146
  from typing_extensions import Literal, TypedDict
147
147
 
@@ -152,6 +152,59 @@ if TYPE_CHECKING:
152
152
  version: str
153
153
  packages: "Sequence[Mapping[str, str]]"
154
154
 
155
+ class KeyValueCollectionBehaviour(TypedDict):
156
+ mode: 'Literal["off", "denylist", "allowlist"]'
157
+ terms: "NotRequired[List[str]]"
158
+
159
+ class GenAICollectionUserOptions(TypedDict, total=False):
160
+ inputs: bool
161
+ outputs: bool
162
+
163
+ class GenAICollectionBehaviour(TypedDict):
164
+ inputs: bool
165
+ outputs: bool
166
+
167
+ class GraphQLCollectionUserOptions(TypedDict, total=False):
168
+ document: bool
169
+ variables: bool
170
+
171
+ class GraphQLCollectionBehaviour(TypedDict):
172
+ document: bool
173
+ variables: bool
174
+
175
+ class HttpHeadersCollectionUserOptions(TypedDict, total=False):
176
+ request: "KeyValueCollectionBehaviour"
177
+
178
+ class HttpHeadersCollectionBehaviour(TypedDict):
179
+ request: "KeyValueCollectionBehaviour"
180
+
181
+ class DataCollectionUserOptions(TypedDict, total=False):
182
+ user_info: bool
183
+ cookies: "KeyValueCollectionBehaviour"
184
+ http_headers: "HttpHeadersCollectionUserOptions"
185
+ http_bodies: "List[str]"
186
+ query_params: "KeyValueCollectionBehaviour"
187
+ graphql: "GraphQLCollectionUserOptions"
188
+ gen_ai: "GenAICollectionUserOptions"
189
+ database_query_data: bool
190
+ queues: bool
191
+ stack_frame_variables: bool
192
+ frame_context_lines: int
193
+
194
+ class DataCollection(TypedDict):
195
+ provided_by_user: bool
196
+ user_info: bool
197
+ cookies: "KeyValueCollectionBehaviour"
198
+ http_headers: "HttpHeadersCollectionBehaviour"
199
+ http_bodies: "List[str]"
200
+ query_params: "KeyValueCollectionBehaviour"
201
+ graphql: "GraphQLCollectionBehaviour"
202
+ gen_ai: "GenAICollectionBehaviour"
203
+ database_query_data: bool
204
+ queues: bool
205
+ stack_frame_variables: bool
206
+ frame_context_lines: int
207
+
155
208
  # "critical" is an alias of "fatal" recognized by Relay
156
209
  LogLevelStr = Literal["fatal", "critical", "error", "warning", "info", "debug"]
157
210
 
@@ -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
@@ -21,6 +23,10 @@ from sentry_sdk.consts import (
21
23
  VERSION,
22
24
  ClientConstructor,
23
25
  )
26
+ from sentry_sdk.data_collection import (
27
+ _map_from_send_default_pii,
28
+ _resolve_data_collection,
29
+ )
24
30
  from sentry_sdk.envelope import Envelope, Item, PayloadRef
25
31
  from sentry_sdk.integrations import _DEFAULT_INTEGRATIONS, setup_integrations
26
32
  from sentry_sdk.integrations.dedupe import DedupeIntegration
@@ -241,6 +247,11 @@ def _serialized_v1_span_to_serialized_v2_span(
241
247
  if "version" in sdk_info:
242
248
  attributes["sentry.sdk.version"] = sdk_info["version"]
243
249
 
250
+ attributes["process.runtime.name"] = platform.python_implementation()
251
+ attributes["process.runtime.version"] = (
252
+ f"{sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro}"
253
+ )
254
+
244
255
  if not attributes:
245
256
  return res
246
257
 
@@ -338,11 +349,13 @@ def _get_options(*args: "Optional[str]", **kwargs: "Any") -> "Dict[str, Any]":
338
349
  if rv["enable_tracing"] is True and rv["traces_sample_rate"] is None:
339
350
  rv["traces_sample_rate"] = 1.0
340
351
 
352
+ rv["data_collection"] = _resolve_data_collection(rv)
353
+
341
354
  if rv["event_scrubber"] is None:
342
355
  rv["event_scrubber"] = EventScrubber(
343
- send_default_pii=(
344
- False if rv["send_default_pii"] is None else rv["send_default_pii"]
345
- )
356
+ send_default_pii=False
357
+ if rv["send_default_pii"] is None
358
+ else rv["send_default_pii"]
346
359
  )
347
360
 
348
361
  if rv["socket_options"] and not isinstance(rv["socket_options"], list):
@@ -607,6 +620,19 @@ class _Client(BaseClient):
607
620
  self.options["error_sampler"] = sample_all
608
621
  self.options["traces_sampler"] = sample_all
609
622
  self.options["profiles_sampler"] = sample_all
623
+ # data_collection was resolved in _get_options() before this
624
+ # spotlight override flipped send_default_pii on. Re-derive it so
625
+ # data_collection agrees with should_send_default_pii() in
626
+ # DSN-less spotlight mode (only when the user did not set
627
+ # data_collection explicitly).
628
+ if not self.options["data_collection"]["provided_by_user"]:
629
+ self.options["data_collection"] = _map_from_send_default_pii(
630
+ send_default_pii=True,
631
+ include_local_variables=self.options["include_local_variables"]
632
+ is not False,
633
+ include_source_context=self.options["include_source_context"]
634
+ is not False,
635
+ )
610
636
 
611
637
  self.session_flusher = SessionFlusher(capture_func=_capture_envelope)
612
638
 
@@ -45,6 +45,7 @@ if TYPE_CHECKING:
45
45
  from sentry_sdk._types import (
46
46
  BreadcrumbProcessor,
47
47
  ContinuousProfilerMode,
48
+ DataCollectionUserOptions,
48
49
  Event,
49
50
  EventProcessor,
50
51
  Hint,
@@ -86,6 +87,7 @@ if TYPE_CHECKING:
86
87
  Callable[[SpanJSON, Hint], Optional[SpanJSON]]
87
88
  ],
88
89
  "suppress_asgi_chained_exceptions": Optional[bool],
90
+ "data_collection": Optional[DataCollectionUserOptions],
89
91
  },
90
92
  total=False,
91
93
  )
@@ -518,6 +520,12 @@ class SPANDATA:
518
520
  Example: postgresql
519
521
  """
520
522
 
523
+ DB_QUERY_TEXT = "db.query.text"
524
+ """
525
+ The database query being executed.
526
+ Example: "SELECT * FROM users WHERE id = $1"
527
+ """
528
+
521
529
  DB_SYSTEM_NAME = "db.system.name"
522
530
  """
523
531
  An identifier for the database management system (DBMS) product being used. See OpenTelemetry's list of well-known DBMS identifiers.
@@ -1014,6 +1022,12 @@ class SPANDATA:
1014
1022
  Example: "details"
1015
1023
  """
1016
1024
 
1025
+ URL_PATH = "url.path"
1026
+ """
1027
+ The URI path component.
1028
+ Example: "/foo"
1029
+ """
1030
+
1017
1031
  URL_QUERY = "url.query"
1018
1032
  """
1019
1033
  The query string present in the URL. Note that this does not contain the leading ? character, while the `http.query` attribute does.
@@ -1180,6 +1194,8 @@ class OP:
1180
1194
  COHERE_CHAT_COMPLETIONS_CREATE = "ai.chat_completions.create.cohere"
1181
1195
  COHERE_EMBEDDINGS_CREATE = "ai.embeddings.create.cohere"
1182
1196
  DB = "db"
1197
+ DB_CURSOR_ITERATOR = "db.cursor.iter"
1198
+ DB_CURSOR_FETCH = "db.cursor.fetch"
1183
1199
  DB_REDIS = "db.redis"
1184
1200
  EVENT_DJANGO = "event.django"
1185
1201
  FUNCTION = "function"
@@ -1320,7 +1336,7 @@ class ClientConstructor:
1320
1336
  before_send_metric: "Optional[Callable[[Metric, Hint], Optional[Metric]]]" = None,
1321
1337
  org_id: "Optional[str]" = None,
1322
1338
  strict_trace_continuation: bool = False,
1323
- stream_gen_ai_spans: bool = False,
1339
+ stream_gen_ai_spans: bool = True,
1324
1340
  ) -> None:
1325
1341
  """Initialize the Sentry SDK with the given parameters. All parameters described here can be used in a call to `sentry_sdk.init()`.
1326
1342
 
@@ -1741,7 +1757,25 @@ class ClientConstructor:
1741
1757
  :param stream_gen_ai_spans: When set, generative AI spans are sent in a new transport format to
1742
1758
  reduce downstream data loss.
1743
1759
 
1744
- :param _experiments:
1760
+ :param _experiments: Dictionary of experimental, opt-in features that are not yet stable.
1761
+
1762
+ ``data_collection`` (EXPERIMENTAL): structured configuration controlling what data integrations
1763
+ collect automatically, superseding `send_default_pii`. Passing a dict under
1764
+ `_experiments={"data_collection": {...}}` opts into the feature; omitted fields use their
1765
+ defaults (most categories are collected, with the sensitive denylist scrubbing values).
1766
+ When it is not set, the SDK derives behaviour from `send_default_pii` so that upgrading
1767
+ changes nothing. Restrict collection per category (user identity, cookies, HTTP
1768
+ headers/bodies, query params, generative AI inputs/outputs, stack frame variables, source
1769
+ context). If `send_default_pii` is also set, `data_collection` takes precedence.
1770
+
1771
+ Example::
1772
+
1773
+ sentry_sdk.init(
1774
+ dsn="...",
1775
+ _experiments={"data_collection": {"user_info": False, "http_bodies": []}},
1776
+ )
1777
+
1778
+ See https://docs.sentry.io/platforms/python/configuration/options/#data_collection for more details.
1745
1779
  """
1746
1780
  pass
1747
1781
 
@@ -1765,4 +1799,4 @@ DEFAULT_OPTIONS = _get_default_options()
1765
1799
  del _get_default_options
1766
1800
 
1767
1801
 
1768
- VERSION = "2.63.0"
1802
+ VERSION = "2.65.0"
@@ -0,0 +1,261 @@
1
+ """
2
+ Data Collection configuration.
3
+
4
+ Implements the ``data_collection`` client option described in the Sentry SDK
5
+ "Data Collection" spec
6
+ (https://develop.sentry.dev/sdk/foundations/client/data-collection/).
7
+
8
+ ``data_collection`` supersedes the single ``send_default_pii`` boolean with a
9
+ structured configuration that lets users enable or restrict automatically
10
+ collected data by category (user identity, cookies, HTTP headers, query params,
11
+ HTTP bodies, generative AI inputs/outputs, stack frame variables, source
12
+ context).
13
+
14
+ Resolution precedence (see :func:`_resolve_data_collection`):
15
+
16
+ * ``data_collection`` set, ``send_default_pii`` unset -> honour ``data_collection``
17
+ using the spec defaults for any omitted field.
18
+ * ``send_default_pii`` set, ``data_collection`` unset -> derive a
19
+ resolved ``DataCollection`` that mirrors what ``send_default_pii`` collects today.
20
+ * neither set -> treated as ``send_default_pii=False``.
21
+ * both set -> ``data_collection`` wins (it is the single source of truth); a
22
+ ``DeprecationWarning`` is emitted for ``send_default_pii``.
23
+ """
24
+
25
+ import warnings
26
+ from typing import TYPE_CHECKING, cast
27
+
28
+ if TYPE_CHECKING:
29
+ from typing import Any, Dict, Literal
30
+
31
+ from sentry_sdk._types import (
32
+ DataCollection,
33
+ GenAICollectionBehaviour,
34
+ GraphQLCollectionBehaviour,
35
+ HttpHeadersCollectionBehaviour,
36
+ KeyValueCollectionBehaviour,
37
+ )
38
+
39
+ # ``http_bodies`` defaults to this (collect everything the
40
+ # platform supports); an empty list is the explicit opt-out.
41
+ # response bodyies are not included here because we don't
42
+ # currently capture them (as of Jul 7 2026)
43
+ _ALL_HTTP_BODY_TYPES = [
44
+ "incoming_request",
45
+ "outgoing_request",
46
+ ]
47
+
48
+ # Default number of source lines captured above and below a stack frame.
49
+ _DEFAULT_FRAME_CONTEXT_LINES = 5
50
+
51
+ # Collection modes for key-value data (cookies, headers, query params).
52
+ # snake_case (Python-only deviation from the spec's camelCase); never
53
+ # serialized to Sentry.
54
+ _VALID_KEY_VALUE_COLLECTION_BEHAVIOUR_MODES = ("off", "denylist", "allowlist")
55
+
56
+ # Values of keys that contain any of
57
+ # these terms (partial, case-insensitive) are always replaced with
58
+ # ``"[Filtered]"`` regardless of the configured collection mode.
59
+ _SENSITIVE_DENYLIST = [
60
+ "auth",
61
+ "token",
62
+ "secret",
63
+ "password",
64
+ "passwd",
65
+ "pwd",
66
+ "key",
67
+ "jwt",
68
+ "bearer",
69
+ "sso",
70
+ "saml",
71
+ "csrf",
72
+ "xsrf",
73
+ "credentials",
74
+ "session",
75
+ "sid",
76
+ "identity",
77
+ ]
78
+
79
+
80
+ def _map_from_send_default_pii(
81
+ *,
82
+ send_default_pii: bool,
83
+ include_local_variables: bool,
84
+ include_source_context: bool,
85
+ ) -> "DataCollection":
86
+ """
87
+ Build a fully-resolved ``DataCollection`` dict that mirrors the data
88
+ ``send_default_pii`` collects today. Used when ``data_collection`` is not
89
+ provided explicitly.
90
+ """
91
+ kv_mode: "Literal['denylist', 'off']" = "denylist" if send_default_pii else "off"
92
+ terms = [] if send_default_pii else ["forwarded", "-ip", "remote-", "via", "-user"]
93
+
94
+ return {
95
+ "provided_by_user": False,
96
+ "user_info": send_default_pii,
97
+ "cookies": {"mode": kv_mode, "terms": terms},
98
+ # Headers are collected in both PII modes today (sensitive ones filtered
99
+ # when PII is off), so this never maps to "off".
100
+ "http_headers": {
101
+ "request": {"mode": "denylist", "terms": terms},
102
+ },
103
+ # Bodies are collected regardless of PII today, bounded by
104
+ # ``max_request_body_size``.
105
+ "http_bodies": list(_ALL_HTTP_BODY_TYPES),
106
+ "query_params": {"mode": kv_mode, "terms": terms},
107
+ "graphql": {"document": send_default_pii, "variables": send_default_pii},
108
+ "gen_ai": {"inputs": send_default_pii, "outputs": send_default_pii},
109
+ "database_query_data": send_default_pii,
110
+ "queues": send_default_pii,
111
+ "stack_frame_variables": include_local_variables,
112
+ "frame_context_lines": (
113
+ _DEFAULT_FRAME_CONTEXT_LINES if include_source_context else 0
114
+ ),
115
+ }
116
+
117
+
118
+ def _resolve_explicit(
119
+ d: "dict[str, Any]",
120
+ include_local_variables: bool,
121
+ include_source_context: bool,
122
+ ) -> "DataCollection":
123
+ """
124
+ Build a fully-resolved ``DataCollection`` from a user-supplied
125
+ ``data_collection`` dict, filling in spec defaults for any omitted or
126
+ partially-specified field. Frame fields fall back to the legacy
127
+ ``include_local_variables`` / ``include_source_context`` options when unset.
128
+ """
129
+ # frame_context_lines accepts an integer or a boolean fallback (spec: True
130
+ # -> platform default of 5, False -> 0). bool is a subclass of int, so
131
+ # coerce explicitly before treating it as a line count.
132
+ frame_context_lines = d.get("frame_context_lines")
133
+ if frame_context_lines is None:
134
+ frame_context_lines = (
135
+ _DEFAULT_FRAME_CONTEXT_LINES if include_source_context else 0
136
+ )
137
+ elif isinstance(frame_context_lines, bool):
138
+ frame_context_lines = _DEFAULT_FRAME_CONTEXT_LINES if frame_context_lines else 0
139
+
140
+ stack_frame_variables = d.get("stack_frame_variables")
141
+ if stack_frame_variables is None:
142
+ stack_frame_variables = include_local_variables
143
+
144
+ # http_bodies: omitted means "all valid types"; [] is the explicit opt-out.
145
+ http_bodies = d.get("http_bodies")
146
+ http_bodies = (
147
+ list(http_bodies) if http_bodies is not None else list(_ALL_HTTP_BODY_TYPES)
148
+ )
149
+
150
+ return {
151
+ "provided_by_user": True,
152
+ "user_info": d.get("user_info", True),
153
+ "cookies": _kvcb_from_value(d.get("cookies") or {}),
154
+ "http_headers": _http_headers_from_value(d.get("http_headers") or {}),
155
+ "http_bodies": http_bodies,
156
+ "query_params": _kvcb_from_value(d.get("query_params") or {}),
157
+ "graphql": _graphql_from_value(d.get("graphql") or {}),
158
+ "gen_ai": _gen_ai_from_value(d.get("gen_ai") or {}),
159
+ "database_query_data": d.get("database_query_data", True),
160
+ "queues": d.get("queues", True),
161
+ "stack_frame_variables": stack_frame_variables,
162
+ "frame_context_lines": frame_context_lines,
163
+ }
164
+
165
+
166
+ def _kvcb_from_value(
167
+ val: "dict[str, Any]",
168
+ ) -> "KeyValueCollectionBehaviour":
169
+ mode = val.get("mode", "denylist")
170
+ terms = val.get("terms", None)
171
+
172
+ if mode not in _VALID_KEY_VALUE_COLLECTION_BEHAVIOUR_MODES:
173
+ raise ValueError(
174
+ "Invalid collection mode {!r}. Must be one of {}.".format(
175
+ mode, _VALID_KEY_VALUE_COLLECTION_BEHAVIOUR_MODES
176
+ )
177
+ )
178
+
179
+ behaviour: "dict[str, Any]" = {"mode": mode}
180
+ if terms is not None:
181
+ behaviour["terms"] = list(terms)
182
+ return cast("KeyValueCollectionBehaviour", behaviour)
183
+
184
+
185
+ def _http_headers_from_value(
186
+ val: "dict[str, Any]",
187
+ ) -> "HttpHeadersCollectionBehaviour":
188
+ return {
189
+ "request": (
190
+ _kvcb_from_value(val["request"])
191
+ if "request" in val
192
+ else _kvcb_from_value({"mode": "denylist"})
193
+ ),
194
+ }
195
+
196
+
197
+ def _gen_ai_from_value(val: "dict[str, Any]") -> "GenAICollectionBehaviour":
198
+ return {
199
+ "inputs": val.get("inputs", True),
200
+ "outputs": val.get("outputs", True),
201
+ }
202
+
203
+
204
+ def _graphql_from_value(
205
+ val: "dict[str, Any]",
206
+ ) -> "GraphQLCollectionBehaviour":
207
+ return {
208
+ "document": val.get("document", True),
209
+ "variables": val.get("variables", True),
210
+ }
211
+
212
+
213
+ def _resolve_data_collection(options: "Dict[str, Any]") -> "DataCollection":
214
+ """
215
+ Resolve the effective ``DataCollection`` dict from client ``options``.
216
+
217
+ Reads ``data_collection``, ``send_default_pii``, ``include_local_variables``
218
+ and ``include_source_context`` and returns a fully-resolved dict with
219
+ concrete values for every field.
220
+
221
+ ``data_collection`` must be a plain ``dict``.
222
+ """
223
+ user_dc = options.get("_experiments", {}).get("data_collection")
224
+ send_default_pii = options.get("send_default_pii")
225
+
226
+ include_local_variables = (
227
+ bool(options.get("include_local_variables"))
228
+ if options.get("include_local_variables") is not None
229
+ else True
230
+ )
231
+ include_source_context = (
232
+ bool(options.get("include_source_context"))
233
+ if options.get("include_source_context") is not None
234
+ else True
235
+ )
236
+
237
+ if user_dc is not None:
238
+ if not isinstance(user_dc, dict):
239
+ raise TypeError(
240
+ "`data_collection` must be a dict, got {!r}.".format(
241
+ type(user_dc).__name__
242
+ )
243
+ )
244
+ if send_default_pii is not None:
245
+ warnings.warn(
246
+ "`send_default_pii` is deprecated and ignored when "
247
+ "`data_collection` is set.",
248
+ DeprecationWarning,
249
+ stacklevel=2,
250
+ )
251
+ return _resolve_explicit(
252
+ user_dc,
253
+ include_local_variables,
254
+ include_source_context,
255
+ )
256
+
257
+ return _map_from_send_default_pii(
258
+ send_default_pii=bool(send_default_pii),
259
+ include_local_variables=include_local_variables,
260
+ include_source_context=include_source_context,
261
+ )
@@ -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"] = (