sentry-sdk 2.35.0__tar.gz → 2.35.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.

Potentially problematic release.


This version of sentry-sdk might be problematic. Click here for more details.

Files changed (202) hide show
  1. {sentry_sdk-2.35.0/sentry_sdk.egg-info → sentry_sdk-2.35.2}/PKG-INFO +1 -1
  2. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/client.py +4 -2
  3. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/consts.py +1 -1
  4. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/logging.py +13 -2
  5. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openai_agents/patches/agent_run.py +0 -3
  6. sentry_sdk-2.35.2/sentry_sdk/integrations/openai_agents/patches/runner.py +45 -0
  7. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/logger.py +4 -3
  8. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2/sentry_sdk.egg-info}/PKG-INFO +1 -1
  9. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/setup.py +1 -1
  10. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_client.py +10 -0
  11. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_logs.py +24 -0
  12. sentry_sdk-2.35.0/sentry_sdk/integrations/openai_agents/patches/runner.py +0 -42
  13. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/LICENSE +0 -0
  14. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/MANIFEST.in +0 -0
  15. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/README.md +0 -0
  16. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/pyproject.toml +0 -0
  17. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/__init__.py +0 -0
  18. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/_compat.py +0 -0
  19. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/_init_implementation.py +0 -0
  20. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/_log_batcher.py +0 -0
  21. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/_lru_cache.py +0 -0
  22. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/_queue.py +0 -0
  23. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/_types.py +0 -0
  24. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/_werkzeug.py +0 -0
  25. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/ai/__init__.py +0 -0
  26. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/ai/monitoring.py +0 -0
  27. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/ai/utils.py +0 -0
  28. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/api.py +0 -0
  29. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/attachments.py +0 -0
  30. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/crons/__init__.py +0 -0
  31. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/crons/api.py +0 -0
  32. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/crons/consts.py +0 -0
  33. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/crons/decorator.py +0 -0
  34. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/debug.py +0 -0
  35. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/envelope.py +0 -0
  36. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/feature_flags.py +0 -0
  37. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/hub.py +0 -0
  38. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/__init__.py +0 -0
  39. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/_asgi_common.py +0 -0
  40. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/_wsgi_common.py +0 -0
  41. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/aiohttp.py +0 -0
  42. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/anthropic.py +0 -0
  43. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/argv.py +0 -0
  44. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/ariadne.py +0 -0
  45. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/arq.py +0 -0
  46. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/asgi.py +0 -0
  47. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/asyncio.py +0 -0
  48. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/asyncpg.py +0 -0
  49. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/atexit.py +0 -0
  50. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/aws_lambda.py +0 -0
  51. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/beam.py +0 -0
  52. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/boto3.py +0 -0
  53. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/bottle.py +0 -0
  54. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/celery/__init__.py +0 -0
  55. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/celery/beat.py +0 -0
  56. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/celery/utils.py +0 -0
  57. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/chalice.py +0 -0
  58. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/clickhouse_driver.py +0 -0
  59. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/cloud_resource_context.py +0 -0
  60. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/cohere.py +0 -0
  61. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/dedupe.py +0 -0
  62. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/django/__init__.py +0 -0
  63. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/django/asgi.py +0 -0
  64. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/django/caching.py +0 -0
  65. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/django/middleware.py +0 -0
  66. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/django/signals_handlers.py +0 -0
  67. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/django/templates.py +0 -0
  68. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/django/transactions.py +0 -0
  69. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/django/views.py +0 -0
  70. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/dramatiq.py +0 -0
  71. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/excepthook.py +0 -0
  72. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/executing.py +0 -0
  73. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/falcon.py +0 -0
  74. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/fastapi.py +0 -0
  75. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/flask.py +0 -0
  76. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/gcp.py +0 -0
  77. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/gnu_backtrace.py +0 -0
  78. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/gql.py +0 -0
  79. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/graphene.py +0 -0
  80. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/grpc/__init__.py +0 -0
  81. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/grpc/aio/__init__.py +0 -0
  82. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/grpc/aio/client.py +0 -0
  83. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/grpc/aio/server.py +0 -0
  84. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/grpc/client.py +0 -0
  85. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/grpc/consts.py +0 -0
  86. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/grpc/server.py +0 -0
  87. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/httpx.py +0 -0
  88. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/huey.py +0 -0
  89. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/huggingface_hub.py +0 -0
  90. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/langchain.py +0 -0
  91. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/launchdarkly.py +0 -0
  92. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/litestar.py +0 -0
  93. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/loguru.py +0 -0
  94. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/modules.py +0 -0
  95. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openai.py +0 -0
  96. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openai_agents/__init__.py +0 -0
  97. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openai_agents/consts.py +0 -0
  98. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openai_agents/patches/__init__.py +0 -0
  99. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openai_agents/patches/models.py +0 -0
  100. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openai_agents/patches/tools.py +0 -0
  101. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openai_agents/spans/__init__.py +0 -0
  102. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openai_agents/spans/agent_workflow.py +0 -0
  103. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openai_agents/spans/ai_client.py +0 -0
  104. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openai_agents/spans/execute_tool.py +0 -0
  105. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openai_agents/spans/handoff.py +0 -0
  106. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openai_agents/spans/invoke_agent.py +0 -0
  107. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openai_agents/utils.py +0 -0
  108. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openfeature.py +0 -0
  109. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/opentelemetry/__init__.py +0 -0
  110. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/opentelemetry/consts.py +0 -0
  111. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/opentelemetry/integration.py +0 -0
  112. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/opentelemetry/propagator.py +0 -0
  113. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/opentelemetry/span_processor.py +0 -0
  114. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/pure_eval.py +0 -0
  115. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/pymongo.py +0 -0
  116. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/pyramid.py +0 -0
  117. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/quart.py +0 -0
  118. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/ray.py +0 -0
  119. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/redis/__init__.py +0 -0
  120. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/redis/_async_common.py +0 -0
  121. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/redis/_sync_common.py +0 -0
  122. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/redis/consts.py +0 -0
  123. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/redis/modules/__init__.py +0 -0
  124. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/redis/modules/caches.py +0 -0
  125. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/redis/modules/queries.py +0 -0
  126. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/redis/rb.py +0 -0
  127. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/redis/redis.py +0 -0
  128. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/redis/redis_cluster.py +0 -0
  129. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/redis/redis_py_cluster_legacy.py +0 -0
  130. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/redis/utils.py +0 -0
  131. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/rq.py +0 -0
  132. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/rust_tracing.py +0 -0
  133. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/sanic.py +0 -0
  134. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/serverless.py +0 -0
  135. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/socket.py +0 -0
  136. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/spark/__init__.py +0 -0
  137. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/spark/spark_driver.py +0 -0
  138. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/spark/spark_worker.py +0 -0
  139. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/sqlalchemy.py +0 -0
  140. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/starlette.py +0 -0
  141. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/starlite.py +0 -0
  142. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/statsig.py +0 -0
  143. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/stdlib.py +0 -0
  144. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/strawberry.py +0 -0
  145. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/sys_exit.py +0 -0
  146. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/threading.py +0 -0
  147. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/tornado.py +0 -0
  148. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/trytond.py +0 -0
  149. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/typer.py +0 -0
  150. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/unleash.py +0 -0
  151. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/wsgi.py +0 -0
  152. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/metrics.py +0 -0
  153. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/monitor.py +0 -0
  154. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/profiler/__init__.py +0 -0
  155. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/profiler/continuous_profiler.py +0 -0
  156. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/profiler/transaction_profiler.py +0 -0
  157. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/profiler/utils.py +0 -0
  158. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/py.typed +0 -0
  159. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/scope.py +0 -0
  160. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/scrubber.py +0 -0
  161. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/serializer.py +0 -0
  162. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/session.py +0 -0
  163. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/sessions.py +0 -0
  164. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/spotlight.py +0 -0
  165. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/tracing.py +0 -0
  166. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/tracing_utils.py +0 -0
  167. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/transport.py +0 -0
  168. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/types.py +0 -0
  169. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/utils.py +0 -0
  170. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/worker.py +0 -0
  171. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk.egg-info/SOURCES.txt +0 -0
  172. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk.egg-info/dependency_links.txt +0 -0
  173. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk.egg-info/entry_points.txt +0 -0
  174. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk.egg-info/not-zip-safe +0 -0
  175. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk.egg-info/requires.txt +0 -0
  176. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk.egg-info/top_level.txt +0 -0
  177. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/setup.cfg +0 -0
  178. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_ai_monitoring.py +0 -0
  179. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_api.py +0 -0
  180. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_basics.py +0 -0
  181. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_conftest.py +0 -0
  182. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_crons.py +0 -0
  183. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_dsc.py +0 -0
  184. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_envelope.py +0 -0
  185. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_exceptiongroup.py +0 -0
  186. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_feature_flags.py +0 -0
  187. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_full_stack_frames.py +0 -0
  188. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_gevent.py +0 -0
  189. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_import.py +0 -0
  190. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_lru_cache.py +0 -0
  191. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_metrics.py +0 -0
  192. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_monitor.py +0 -0
  193. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_propagationcontext.py +0 -0
  194. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_scope.py +0 -0
  195. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_scrubber.py +0 -0
  196. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_serializer.py +0 -0
  197. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_sessions.py +0 -0
  198. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_spotlight.py +0 -0
  199. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_tracing_utils.py +0 -0
  200. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_transport.py +0 -0
  201. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_types.py +0 -0
  202. {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sentry-sdk
3
- Version: 2.35.0
3
+ Version: 2.35.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
@@ -516,8 +516,9 @@ class _Client(BaseClient):
516
516
  if event.get("timestamp") is None:
517
517
  event["timestamp"] = datetime.now(timezone.utc)
518
518
 
519
+ is_transaction = event.get("type") == "transaction"
520
+
519
521
  if scope is not None:
520
- is_transaction = event.get("type") == "transaction"
521
522
  spans_before = len(cast(List[Dict[str, object]], event.get("spans", [])))
522
523
  event_ = scope.apply_to_event(event, hint, self.options)
523
524
 
@@ -560,7 +561,8 @@ class _Client(BaseClient):
560
561
  )
561
562
 
562
563
  if (
563
- self.options["attach_stacktrace"]
564
+ not is_transaction
565
+ and self.options["attach_stacktrace"]
564
566
  and "exception" not in event
565
567
  and "stacktrace" not in event
566
568
  and "threads" not in event
@@ -1329,4 +1329,4 @@ DEFAULT_OPTIONS = _get_default_options()
1329
1329
  del _get_default_options
1330
1330
 
1331
1331
 
1332
- VERSION = "2.35.0"
1332
+ VERSION = "2.35.2"
@@ -356,12 +356,14 @@ class SentryLogsHandler(_BaseHandler):
356
356
  record.levelno, SEVERITY_TO_OTEL_SEVERITY
357
357
  )
358
358
  project_root = client.options["project_root"]
359
+
359
360
  attrs = self._extra_from_record(record) # type: Any
360
361
  attrs["sentry.origin"] = "auto.logger.log"
361
- if isinstance(record.msg, str):
362
- attrs["sentry.message.template"] = record.msg
362
+
363
+ parameters_set = False
363
364
  if record.args is not None:
364
365
  if isinstance(record.args, tuple):
366
+ parameters_set = bool(record.args)
365
367
  for i, arg in enumerate(record.args):
366
368
  attrs[f"sentry.message.parameter.{i}"] = (
367
369
  arg
@@ -369,19 +371,28 @@ class SentryLogsHandler(_BaseHandler):
369
371
  else safe_repr(arg)
370
372
  )
371
373
  elif isinstance(record.args, dict):
374
+ parameters_set = bool(record.args)
372
375
  for key, value in record.args.items():
373
376
  attrs[f"sentry.message.parameter.{key}"] = (
374
377
  value
375
378
  if isinstance(value, (str, float, int, bool))
376
379
  else safe_repr(value)
377
380
  )
381
+
382
+ if parameters_set and isinstance(record.msg, str):
383
+ # only include template if there is at least one
384
+ # sentry.message.parameter.X set
385
+ attrs["sentry.message.template"] = record.msg
386
+
378
387
  if record.lineno:
379
388
  attrs["code.line.number"] = record.lineno
389
+
380
390
  if record.pathname:
381
391
  if project_root is not None and record.pathname.startswith(project_root):
382
392
  attrs["code.file.path"] = record.pathname[len(project_root) + 1 :]
383
393
  else:
384
394
  attrs["code.file.path"] = record.pathname
395
+
385
396
  if record.funcName:
386
397
  attrs["code.function.name"] = record.funcName
387
398
 
@@ -1,7 +1,6 @@
1
1
  from functools import wraps
2
2
 
3
3
  from sentry_sdk.integrations import DidNotEnable
4
-
5
4
  from ..spans import invoke_agent_span, update_invoke_agent_span, handoff_span
6
5
 
7
6
  from typing import TYPE_CHECKING
@@ -9,7 +8,6 @@ from typing import TYPE_CHECKING
9
8
  if TYPE_CHECKING:
10
9
  from typing import Any, Optional
11
10
 
12
-
13
11
  try:
14
12
  import agents
15
13
  except ImportError:
@@ -62,7 +60,6 @@ def _patch_agent_run():
62
60
  async def patched_run_single_turn(cls, *args, **kwargs):
63
61
  # type: (agents.Runner, *Any, **Any) -> Any
64
62
  """Patched _run_single_turn that creates agent invocation spans"""
65
-
66
63
  agent = kwargs.get("agent")
67
64
  context_wrapper = kwargs.get("context_wrapper")
68
65
  should_run_agent_start_hooks = kwargs.get("should_run_agent_start_hooks")
@@ -0,0 +1,45 @@
1
+ from functools import wraps
2
+
3
+ import sentry_sdk
4
+
5
+ from ..spans import agent_workflow_span
6
+ from ..utils import _capture_exception
7
+
8
+ from typing import TYPE_CHECKING
9
+
10
+ if TYPE_CHECKING:
11
+ from typing import Any, Callable
12
+
13
+
14
+ def _create_run_wrapper(original_func):
15
+ # type: (Callable[..., Any]) -> Callable[..., Any]
16
+ """
17
+ Wraps the agents.Runner.run methods to create a root span for the agent workflow runs.
18
+
19
+ Note agents.Runner.run_sync() is a wrapper around agents.Runner.run(),
20
+ so it does not need to be wrapped separately.
21
+ """
22
+
23
+ @wraps(original_func)
24
+ async def wrapper(*args, **kwargs):
25
+ # type: (*Any, **Any) -> Any
26
+ # Isolate each workflow so that when agents are run in asyncio tasks they
27
+ # don't touch each other's scopes
28
+ with sentry_sdk.isolation_scope():
29
+ agent = args[0]
30
+ with agent_workflow_span(agent):
31
+ result = None
32
+ try:
33
+ result = await original_func(*args, **kwargs)
34
+ return result
35
+ except Exception as exc:
36
+ _capture_exception(exc)
37
+
38
+ # It could be that there is a "invoke agent" span still open
39
+ current_span = sentry_sdk.get_current_span()
40
+ if current_span is not None and current_span.timestamp is None:
41
+ current_span.__exit__(None, None, None)
42
+
43
+ raise exc from None
44
+
45
+ return wrapper
@@ -22,13 +22,14 @@ def _capture_log(severity_text, severity_number, template, **kwargs):
22
22
  # type: (str, int, str, **Any) -> None
23
23
  client = get_client()
24
24
 
25
- attrs = {
26
- "sentry.message.template": template,
27
- } # type: dict[str, str | bool | float | int]
25
+ attrs = {} # type: dict[str, str | bool | float | int]
28
26
  if "attributes" in kwargs:
29
27
  attrs.update(kwargs.pop("attributes"))
30
28
  for k, v in kwargs.items():
31
29
  attrs[f"sentry.message.parameter.{k}"] = v
30
+ if kwargs:
31
+ # only attach template if there are parameters
32
+ attrs["sentry.message.template"] = template
32
33
 
33
34
  attrs = {
34
35
  k: (
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sentry-sdk
3
- Version: 2.35.0
3
+ Version: 2.35.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
@@ -21,7 +21,7 @@ def get_file_text(file_name):
21
21
 
22
22
  setup(
23
23
  name="sentry-sdk",
24
- version="2.35.0",
24
+ version="2.35.2",
25
25
  author="Sentry Team and Contributors",
26
26
  author_email="hello@sentry.io",
27
27
  url="https://github.com/getsentry/sentry-python",
@@ -21,6 +21,7 @@ from sentry_sdk import (
21
21
  capture_exception,
22
22
  capture_event,
23
23
  set_tag,
24
+ start_transaction,
24
25
  )
25
26
  from sentry_sdk.spotlight import DEFAULT_SPOTLIGHT_URL
26
27
  from sentry_sdk.utils import capture_internal_exception
@@ -562,6 +563,15 @@ def test_attach_stacktrace_disabled(sentry_init, capture_events):
562
563
  assert "threads" not in event
563
564
 
564
565
 
566
+ def test_attach_stacktrace_transaction(sentry_init, capture_events):
567
+ sentry_init(traces_sample_rate=1.0, attach_stacktrace=True)
568
+ events = capture_events()
569
+ with start_transaction(name="transaction"):
570
+ pass
571
+ (event,) = events
572
+ assert "threads" not in event
573
+
574
+
565
575
  def test_capture_event_works(sentry_init):
566
576
  sentry_init(transport=_TestTransport())
567
577
  pytest.raises(EnvelopeCapturedError, lambda: capture_event({}))
@@ -254,30 +254,54 @@ def test_logs_message_params(sentry_init, capture_envelopes):
254
254
  sentry_sdk.logger.error(
255
255
  "The recorded error was '{error}'", error=Exception("some error")
256
256
  )
257
+ sentry_sdk.logger.warning("The recorded value was hardcoded.")
257
258
 
258
259
  get_client().flush()
259
260
  logs = envelopes_to_logs(envelopes)
260
261
 
261
262
  assert logs[0]["body"] == "The recorded value was '1'"
262
263
  assert logs[0]["attributes"]["sentry.message.parameter.int_var"] == 1
264
+ assert (
265
+ logs[0]["attributes"]["sentry.message.template"]
266
+ == "The recorded value was '{int_var}'"
267
+ )
263
268
 
264
269
  assert logs[1]["body"] == "The recorded value was '2.0'"
265
270
  assert logs[1]["attributes"]["sentry.message.parameter.float_var"] == 2.0
271
+ assert (
272
+ logs[1]["attributes"]["sentry.message.template"]
273
+ == "The recorded value was '{float_var}'"
274
+ )
266
275
 
267
276
  assert logs[2]["body"] == "The recorded value was 'False'"
268
277
  assert logs[2]["attributes"]["sentry.message.parameter.bool_var"] is False
278
+ assert (
279
+ logs[2]["attributes"]["sentry.message.template"]
280
+ == "The recorded value was '{bool_var}'"
281
+ )
269
282
 
270
283
  assert logs[3]["body"] == "The recorded value was 'some string value'"
271
284
  assert (
272
285
  logs[3]["attributes"]["sentry.message.parameter.string_var"]
273
286
  == "some string value"
274
287
  )
288
+ assert (
289
+ logs[3]["attributes"]["sentry.message.template"]
290
+ == "The recorded value was '{string_var}'"
291
+ )
275
292
 
276
293
  assert logs[4]["body"] == "The recorded error was 'some error'"
277
294
  assert (
278
295
  logs[4]["attributes"]["sentry.message.parameter.error"]
279
296
  == "Exception('some error')"
280
297
  )
298
+ assert (
299
+ logs[4]["attributes"]["sentry.message.template"]
300
+ == "The recorded error was '{error}'"
301
+ )
302
+
303
+ assert logs[5]["body"] == "The recorded value was hardcoded."
304
+ assert "sentry.message.template" not in logs[5]["attributes"]
281
305
 
282
306
 
283
307
  @minimum_python_37
@@ -1,42 +0,0 @@
1
- from functools import wraps
2
-
3
- import sentry_sdk
4
-
5
- from ..spans import agent_workflow_span
6
- from ..utils import _capture_exception
7
-
8
- from typing import TYPE_CHECKING
9
-
10
- if TYPE_CHECKING:
11
- from typing import Any, Callable
12
-
13
-
14
- def _create_run_wrapper(original_func):
15
- # type: (Callable[..., Any]) -> Callable[..., Any]
16
- """
17
- Wraps the agents.Runner.run methods to create a root span for the agent workflow runs.
18
-
19
- Note agents.Runner.run_sync() is a wrapper around agents.Runner.run(),
20
- so it does not need to be wrapped separately.
21
- """
22
-
23
- @wraps(original_func)
24
- async def wrapper(*args, **kwargs):
25
- # type: (*Any, **Any) -> Any
26
- agent = args[0]
27
- with agent_workflow_span(agent):
28
- result = None
29
- try:
30
- result = await original_func(*args, **kwargs)
31
- return result
32
- except Exception as exc:
33
- _capture_exception(exc)
34
-
35
- # It could be that there is a "invoke agent" span still open
36
- current_span = sentry_sdk.get_current_span()
37
- if current_span is not None and current_span.timestamp is None:
38
- current_span.__exit__(None, None, None)
39
-
40
- raise exc from None
41
-
42
- return wrapper
File without changes
File without changes
File without changes
File without changes
File without changes