sentry-sdk 2.69.1__tar.gz → 2.69.2__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 (541) hide show
  1. {sentry_sdk-2.69.1/sentry_sdk.egg-info → sentry_sdk-2.69.2}/PKG-INFO +1 -1
  2. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/client.py +11 -2
  3. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/consts.py +2 -2
  4. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/aws_lambda.py +42 -26
  5. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/bottle.py +13 -0
  6. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/clickhouse_driver.py +1 -1
  7. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/google_genai/utils.py +1 -1
  8. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/pydantic_ai/patches/tools.py +12 -6
  9. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/serializer.py +2 -2
  10. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/traces.py +19 -17
  11. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/utils.py +0 -40
  12. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2/sentry_sdk.egg-info}/PKG-INFO +1 -1
  13. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk.egg-info/SOURCES.txt +2 -0
  14. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/setup.py +1 -1
  15. sentry_sdk-2.69.2/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreamingDataCollectionUserInfoOff/index.py +20 -0
  16. sentry_sdk-2.69.2/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreamingDataCollectionUserInfoOn/index.py +20 -0
  17. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/test_aws_lambda.py +74 -0
  18. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/bottle/test_bottle.py +33 -0
  19. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/clickhouse_driver/test_clickhouse_driver.py +12 -0
  20. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/django/test_cache_module.py +2 -3
  21. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/huggingface_hub/test_huggingface_hub.py +514 -116
  22. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/logging/test_logging.py +18 -0
  23. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/pydantic_ai/test_pydantic_ai.py +0 -252
  24. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/pymongo/test_pymongo.py +1 -1
  25. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/test_basics.py +183 -66
  26. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/utils/test_general.py +0 -55
  27. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/LICENSE +0 -0
  28. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/MANIFEST.in +0 -0
  29. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/README.md +0 -0
  30. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/pyproject.toml +0 -0
  31. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/__init__.py +0 -0
  32. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/_batcher.py +0 -0
  33. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/_compat.py +0 -0
  34. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/_init_implementation.py +0 -0
  35. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/_log_batcher.py +0 -0
  36. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/_lru_cache.py +0 -0
  37. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/_metrics_batcher.py +0 -0
  38. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/_queue.py +0 -0
  39. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/_span_batcher.py +0 -0
  40. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/_types.py +0 -0
  41. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/_werkzeug.py +0 -0
  42. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/ai/__init__.py +0 -0
  43. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/ai/_openai_completions_api.py +0 -0
  44. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/ai/_openai_responses_api.py +0 -0
  45. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/ai/consts.py +0 -0
  46. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/ai/monitoring.py +0 -0
  47. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/ai/utils.py +0 -0
  48. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/api.py +0 -0
  49. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/attachments.py +0 -0
  50. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/crons/__init__.py +0 -0
  51. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/crons/api.py +0 -0
  52. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/crons/consts.py +0 -0
  53. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/crons/decorator.py +0 -0
  54. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/data_collection.py +0 -0
  55. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/debug.py +0 -0
  56. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/envelope.py +0 -0
  57. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/feature_flags.py +0 -0
  58. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/hub.py +0 -0
  59. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/__init__.py +0 -0
  60. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/_asgi_common.py +0 -0
  61. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/_wsgi_common.py +0 -0
  62. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/aiohttp.py +0 -0
  63. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/aiomysql.py +0 -0
  64. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/anthropic.py +0 -0
  65. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/argv.py +0 -0
  66. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/ariadne.py +0 -0
  67. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/arq.py +0 -0
  68. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/asgi.py +0 -0
  69. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/asyncio.py +0 -0
  70. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/asyncpg.py +0 -0
  71. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/atexit.py +0 -0
  72. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/beam.py +0 -0
  73. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/boto3.py +0 -0
  74. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/celery/__init__.py +0 -0
  75. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/celery/beat.py +0 -0
  76. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/celery/utils.py +0 -0
  77. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/chalice.py +0 -0
  78. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/cloud_resource_context.py +0 -0
  79. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/cohere.py +0 -0
  80. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/dedupe.py +0 -0
  81. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/django/__init__.py +0 -0
  82. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/django/asgi.py +0 -0
  83. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/django/caching.py +0 -0
  84. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/django/middleware.py +0 -0
  85. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/django/signals_handlers.py +0 -0
  86. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/django/tasks.py +0 -0
  87. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/django/templates.py +0 -0
  88. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/django/transactions.py +0 -0
  89. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/django/views.py +0 -0
  90. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/dramatiq.py +0 -0
  91. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/excepthook.py +0 -0
  92. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/executing.py +0 -0
  93. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/falcon.py +0 -0
  94. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/fastapi.py +0 -0
  95. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/flask.py +0 -0
  96. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/gcp.py +0 -0
  97. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/gnu_backtrace.py +0 -0
  98. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/google_genai/__init__.py +0 -0
  99. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/google_genai/consts.py +0 -0
  100. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/google_genai/streaming.py +0 -0
  101. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/gql.py +0 -0
  102. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/graphene.py +0 -0
  103. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/grpc/__init__.py +0 -0
  104. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/grpc/aio/__init__.py +0 -0
  105. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/grpc/aio/client.py +0 -0
  106. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/grpc/aio/server.py +0 -0
  107. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/grpc/client.py +0 -0
  108. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/grpc/consts.py +0 -0
  109. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/grpc/server.py +0 -0
  110. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/httpx.py +0 -0
  111. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/httpx2.py +0 -0
  112. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/huey.py +0 -0
  113. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/huggingface_hub.py +0 -0
  114. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/langchain.py +0 -0
  115. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/langgraph.py +0 -0
  116. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/launchdarkly.py +0 -0
  117. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/litellm.py +0 -0
  118. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/litestar.py +0 -0
  119. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/logging.py +1 -1
  120. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/loguru.py +0 -0
  121. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/mcp.py +0 -0
  122. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/modules.py +0 -0
  123. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/openai.py +0 -0
  124. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/openai_agents/__init__.py +0 -0
  125. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/openai_agents/consts.py +0 -0
  126. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/openai_agents/patches/__init__.py +0 -0
  127. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/openai_agents/patches/agent_run.py +0 -0
  128. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/openai_agents/patches/error_tracing.py +0 -0
  129. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/openai_agents/patches/models.py +0 -0
  130. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/openai_agents/patches/runner.py +0 -0
  131. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/openai_agents/patches/tools.py +0 -0
  132. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/openai_agents/spans/__init__.py +0 -0
  133. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/openai_agents/spans/agent_workflow.py +0 -0
  134. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/openai_agents/spans/ai_client.py +0 -0
  135. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/openai_agents/spans/execute_tool.py +0 -0
  136. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/openai_agents/spans/handoff.py +0 -0
  137. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/openai_agents/spans/invoke_agent.py +0 -0
  138. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/openai_agents/utils.py +0 -0
  139. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/openfeature.py +0 -0
  140. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/opentelemetry/__init__.py +0 -0
  141. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/opentelemetry/consts.py +0 -0
  142. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/opentelemetry/integration.py +0 -0
  143. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/opentelemetry/propagator.py +0 -0
  144. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/opentelemetry/span_processor.py +0 -0
  145. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/otlp.py +0 -0
  146. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/pure_eval.py +0 -0
  147. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/pydantic_ai/__init__.py +0 -0
  148. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/pydantic_ai/consts.py +0 -0
  149. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/pydantic_ai/patches/__init__.py +0 -0
  150. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/pydantic_ai/patches/agent_run.py +0 -0
  151. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/pydantic_ai/patches/graph_nodes.py +0 -0
  152. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/pydantic_ai/spans/__init__.py +0 -0
  153. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/pydantic_ai/spans/ai_client.py +0 -0
  154. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/pydantic_ai/spans/execute_tool.py +0 -0
  155. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/pydantic_ai/spans/invoke_agent.py +0 -0
  156. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/pydantic_ai/spans/utils.py +0 -0
  157. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/pydantic_ai/utils.py +0 -0
  158. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/pymongo.py +0 -0
  159. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/pyramid.py +0 -0
  160. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/pyreqwest.py +0 -0
  161. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/quart.py +0 -0
  162. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/ray.py +0 -0
  163. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/redis/__init__.py +0 -0
  164. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/redis/_async_common.py +0 -0
  165. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/redis/_sync_common.py +0 -0
  166. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/redis/consts.py +0 -0
  167. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/redis/modules/__init__.py +0 -0
  168. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/redis/modules/caches.py +0 -0
  169. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/redis/modules/queries.py +0 -0
  170. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/redis/rb.py +0 -0
  171. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/redis/redis.py +0 -0
  172. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/redis/redis_cluster.py +0 -0
  173. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/redis/redis_py_cluster_legacy.py +0 -0
  174. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/redis/utils.py +0 -0
  175. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/rq.py +0 -0
  176. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/rust_tracing.py +0 -0
  177. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/sanic.py +0 -0
  178. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/serverless.py +0 -0
  179. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/socket.py +0 -0
  180. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/spark/__init__.py +0 -0
  181. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/spark/spark_driver.py +0 -0
  182. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/spark/spark_worker.py +0 -0
  183. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/sqlalchemy.py +0 -0
  184. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/starlette.py +0 -0
  185. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/starlite.py +0 -0
  186. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/statsig.py +0 -0
  187. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/stdlib.py +0 -0
  188. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/strawberry.py +0 -0
  189. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/sys_exit.py +0 -0
  190. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/threading.py +0 -0
  191. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/tornado.py +0 -0
  192. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/trytond.py +0 -0
  193. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/typer.py +0 -0
  194. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/unleash.py +0 -0
  195. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/unraisablehook.py +0 -0
  196. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/integrations/wsgi.py +0 -0
  197. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/logger.py +0 -0
  198. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/metrics.py +0 -0
  199. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/monitor.py +0 -0
  200. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/profiler/__init__.py +0 -0
  201. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/profiler/continuous_profiler.py +0 -0
  202. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/profiler/transaction_profiler.py +0 -0
  203. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/profiler/utils.py +0 -0
  204. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/py.typed +0 -0
  205. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/scope.py +0 -0
  206. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/scrubber.py +0 -0
  207. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/session.py +0 -0
  208. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/sessions.py +0 -0
  209. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/spotlight.py +0 -0
  210. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/tracing.py +0 -0
  211. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/tracing_utils.py +0 -0
  212. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/transport.py +0 -0
  213. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/types.py +0 -0
  214. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk/worker.py +0 -0
  215. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk.egg-info/dependency_links.txt +0 -0
  216. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk.egg-info/entry_points.txt +0 -0
  217. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk.egg-info/not-zip-safe +0 -0
  218. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk.egg-info/requires.txt +0 -0
  219. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/sentry_sdk.egg-info/top_level.txt +0 -0
  220. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/setup.cfg +0 -0
  221. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/__init__.py +0 -0
  222. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/conftest.py +0 -0
  223. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/__init__.py +0 -0
  224. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aiohttp/__init__.py +0 -0
  225. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aiohttp/aiohttp_helpers/__init__.py +0 -0
  226. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aiohttp/aiohttp_helpers/helpers.py +0 -0
  227. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aiohttp/test_aiohttp.py +0 -0
  228. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aiomysql/__init__.py +0 -0
  229. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aiomysql/test_aiomysql.py +0 -0
  230. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/anthropic/__init__.py +0 -0
  231. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/anthropic/test_anthropic.py +0 -0
  232. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/argv/test_argv.py +0 -0
  233. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/ariadne/__init__.py +0 -0
  234. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/ariadne/test_ariadne.py +0 -0
  235. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/arq/__init__.py +0 -0
  236. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/arq/test_arq.py +0 -0
  237. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/asgi/__init__.py +0 -0
  238. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/asgi/test_asgi.py +0 -0
  239. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/asyncio/__init__.py +0 -0
  240. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/asyncio/test_asyncio.py +0 -0
  241. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/asyncpg/__init__.py +0 -0
  242. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/asyncpg/asyncpg_helpers/__init__.py +0 -0
  243. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/asyncpg/asyncpg_helpers/helpers.py +0 -0
  244. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/asyncpg/test_asyncpg.py +0 -0
  245. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/__init__.py +0 -0
  246. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions/BasicException/index.py +0 -0
  247. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions/BasicOk/index.py +0 -0
  248. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions/InitError/index.py +0 -0
  249. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions/TimeoutError/index.py +0 -0
  250. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionAllowlist/.gitignore +0 -0
  251. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionAllowlist/.lock +0 -0
  252. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionAllowlist/index.py +0 -0
  253. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionDenylist/.gitignore +0 -0
  254. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionDenylist/.lock +0 -0
  255. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionDenylist/index.py +0 -0
  256. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionOff/.gitignore +0 -0
  257. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionOff/.lock +0 -0
  258. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionOff/index.py +0 -0
  259. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionUrlQueryAllowlist/.gitignore +0 -0
  260. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionUrlQueryAllowlist/index.py +0 -0
  261. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionUrlQueryDenylist/.gitignore +0 -0
  262. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionUrlQueryDenylist/index.py +0 -0
  263. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionUrlQueryOff/.gitignore +0 -0
  264. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionUrlQueryOff/index.py +0 -0
  265. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionUserInfoOff/.gitignore +0 -0
  266. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionUserInfoOff/index.py +0 -0
  267. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionUserInfoOn/.gitignore +0 -0
  268. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionUserInfoOn/index.py +0 -0
  269. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSendDefaultPii/.gitignore +0 -0
  270. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSendDefaultPii/.lock +0 -0
  271. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSendDefaultPii/index.py +0 -0
  272. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreaming/.gitignore +0 -0
  273. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreaming/index.py +0 -0
  274. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreamingDataCollection/.gitignore +0 -0
  275. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreamingDataCollection/index.py +0 -0
  276. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreamingPii/.gitignore +0 -0
  277. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreamingPii/index.py +0 -0
  278. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/RaiseErrorPerformanceDisabled/.gitignore +0 -0
  279. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/RaiseErrorPerformanceDisabled/index.py +0 -0
  280. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/RaiseErrorPerformanceEnabled/.gitignore +0 -0
  281. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/RaiseErrorPerformanceEnabled/index.py +0 -0
  282. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/RaiseErrorSpanStreaming/.gitignore +0 -0
  283. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/RaiseErrorSpanStreaming/index.py +0 -0
  284. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/TimeoutErrorScopeModified/.gitignore +0 -0
  285. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/TimeoutErrorScopeModified/index.py +0 -0
  286. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/TracesSampler/.gitignore +0 -0
  287. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/TracesSampler/index.py +0 -0
  288. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/utils.py +0 -0
  289. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/beam/__init__.py +0 -0
  290. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/beam/test_beam.py +0 -0
  291. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/boto3/__init__.py +0 -0
  292. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/boto3/aws_mock.py +0 -0
  293. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/boto3/s3_list.xml +0 -0
  294. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/boto3/test_aws_http_connection.py +0 -0
  295. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/boto3/test_s3.py +0 -0
  296. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/boto3/test_trace_propagation.py +0 -0
  297. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/bottle/__init__.py +0 -0
  298. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/celery/__init__.py +0 -0
  299. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/celery/integration_tests/__init__.py +0 -0
  300. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/celery/integration_tests/test_celery_beat_cron_monitoring.py +0 -0
  301. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/celery/test_celery.py +0 -0
  302. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/celery/test_celery_beat_crons.py +0 -0
  303. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/celery/test_update_celery_task_headers.py +0 -0
  304. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/chalice/__init__.py +0 -0
  305. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/chalice/test_chalice.py +0 -0
  306. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/clickhouse_driver/__init__.py +0 -0
  307. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/cloud_resource_context/__init__.py +0 -0
  308. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/cloud_resource_context/test_cloud_resource_context.py +0 -0
  309. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/cohere/__init__.py +0 -0
  310. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/cohere/test_cohere.py +0 -0
  311. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/conftest.py +0 -0
  312. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/django/__init__.py +0 -0
  313. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/django/asgi/__init__.py +0 -0
  314. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/django/asgi/image.png +0 -0
  315. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/django/asgi/test_asgi.py +0 -0
  316. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/django/django_helpers/__init__.py +0 -0
  317. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/django/django_helpers/views.py +0 -0
  318. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/django/myapp/__init__.py +0 -0
  319. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/django/myapp/asgi.py +0 -0
  320. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/django/myapp/custom_urls.py +0 -0
  321. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/django/myapp/manage.py +0 -0
  322. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/django/myapp/management/__init__.py +0 -0
  323. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/django/myapp/management/commands/__init__.py +0 -0
  324. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/django/myapp/management/commands/mycrash.py +0 -0
  325. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/django/myapp/middleware.py +0 -0
  326. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/django/myapp/routing.py +0 -0
  327. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/django/myapp/settings.py +0 -0
  328. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/django/myapp/signals.py +0 -0
  329. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/django/myapp/templates/error.html +0 -0
  330. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/django/myapp/templates/trace_meta.html +0 -0
  331. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/django/myapp/templates/user_name.html +0 -0
  332. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/django/myapp/urls.py +0 -0
  333. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/django/myapp/views.py +0 -0
  334. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/django/myapp/wsgi.py +0 -0
  335. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/django/test_basic.py +0 -0
  336. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/django/test_data_scrubbing.py +0 -0
  337. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/django/test_db_query_data.py +0 -0
  338. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/django/test_db_transactions.py +0 -0
  339. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/django/test_middleware.py +0 -0
  340. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/django/test_tasks.py +0 -0
  341. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/django/test_transactions.py +0 -0
  342. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/django/utils.py +0 -0
  343. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/dramatiq/__init__.py +0 -0
  344. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/dramatiq/test_dramatiq.py +0 -0
  345. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/excepthook/test_excepthook.py +0 -0
  346. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/falcon/__init__.py +0 -0
  347. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/falcon/test_falcon.py +0 -0
  348. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/fastapi/__init__.py +0 -0
  349. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/fastapi/photo.jpg +0 -0
  350. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/fastapi/test_fastapi.py +0 -0
  351. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/fastmcp/__init__.py +0 -0
  352. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/fastmcp/test_fastmcp.py +0 -0
  353. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/flask/__init__.py +0 -0
  354. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/flask/test_flask.py +0 -0
  355. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/gcp/__init__.py +0 -0
  356. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/gcp/test_gcp.py +0 -0
  357. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/google_genai/__init__.py +0 -0
  358. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/google_genai/test_google_genai.py +0 -0
  359. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/gql/__init__.py +0 -0
  360. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/gql/test_gql.py +0 -0
  361. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/graphene/__init__.py +0 -0
  362. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/graphene/test_graphene.py +0 -0
  363. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/grpc/__init__.py +0 -0
  364. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/grpc/compile_test_services.sh +0 -0
  365. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/grpc/grpc_test_service_pb2.py +0 -0
  366. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/grpc/grpc_test_service_pb2.pyi +0 -0
  367. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/grpc/grpc_test_service_pb2_grpc.py +0 -0
  368. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/grpc/protos/grpc_test_service.proto +0 -0
  369. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/grpc/test_grpc.py +0 -0
  370. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/grpc/test_grpc_aio.py +0 -0
  371. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/httpx/__init__.py +0 -0
  372. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/httpx/httpx_helpers/__init__.py +0 -0
  373. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/httpx/httpx_helpers/helpers.py +0 -0
  374. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/httpx/test_httpx.py +0 -0
  375. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/httpx2/__init__.py +0 -0
  376. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/httpx2/httpx2_helpers/__init__.py +0 -0
  377. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/httpx2/httpx2_helpers/helpers.py +0 -0
  378. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/httpx2/test_httpx2.py +0 -0
  379. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/huey/__init__.py +0 -0
  380. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/huey/test_huey.py +0 -0
  381. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/huggingface_hub/__init__.py +0 -0
  382. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/langchain/__init__.py +0 -0
  383. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/langchain/test_langchain.py +0 -0
  384. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/langgraph/__init__.py +0 -0
  385. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/langgraph/test_langgraph.py +0 -0
  386. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/launchdarkly/__init__.py +0 -0
  387. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/launchdarkly/test_launchdarkly.py +0 -0
  388. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/litellm/__init__.py +0 -0
  389. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/litellm/test_litellm.py +0 -0
  390. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/litestar/__init__.py +0 -0
  391. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/litestar/test_litestar.py +0 -0
  392. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/loguru/__init__.py +0 -0
  393. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/loguru/test_loguru.py +0 -0
  394. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/mcp/__init__.py +0 -0
  395. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/mcp/test_mcp.py +0 -0
  396. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/modules/test_modules.py +0 -0
  397. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/openai/__init__.py +0 -0
  398. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/openai/test_openai.py +0 -0
  399. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/openai_agents/__init__.py +0 -0
  400. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/openai_agents/test_openai_agents.py +0 -0
  401. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/openfeature/__init__.py +0 -0
  402. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/openfeature/test_openfeature.py +0 -0
  403. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/opentelemetry/__init__.py +0 -0
  404. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/opentelemetry/test_entry_points.py +0 -0
  405. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/opentelemetry/test_experimental.py +0 -0
  406. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/opentelemetry/test_propagator.py +0 -0
  407. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/opentelemetry/test_span_processor.py +0 -0
  408. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/otlp/__init__.py +0 -0
  409. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/otlp/test_otlp.py +0 -0
  410. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/pure_eval/__init__.py +0 -0
  411. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/pure_eval/test_pure_eval.py +0 -0
  412. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/pydantic_ai/__init__.py +0 -0
  413. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/pymongo/__init__.py +0 -0
  414. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/pyramid/__init__.py +0 -0
  415. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/pyramid/test_pyramid.py +0 -0
  416. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/pyreqwest/__init__.py +0 -0
  417. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/pyreqwest/pyreqwest_helpers/__init__.py +0 -0
  418. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/pyreqwest/pyreqwest_helpers/helpers.py +0 -0
  419. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/pyreqwest/test_pyreqwest.py +0 -0
  420. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/quart/__init__.py +0 -0
  421. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/quart/test_quart.py +0 -0
  422. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/ray/__init__.py +0 -0
  423. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/ray/test_ray.py +0 -0
  424. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/redis/__init__.py +0 -0
  425. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/redis/asyncio/__init__.py +0 -0
  426. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/redis/asyncio/test_redis_asyncio.py +0 -0
  427. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/redis/cluster/__init__.py +0 -0
  428. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/redis/cluster/test_redis_cluster.py +0 -0
  429. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/redis/cluster_asyncio/__init__.py +0 -0
  430. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/redis/cluster_asyncio/test_redis_cluster_asyncio.py +0 -0
  431. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/redis/test_redis.py +0 -0
  432. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/redis/test_redis_cache_module.py +0 -0
  433. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/redis/test_redis_cache_module_async.py +0 -0
  434. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/redis_py_cluster_legacy/__init__.py +0 -0
  435. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/redis_py_cluster_legacy/test_redis_py_cluster_legacy.py +0 -0
  436. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/requests/__init__.py +0 -0
  437. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/requests/test_requests.py +0 -0
  438. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/rq/__init__.py +0 -0
  439. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/rq/test_rq.py +0 -0
  440. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/rust_tracing/__init__.py +0 -0
  441. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/rust_tracing/test_rust_tracing.py +0 -0
  442. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/sanic/__init__.py +0 -0
  443. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/sanic/test_sanic.py +0 -0
  444. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/serverless/test_serverless.py +0 -0
  445. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/socket/__init__.py +0 -0
  446. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/socket/test_socket.py +0 -0
  447. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/spark/__init__.py +0 -0
  448. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/spark/test_spark.py +0 -0
  449. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/sqlalchemy/__init__.py +0 -0
  450. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/sqlalchemy/sqlalchemy_helpers/__init__.py +0 -0
  451. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/sqlalchemy/sqlalchemy_helpers/helpers.py +0 -0
  452. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/sqlalchemy/test_sqlalchemy.py +0 -0
  453. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/starlette/__init__.py +0 -0
  454. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/starlette/photo.jpg +0 -0
  455. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/starlette/templates/trace_meta.html +0 -0
  456. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/starlette/test_starlette.py +0 -0
  457. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/starlite/__init__.py +0 -0
  458. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/starlite/test_starlite.py +0 -0
  459. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/statsig/__init__.py +0 -0
  460. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/statsig/test_statsig.py +0 -0
  461. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/stdlib/__init__.py +0 -0
  462. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/stdlib/httplib_helpers/__init__.py +0 -0
  463. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/stdlib/httplib_helpers/helpers.py +0 -0
  464. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/stdlib/test_httplib.py +0 -0
  465. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/stdlib/test_subprocess.py +0 -0
  466. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/strawberry/__init__.py +0 -0
  467. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/strawberry/test_strawberry.py +0 -0
  468. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/sys_exit/test_sys_exit.py +0 -0
  469. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/test_gnu_backtrace.py +0 -0
  470. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/threading/test_threading.py +0 -0
  471. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/tornado/__init__.py +0 -0
  472. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/tornado/test_tornado.py +0 -0
  473. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/trytond/__init__.py +0 -0
  474. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/trytond/test_trytond.py +0 -0
  475. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/typer/__init__.py +0 -0
  476. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/typer/test_typer.py +0 -0
  477. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/unleash/__init__.py +0 -0
  478. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/unleash/test_unleash.py +0 -0
  479. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/unleash/testutils.py +0 -0
  480. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/unraisablehook/test_unraisablehook.py +0 -0
  481. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/utils.py +0 -0
  482. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/integrations/wsgi/test_wsgi.py +0 -0
  483. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/new_scopes_compat/__init__.py +0 -0
  484. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/new_scopes_compat/conftest.py +0 -0
  485. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/new_scopes_compat/test_new_scopes_compat.py +0 -0
  486. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/new_scopes_compat/test_new_scopes_compat_event.py +0 -0
  487. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/profiler/__init__.py +0 -0
  488. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/profiler/test_continuous_profiler.py +0 -0
  489. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/profiler/test_transaction_profiler.py +0 -0
  490. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/test.key +0 -0
  491. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/test.pem +0 -0
  492. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/test_ai_integration_deactivation.py +0 -0
  493. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/test_ai_monitoring.py +0 -0
  494. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/test_api.py +0 -0
  495. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/test_attributes.py +0 -0
  496. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/test_client.py +0 -0
  497. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/test_conftest.py +0 -0
  498. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/test_crons.py +0 -0
  499. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/test_data_collection.py +0 -0
  500. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/test_dsc.py +0 -0
  501. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/test_envelope.py +0 -0
  502. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/test_exceptiongroup.py +0 -0
  503. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/test_feature_flags.py +0 -0
  504. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/test_full_stack_frames.py +0 -0
  505. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/test_gevent.py +0 -0
  506. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/test_import.py +0 -0
  507. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/test_logs.py +0 -0
  508. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/test_lru_cache.py +0 -0
  509. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/test_metrics.py +0 -0
  510. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/test_monitor.py +0 -0
  511. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/test_propagationcontext.py +0 -0
  512. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/test_scope.py +0 -0
  513. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/test_scrubber.py +0 -0
  514. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/test_serializer.py +0 -0
  515. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/test_sessions.py +0 -0
  516. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/test_shadowed_module.py +0 -0
  517. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/test_spotlight.py +0 -0
  518. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/test_tracing_utils.py +0 -0
  519. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/test_transport.py +0 -0
  520. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/test_types.py +0 -0
  521. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/test_utils.py +0 -0
  522. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/tracing/test_baggage.py +0 -0
  523. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/tracing/test_conversation_id.py +0 -0
  524. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/tracing/test_decorator.py +0 -0
  525. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/tracing/test_deprecated.py +0 -0
  526. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/tracing/test_http_headers.py +0 -0
  527. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/tracing/test_ignore_status_codes.py +0 -0
  528. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/tracing/test_integration_tests.py +0 -0
  529. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/tracing/test_misc.py +0 -0
  530. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/tracing/test_noop_span.py +0 -0
  531. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/tracing/test_propagation.py +0 -0
  532. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/tracing/test_sample_rand.py +0 -0
  533. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/tracing/test_sample_rand_propagation.py +0 -0
  534. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/tracing/test_sampling.py +0 -0
  535. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/tracing/test_span_batcher.py +0 -0
  536. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/tracing/test_span_name.py +0 -0
  537. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/tracing/test_span_origin.py +0 -0
  538. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/tracing/test_span_streaming.py +0 -0
  539. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/utils/__init__.py +0 -0
  540. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/tests/utils/test_contextvars.py +0 -0
  541. {sentry_sdk-2.69.1 → sentry_sdk-2.69.2}/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.69.1
3
+ Version: 2.69.2
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
@@ -42,7 +42,8 @@ from sentry_sdk.scrubber import EventScrubber
42
42
  from sentry_sdk.serializer import serialize
43
43
  from sentry_sdk.sessions import SessionFlusher
44
44
  from sentry_sdk.traces import SpanStatus, StreamedSpan
45
- from sentry_sdk.tracing import trace
45
+ from sentry_sdk.traces import trace as streaming_trace
46
+ from sentry_sdk.tracing import trace as legacy_trace
46
47
  from sentry_sdk.tracing_utils import has_span_streaming_enabled
47
48
  from sentry_sdk.transport import (
48
49
  AsyncHttpTransport,
@@ -533,8 +534,14 @@ class _Client(BaseClient):
533
534
  self, functions_to_trace: "Sequence[Dict[str, str]]"
534
535
  ) -> None:
535
536
  """
536
- Instruments the functions given in the list `functions_to_trace` with the `@sentry_sdk.tracing.trace` decorator.
537
+ Instruments the functions given in the list `functions_to_trace` with a trace decorator.
537
538
  """
539
+ trace = (
540
+ streaming_trace
541
+ if has_span_streaming_enabled(self.options)
542
+ else legacy_trace
543
+ )
544
+
538
545
  for function in functions_to_trace:
539
546
  class_name = None
540
547
  function_qualname = function["qualified_name"]
@@ -776,6 +783,7 @@ class _Client(BaseClient):
776
783
  event["timestamp"] = datetime.now(timezone.utc)
777
784
 
778
785
  is_transaction = event.get("type") == "transaction"
786
+ is_checkin = event.get("type") == "check_in"
779
787
 
780
788
  if scope is not None:
781
789
  spans_before = len(cast(List[Dict[str, object]], event.get("spans", [])))
@@ -830,6 +838,7 @@ class _Client(BaseClient):
830
838
 
831
839
  if (
832
840
  not is_transaction
841
+ and not is_checkin
833
842
  and self.options["attach_stacktrace"]
834
843
  and "exception" not in event
835
844
  and "stacktrace" not in event
@@ -1337,7 +1337,7 @@ class ClientConstructor:
1337
1337
  profile_lifecycle: 'Literal["manual", "trace"]' = "manual",
1338
1338
  profile_session_sample_rate: "Optional[float]" = None,
1339
1339
  auto_enabling_integrations: bool = True,
1340
- disabled_integrations: "Optional[Sequence[sentry_sdk.integrations.Integration]]" = None,
1340
+ disabled_integrations: "Optional[Sequence[Union[sentry_sdk.integrations.Integration, type[sentry_sdk.integrations.Integration]]]]" = None,
1341
1341
  auto_session_tracking: bool = True,
1342
1342
  send_client_reports: bool = True,
1343
1343
  _experiments: "Experiments" = {}, # noqa: B006
@@ -1848,4 +1848,4 @@ DEFAULT_OPTIONS = _get_default_options()
1848
1848
  del _get_default_options
1849
1849
 
1850
1850
 
1851
- VERSION = "2.69.1"
1851
+ VERSION = "2.69.2"
@@ -45,6 +45,27 @@ TIMEOUT_WARNING_BUFFER = 1500 # Buffer time required to send timeout warning to
45
45
  MILLIS_TO_SECONDS = 1000.0
46
46
 
47
47
 
48
+ def _get_user_from_event(aws_event: "dict[str, Any]") -> "dict[str, Any]":
49
+ if not isinstance(aws_event, dict):
50
+ return {}
51
+
52
+ identity = aws_event.get("requestContext", {}).get("identity")
53
+ if identity is None:
54
+ return {}
55
+
56
+ user_info: "dict[str, Any]" = {}
57
+
58
+ user_arn = identity.get("userArn")
59
+ if user_arn is not None:
60
+ user_info["id"] = user_arn
61
+
62
+ ip = identity.get("sourceIp")
63
+ if ip is not None:
64
+ user_info["ip_address"] = ip
65
+
66
+ return user_info
67
+
68
+
48
69
  def _wrap_init_error(init_error: "F") -> "F":
49
70
  @ensure_integration_enabled(AwsLambdaIntegration, init_error)
50
71
  def sentry_init_error(*args: "Any", **kwargs: "Any") -> "Any":
@@ -181,6 +202,17 @@ def _wrap_handler(handler: "F") -> "F":
181
202
  elif should_send_default_pii():
182
203
  additional_attributes["url.query"] = urlencode(qs)
183
204
 
205
+ if not scope._user:
206
+ if has_data_collection_enabled(client.options):
207
+ if client.options["data_collection"]["user_info"]:
208
+ user_info = _get_user_from_event(request_data)
209
+ if user_info:
210
+ scope.set_user(user_info)
211
+ elif should_send_default_pii():
212
+ user_info = _get_user_from_event(request_data)
213
+ if user_info:
214
+ scope.set_user(user_info)
215
+
184
216
  sampling_context = {
185
217
  "aws_event": aws_event,
186
218
  "aws_context": aws_context,
@@ -440,38 +472,22 @@ def _make_request_event_processor(
440
472
  client_options = sentry_sdk.get_client().options
441
473
  if has_data_collection_enabled(client_options):
442
474
  if client_options["data_collection"]["user_info"]:
443
- user_info = sentry_event.setdefault("user", {})
444
-
445
- identity = aws_event.get("requestContext", {}).get("identity")
446
- if identity is None:
447
- identity = {}
448
-
449
- id = identity.get("userArn")
450
- if id is not None:
451
- user_info.setdefault("id", id)
452
-
453
- ip = identity.get("sourceIp")
454
- if ip is not None:
455
- user_info.setdefault("ip_address", ip)
475
+ extracted_user = _get_user_from_event(aws_event)
476
+ if extracted_user:
477
+ user_info = sentry_event.setdefault("user", {})
478
+ for key, value in extracted_user.items():
479
+ user_info.setdefault(key, value)
456
480
 
457
481
  if "incoming_request" in client_options["data_collection"]["http_bodies"]:
458
482
  if "body" in aws_event:
459
483
  request["data"] = aws_event.get("body", "")
460
484
 
461
485
  elif should_send_default_pii():
462
- user_info = sentry_event.setdefault("user", {})
463
-
464
- identity = aws_event.get("requestContext", {}).get("identity")
465
- if identity is None:
466
- identity = {}
467
-
468
- id = identity.get("userArn")
469
- if id is not None:
470
- user_info.setdefault("id", id)
471
-
472
- ip = identity.get("sourceIp")
473
- if ip is not None:
474
- user_info.setdefault("ip_address", ip)
486
+ extracted_user = _get_user_from_event(aws_event)
487
+ if extracted_user:
488
+ user_info = sentry_event.setdefault("user", {})
489
+ for key, value in extracted_user.items():
490
+ user_info.setdefault(key, value)
475
491
 
476
492
  if "body" in aws_event:
477
493
  request["data"] = aws_event.get("body", "")
@@ -75,6 +75,19 @@ class BottleIntegration(Integration):
75
75
  version = parse_version(BOTTLE_VERSION)
76
76
  _check_minimum_version(BottleIntegration, version)
77
77
 
78
+ # Bottle's Route.__repr__ might lead to a never-terminating while True
79
+ # loop when attach_stacktrace=True.
80
+ def _sentry_route_repr(self: "Route") -> str:
81
+ cb = self.callback
82
+ return "<%s %s -> %s:%s>" % (
83
+ self.method,
84
+ self.rule,
85
+ getattr(cb, "__module__", "?"),
86
+ getattr(cb, "__name__", "?"),
87
+ )
88
+
89
+ Route.__sentry_repr__ = _sentry_route_repr
90
+
78
91
  old_app = Bottle.__call__
79
92
 
80
93
  @ensure_integration_enabled(BottleIntegration, old_app)
@@ -161,7 +161,7 @@ def _wrap_end(f: "Callable[P, T]") -> "Callable[P, T]":
161
161
  sentry_sdk.get_isolation_scope().add_breadcrumb(
162
162
  message=query,
163
163
  category="query",
164
- data={"db.result": res, **breadcrumb_data},
164
+ data=breadcrumb_data,
165
165
  )
166
166
 
167
167
  span = getattr(instance.connection, "_sentry_span", None)
@@ -608,7 +608,7 @@ def extract_tool_calls(
608
608
 
609
609
  # Extract from candidates, sometimes tool calls are nested under the content.parts object
610
610
  candidates = getattr(response, "candidates", [])
611
- if response is not None:
611
+ if candidates and response is not None:
612
612
  for candidate in candidates:
613
613
  if not hasattr(candidate, "content") or not getattr(
614
614
  candidate.content, "parts", []
@@ -1,4 +1,5 @@
1
1
  import sys
2
+ from contextlib import nullcontext
2
3
  from functools import wraps
3
4
  from typing import TYPE_CHECKING
4
5
 
@@ -60,11 +61,15 @@ def _patch_execute_tool_call() -> None:
60
61
  # Create execute_tool span
61
62
  # Nesting is handled by isolation_scope() to ensure proper parent-child relationships
62
63
  with sentry_sdk.isolation_scope():
63
- with execute_tool_span(
64
- name,
65
- args_dict,
66
- agent,
67
- tool_definition=selected_tool_definition,
64
+ with (
65
+ execute_tool_span(
66
+ name,
67
+ args_dict,
68
+ agent,
69
+ tool_definition=selected_tool_definition,
70
+ )
71
+ if validated.args_valid
72
+ else nullcontext()
68
73
  ) as span:
69
74
  try:
70
75
  result = await original_execute_tool_call(
@@ -73,7 +78,8 @@ def _patch_execute_tool_call() -> None:
73
78
  *args,
74
79
  **kwargs,
75
80
  )
76
- update_execute_tool_span(span, result)
81
+ if span is not None:
82
+ update_execute_tool_span(span, result)
77
83
  return result
78
84
  except ToolRetryError as exc:
79
85
  exc_info = sys.exc_info()
@@ -43,8 +43,8 @@ MAX_EVENT_BYTES = 10**6
43
43
 
44
44
  # Maximum depth and breadth of databags. Excess data will be trimmed. If
45
45
  # max_request_body_size is "always", request bodies won't be trimmed.
46
- MAX_DATABAG_DEPTH = 5
47
- MAX_DATABAG_BREADTH = 10
46
+ MAX_DATABAG_DEPTH: int = 5
47
+ MAX_DATABAG_BREADTH: int = 10
48
48
  CYCLE_MARKER = "<cyclic>"
49
49
 
50
50
 
@@ -1,10 +1,21 @@
1
1
  """
2
- EXPERIMENTAL. Do not use in production.
2
+ The API in this file is only meant to be used in span streaming mode. It should
3
+ not be mixed with the legacy tracing API (sentry_sdk.start_transaction,
4
+ sentry_sdk.start_span, etc.).
3
5
 
4
- The API in this file is only meant to be used in span streaming mode.
6
+ You can enable span streaming mode via:
5
7
 
6
- You can enable span streaming mode via
7
- sentry_sdk.init(trace_lifecycle="stream").
8
+ ```
9
+ import sentry_sdk
10
+
11
+ sentry_sdk.init(
12
+ trace_lifecycle="stream",
13
+ )
14
+ ```
15
+
16
+ See
17
+ https://docs.sentry.io/platforms/python/tracing/streamed-spans/migration-guide/
18
+ for how to migrate to span streaming.
8
19
  """
9
20
 
10
21
  import sys
@@ -110,10 +121,7 @@ def start_span(
110
121
  active: bool = True,
111
122
  ) -> "StreamedSpan":
112
123
  """
113
- Start a span.
114
-
115
- EXPERIMENTAL. Use sentry_sdk.start_transaction() and sentry_sdk.start_span()
116
- instead.
124
+ Start a span in streaming mode.
117
125
 
118
126
  The span's parent, unless provided explicitly via the `parent_span` argument,
119
127
  will be the current active span, if any. If there is none, this span will
@@ -185,9 +193,7 @@ def start_span(
185
193
 
186
194
  def continue_trace(incoming: "dict[str, Any]") -> None:
187
195
  """
188
- Continue a trace from headers or environment variables.
189
-
190
- EXPERIMENTAL. Use sentry_sdk.continue_trace() instead.
196
+ Continue a trace from headers or environment variables in streaming mode.
191
197
 
192
198
  This function sets the propagation context on the scope. Any span started
193
199
  in the updated scope will belong under the trace extracted from the
@@ -211,9 +217,7 @@ def continue_trace(incoming: "dict[str, Any]") -> None:
211
217
 
212
218
  def new_trace() -> None:
213
219
  """
214
- Resets the propagation context, forcing a new trace.
215
-
216
- EXPERIMENTAL.
220
+ Resets the propagation context, forcing a new trace, in streaming mode.
217
221
 
218
222
  This function sets the propagation context on the scope. Any span started
219
223
  in the updated scope will start its own trace.
@@ -811,9 +815,7 @@ def trace(
811
815
  active: bool = True,
812
816
  ) -> "Union[Callable[P, R], Callable[[Callable[P, R]], Callable[P, R]]]":
813
817
  """
814
- Decorator to start a span around a function call.
815
-
816
- EXPERIMENTAL. Use @sentry_sdk.trace instead.
818
+ Decorator to start a span around a function call in streaming mode.
817
819
 
818
820
  This decorator automatically creates a new span when the decorated function
819
821
  is called, and finishes the span when the function returns or raises an exception.
@@ -1,4 +1,3 @@
1
- import base64
2
1
  import copy
3
2
  import json
4
3
  import linecache
@@ -85,8 +84,6 @@ logger = logging.getLogger("sentry_sdk.errors")
85
84
 
86
85
  _installed_modules = None
87
86
 
88
- BASE64_ALPHABET = re.compile(r"^[a-zA-Z0-9/+=]*$")
89
-
90
87
  FALSY_ENV_VALUES = frozenset(("false", "f", "n", "no", "off", "0"))
91
88
  TRUTHY_ENV_VALUES = frozenset(("true", "t", "y", "yes", "on", "1"))
92
89
  _AWS_SIGV4_SIGNING_ALGORITHMS = frozenset(
@@ -1620,43 +1617,6 @@ class TimeoutThread(threading.Thread):
1620
1617
  )
1621
1618
 
1622
1619
 
1623
- def to_base64(original: str) -> "Optional[str]":
1624
- """
1625
- Convert a string to base64, via UTF-8. Returns None on invalid input.
1626
- """
1627
- base64_string = None
1628
-
1629
- try:
1630
- utf8_bytes = original.encode("UTF-8")
1631
- base64_bytes = base64.b64encode(utf8_bytes)
1632
- base64_string = base64_bytes.decode("UTF-8")
1633
- except Exception as err:
1634
- logger.warning("Unable to encode {orig} to base64:".format(orig=original), err)
1635
-
1636
- return base64_string
1637
-
1638
-
1639
- def from_base64(base64_string: str) -> "Optional[str]":
1640
- """
1641
- Convert a string from base64, via UTF-8. Returns None on invalid input.
1642
- """
1643
- utf8_string = None
1644
-
1645
- try:
1646
- only_valid_chars = BASE64_ALPHABET.match(base64_string)
1647
- assert only_valid_chars
1648
-
1649
- base64_bytes = base64_string.encode("UTF-8")
1650
- utf8_bytes = base64.b64decode(base64_bytes)
1651
- utf8_string = utf8_bytes.decode("UTF-8")
1652
- except Exception as err:
1653
- logger.warning(
1654
- "Unable to decode {b64} from base64:".format(b64=base64_string), err
1655
- )
1656
-
1657
- return utf8_string
1658
-
1659
-
1660
1620
  Components = namedtuple("Components", ["scheme", "netloc", "path", "query", "fragment"])
1661
1621
 
1662
1622
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sentry-sdk
3
- Version: 2.69.1
3
+ Version: 2.69.2
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
@@ -297,6 +297,8 @@ tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStre
297
297
  tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreaming/index.py
298
298
  tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreamingDataCollection/.gitignore
299
299
  tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreamingDataCollection/index.py
300
+ tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreamingDataCollectionUserInfoOff/index.py
301
+ tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreamingDataCollectionUserInfoOn/index.py
300
302
  tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreamingPii/.gitignore
301
303
  tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreamingPii/index.py
302
304
  tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/RaiseErrorPerformanceDisabled/.gitignore
@@ -22,7 +22,7 @@ def get_file_text(file_name):
22
22
 
23
23
  setup(
24
24
  name="sentry-sdk",
25
- version="2.69.1",
25
+ version="2.69.2",
26
26
  author="Sentry Team and Contributors",
27
27
  author_email="hello@sentry.io",
28
28
  url="https://github.com/getsentry/sentry-python",
@@ -0,0 +1,20 @@
1
+ import os
2
+
3
+ import sentry_sdk
4
+ from sentry_sdk.integrations.aws_lambda import AwsLambdaIntegration
5
+
6
+ sentry_sdk.init(
7
+ dsn=os.environ.get("SENTRY_DSN"),
8
+ traces_sample_rate=1.0,
9
+ integrations=[AwsLambdaIntegration()],
10
+ trace_lifecycle="stream",
11
+ _experiments={
12
+ "data_collection": {
13
+ "user_info": False,
14
+ }
15
+ },
16
+ )
17
+
18
+
19
+ def handler(event, context):
20
+ return {"event": event}
@@ -0,0 +1,20 @@
1
+ import os
2
+
3
+ import sentry_sdk
4
+ from sentry_sdk.integrations.aws_lambda import AwsLambdaIntegration
5
+
6
+ sentry_sdk.init(
7
+ dsn=os.environ.get("SENTRY_DSN"),
8
+ traces_sample_rate=1.0,
9
+ integrations=[AwsLambdaIntegration()],
10
+ trace_lifecycle="stream",
11
+ _experiments={
12
+ "data_collection": {
13
+ "user_info": True,
14
+ }
15
+ },
16
+ )
17
+
18
+
19
+ def handler(event, context):
20
+ return {"event": event}
@@ -1144,6 +1144,80 @@ def test_span_streaming_url_query_params_with_data_collection(
1144
1144
  )
1145
1145
 
1146
1146
 
1147
+ def test_span_streaming_user_info_with_send_default_pii(
1148
+ lambda_client, test_environment
1149
+ ):
1150
+ payload = b"""
1151
+ {
1152
+ "resource": "/asd",
1153
+ "path": "/asd",
1154
+ "httpMethod": "GET",
1155
+ "headers": {
1156
+ "Host": "iwsz2c7uwi.execute-api.us-east-1.amazonaws.com",
1157
+ "User-Agent": "custom",
1158
+ "X-Forwarded-Proto": "https"
1159
+ },
1160
+ "queryStringParameters": {
1161
+ "bonkers": "true"
1162
+ },
1163
+ "pathParameters": null,
1164
+ "stageVariables": null,
1165
+ "requestContext": {
1166
+ "identity": {
1167
+ "sourceIp": "213.47.147.207",
1168
+ "userArn": "42"
1169
+ }
1170
+ },
1171
+ "body": null,
1172
+ "isBase64Encoded": false
1173
+ }
1174
+ """
1175
+
1176
+ lambda_client.invoke(
1177
+ FunctionName="BasicOkSpanStreamingPii",
1178
+ Payload=payload,
1179
+ )
1180
+ span_items = test_environment["server"].span_items
1181
+
1182
+ segment_spans = [s for s in span_items if s.get("is_segment")]
1183
+ assert len(segment_spans) == 1
1184
+ attrs = segment_spans[0]["attributes"]
1185
+
1186
+ assert _get_span_attr(attrs, "user.id") == "42"
1187
+
1188
+
1189
+ def test_span_streaming_user_info_with_data_collection_user_info_on(
1190
+ lambda_client, test_environment
1191
+ ):
1192
+ lambda_client.invoke(
1193
+ FunctionName="BasicOkSpanStreamingDataCollectionUserInfoOn",
1194
+ Payload=USER_INFO_PAYLOAD,
1195
+ )
1196
+ span_items = test_environment["server"].span_items
1197
+
1198
+ segment_spans = [s for s in span_items if s.get("is_segment")]
1199
+ assert len(segment_spans) == 1
1200
+ attrs = segment_spans[0]["attributes"]
1201
+
1202
+ assert _get_span_attr(attrs, "user.id") == "42"
1203
+
1204
+
1205
+ def test_span_streaming_user_info_with_data_collection_user_info_off(
1206
+ lambda_client, test_environment
1207
+ ):
1208
+ lambda_client.invoke(
1209
+ FunctionName="BasicOkSpanStreamingDataCollectionUserInfoOff",
1210
+ Payload=USER_INFO_PAYLOAD,
1211
+ )
1212
+ span_items = test_environment["server"].span_items
1213
+
1214
+ segment_spans = [s for s in span_items if s.get("is_segment")]
1215
+ assert len(segment_spans) == 1
1216
+ attrs = segment_spans[0]["attributes"]
1217
+
1218
+ assert "user.id" not in attrs
1219
+
1220
+
1147
1221
  @pytest.mark.parametrize(
1148
1222
  "lambda_function_name",
1149
1223
  ["RaiseErrorPerformanceEnabled", "RaiseErrorPerformanceDisabled"],
@@ -166,6 +166,39 @@ def test_large_json_request(
166
166
  assert len(event["request"]["data"]["foo"]["bar"]) == 1034
167
167
 
168
168
 
169
+ def test_attach_stacktrace_doesnt_hang(sentry_init, capture_events, app, get_client):
170
+ sentry_init(
171
+ integrations=[BottleIntegration()],
172
+ max_request_body_size="always",
173
+ attach_stacktrace=True,
174
+ )
175
+
176
+ data = {"foo": {"bar": "a" * (1024)}}
177
+
178
+ @app.route("/", method="POST")
179
+ def index():
180
+ import bottle
181
+
182
+ assert bottle.request.json == data
183
+ assert bottle.request.body.read() == json.dumps(data).encode("ascii")
184
+ capture_message("hi")
185
+ return "ok"
186
+
187
+ events = capture_events()
188
+
189
+ client = get_client()
190
+ response = client.get("/")
191
+
192
+ response = client.post("/", content_type="application/json", data=json.dumps(data))
193
+ assert response[1] == "200 OK"
194
+
195
+ (event,) = events
196
+
197
+ # As long as this test finishes, we're good. It's just making sure we don't
198
+ # hang.
199
+ assert event["request"]["data"]
200
+
201
+
169
202
  @pytest.mark.parametrize("data", [{}, []], ids=["empty-dict", "empty-list"])
170
203
  def test_empty_json_request(sentry_init, capture_events, app, data, get_client):
171
204
  sentry_init(integrations=[BottleIntegration()])
@@ -373,6 +373,7 @@ def test_clickhouse_client_breadcrumbs_with_pii_span_streaming(
373
373
  "db.user": "default",
374
374
  "server.address": "localhost",
375
375
  "server.port": 9000,
376
+ "db.result": [],
376
377
  },
377
378
  "message": "DROP TABLE IF EXISTS test",
378
379
  "type": "default",
@@ -386,6 +387,7 @@ def test_clickhouse_client_breadcrumbs_with_pii_span_streaming(
386
387
  "db.user": "default",
387
388
  "server.address": "localhost",
388
389
  "server.port": 9000,
390
+ "db.result": [],
389
391
  },
390
392
  "message": "CREATE TABLE test (x Int32) ENGINE = Memory",
391
393
  "type": "default",
@@ -425,6 +427,7 @@ def test_clickhouse_client_breadcrumbs_with_pii_span_streaming(
425
427
  "db.user": "default",
426
428
  "server.address": "localhost",
427
429
  "server.port": 9000,
430
+ "db.result": [[370]],
428
431
  },
429
432
  "message": "SELECT sum(x) FROM test WHERE x > 150",
430
433
  "type": "default",
@@ -576,6 +579,7 @@ def test_clickhouse_client_breadcrumbs_with_data_collection_span_streaming(
576
579
  "db.user": "default",
577
580
  "server.address": "localhost",
578
581
  "server.port": 9000,
582
+ "db.result": [],
579
583
  },
580
584
  "message": "DROP TABLE IF EXISTS test",
581
585
  "type": "default",
@@ -589,6 +593,7 @@ def test_clickhouse_client_breadcrumbs_with_data_collection_span_streaming(
589
593
  "db.user": "default",
590
594
  "server.address": "localhost",
591
595
  "server.port": 9000,
596
+ "db.result": [],
592
597
  },
593
598
  "message": "CREATE TABLE test (x Int32) ENGINE = Memory",
594
599
  "type": "default",
@@ -628,6 +633,7 @@ def test_clickhouse_client_breadcrumbs_with_data_collection_span_streaming(
628
633
  "db.user": "default",
629
634
  "server.address": "localhost",
630
635
  "server.port": 9000,
636
+ "db.result": [[370]],
631
637
  },
632
638
  "message": "SELECT sum(x) FROM test WHERE x > 150",
633
639
  "type": "default",
@@ -1179,6 +1185,7 @@ def test_clickhouse_client_breadcrumbs_with_data_collection_default_span_streami
1179
1185
  "db.user": "default",
1180
1186
  "server.address": "localhost",
1181
1187
  "server.port": 9000,
1188
+ "db.result": [],
1182
1189
  },
1183
1190
  "message": "DROP TABLE IF EXISTS test",
1184
1191
  "type": "default",
@@ -1192,6 +1199,7 @@ def test_clickhouse_client_breadcrumbs_with_data_collection_default_span_streami
1192
1199
  "db.user": "default",
1193
1200
  "server.address": "localhost",
1194
1201
  "server.port": 9000,
1202
+ "db.result": [],
1195
1203
  },
1196
1204
  "message": "CREATE TABLE test (x Int32) ENGINE = Memory",
1197
1205
  "type": "default",
@@ -1231,6 +1239,7 @@ def test_clickhouse_client_breadcrumbs_with_data_collection_default_span_streami
1231
1239
  "db.user": "default",
1232
1240
  "server.address": "localhost",
1233
1241
  "server.port": 9000,
1242
+ "db.result": [[370]],
1234
1243
  },
1235
1244
  "message": "SELECT sum(x) FROM test WHERE x > 150",
1236
1245
  "type": "default",
@@ -2289,6 +2298,7 @@ def test_clickhouse_dbapi_breadcrumbs_with_pii_span_streaming(
2289
2298
  "db.user": "default",
2290
2299
  "server.address": "localhost",
2291
2300
  "server.port": 9000,
2301
+ "db.result": [[], []],
2292
2302
  },
2293
2303
  "message": "DROP TABLE IF EXISTS test",
2294
2304
  "type": "default",
@@ -2302,6 +2312,7 @@ def test_clickhouse_dbapi_breadcrumbs_with_pii_span_streaming(
2302
2312
  "db.user": "default",
2303
2313
  "server.address": "localhost",
2304
2314
  "server.port": 9000,
2315
+ "db.result": [[], []],
2305
2316
  },
2306
2317
  "message": "CREATE TABLE test (x Int32) ENGINE = Memory",
2307
2318
  "type": "default",
@@ -2341,6 +2352,7 @@ def test_clickhouse_dbapi_breadcrumbs_with_pii_span_streaming(
2341
2352
  "db.user": "default",
2342
2353
  "server.address": "localhost",
2343
2354
  "server.port": 9000,
2355
+ "db.result": [[["370"]], [["'sum(x)'", "'Int64'"]]],
2344
2356
  },
2345
2357
  "message": "SELECT sum(x) FROM test WHERE x > 150",
2346
2358
  "type": "default",