sentry-sdk 2.35.2__tar.gz → 2.36.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

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.2/sentry_sdk.egg-info → sentry_sdk-2.36.0}/PKG-INFO +1 -1
  2. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/ai/monitoring.py +7 -5
  3. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/consts.py +1 -1
  4. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/__init__.py +1 -1
  5. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/openai.py +5 -5
  6. sentry_sdk-2.36.0/sentry_sdk/integrations/unraisablehook.py +53 -0
  7. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/profiler/transaction_profiler.py +6 -4
  8. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/tracing.py +6 -4
  9. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0/sentry_sdk.egg-info}/PKG-INFO +1 -1
  10. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk.egg-info/SOURCES.txt +1 -0
  11. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/setup.py +1 -1
  12. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/tests/test_basics.py +1 -0
  13. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/LICENSE +0 -0
  14. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/MANIFEST.in +0 -0
  15. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/README.md +0 -0
  16. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/pyproject.toml +0 -0
  17. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/__init__.py +0 -0
  18. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/_compat.py +0 -0
  19. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/_init_implementation.py +0 -0
  20. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/_log_batcher.py +0 -0
  21. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/_lru_cache.py +0 -0
  22. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/_queue.py +0 -0
  23. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/_types.py +0 -0
  24. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/_werkzeug.py +0 -0
  25. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/ai/__init__.py +0 -0
  26. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/ai/utils.py +0 -0
  27. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/api.py +0 -0
  28. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/attachments.py +0 -0
  29. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/client.py +0 -0
  30. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/crons/__init__.py +0 -0
  31. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/crons/api.py +0 -0
  32. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/crons/consts.py +0 -0
  33. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/crons/decorator.py +0 -0
  34. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/debug.py +0 -0
  35. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/envelope.py +0 -0
  36. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/feature_flags.py +0 -0
  37. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/hub.py +0 -0
  38. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/_asgi_common.py +0 -0
  39. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/_wsgi_common.py +0 -0
  40. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/aiohttp.py +0 -0
  41. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/anthropic.py +0 -0
  42. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/argv.py +0 -0
  43. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/ariadne.py +0 -0
  44. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/arq.py +0 -0
  45. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/asgi.py +0 -0
  46. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/asyncio.py +0 -0
  47. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/asyncpg.py +0 -0
  48. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/atexit.py +0 -0
  49. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/aws_lambda.py +0 -0
  50. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/beam.py +0 -0
  51. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/boto3.py +0 -0
  52. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/bottle.py +0 -0
  53. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/celery/__init__.py +0 -0
  54. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/celery/beat.py +0 -0
  55. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/celery/utils.py +0 -0
  56. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/chalice.py +0 -0
  57. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/clickhouse_driver.py +0 -0
  58. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/cloud_resource_context.py +0 -0
  59. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/cohere.py +0 -0
  60. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/dedupe.py +0 -0
  61. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/django/__init__.py +0 -0
  62. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/django/asgi.py +0 -0
  63. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/django/caching.py +0 -0
  64. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/django/middleware.py +0 -0
  65. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/django/signals_handlers.py +0 -0
  66. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/django/templates.py +0 -0
  67. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/django/transactions.py +0 -0
  68. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/django/views.py +0 -0
  69. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/dramatiq.py +0 -0
  70. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/excepthook.py +0 -0
  71. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/executing.py +0 -0
  72. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/falcon.py +0 -0
  73. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/fastapi.py +0 -0
  74. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/flask.py +0 -0
  75. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/gcp.py +0 -0
  76. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/gnu_backtrace.py +0 -0
  77. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/gql.py +0 -0
  78. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/graphene.py +0 -0
  79. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/grpc/__init__.py +0 -0
  80. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/grpc/aio/__init__.py +0 -0
  81. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/grpc/aio/client.py +0 -0
  82. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/grpc/aio/server.py +0 -0
  83. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/grpc/client.py +0 -0
  84. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/grpc/consts.py +0 -0
  85. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/grpc/server.py +0 -0
  86. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/httpx.py +0 -0
  87. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/huey.py +0 -0
  88. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/huggingface_hub.py +0 -0
  89. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/langchain.py +0 -0
  90. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/launchdarkly.py +0 -0
  91. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/litestar.py +0 -0
  92. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/logging.py +0 -0
  93. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/loguru.py +0 -0
  94. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/modules.py +0 -0
  95. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/openai_agents/__init__.py +0 -0
  96. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/openai_agents/consts.py +0 -0
  97. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/openai_agents/patches/__init__.py +0 -0
  98. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/openai_agents/patches/agent_run.py +0 -0
  99. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/openai_agents/patches/models.py +0 -0
  100. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/openai_agents/patches/runner.py +0 -0
  101. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/openai_agents/patches/tools.py +0 -0
  102. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/openai_agents/spans/__init__.py +0 -0
  103. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/openai_agents/spans/agent_workflow.py +0 -0
  104. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/openai_agents/spans/ai_client.py +0 -0
  105. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/openai_agents/spans/execute_tool.py +0 -0
  106. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/openai_agents/spans/handoff.py +0 -0
  107. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/openai_agents/spans/invoke_agent.py +0 -0
  108. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/openai_agents/utils.py +0 -0
  109. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/openfeature.py +0 -0
  110. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/opentelemetry/__init__.py +0 -0
  111. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/opentelemetry/consts.py +0 -0
  112. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/opentelemetry/integration.py +0 -0
  113. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/opentelemetry/propagator.py +0 -0
  114. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/opentelemetry/span_processor.py +0 -0
  115. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/pure_eval.py +0 -0
  116. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/pymongo.py +0 -0
  117. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/pyramid.py +0 -0
  118. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/quart.py +0 -0
  119. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/ray.py +0 -0
  120. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/redis/__init__.py +0 -0
  121. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/redis/_async_common.py +0 -0
  122. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/redis/_sync_common.py +0 -0
  123. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/redis/consts.py +0 -0
  124. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/redis/modules/__init__.py +0 -0
  125. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/redis/modules/caches.py +0 -0
  126. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/redis/modules/queries.py +0 -0
  127. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/redis/rb.py +0 -0
  128. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/redis/redis.py +0 -0
  129. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/redis/redis_cluster.py +0 -0
  130. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/redis/redis_py_cluster_legacy.py +0 -0
  131. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/redis/utils.py +0 -0
  132. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/rq.py +0 -0
  133. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/rust_tracing.py +0 -0
  134. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/sanic.py +0 -0
  135. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/serverless.py +0 -0
  136. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/socket.py +0 -0
  137. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/spark/__init__.py +0 -0
  138. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/spark/spark_driver.py +0 -0
  139. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/spark/spark_worker.py +0 -0
  140. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/sqlalchemy.py +0 -0
  141. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/starlette.py +0 -0
  142. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/starlite.py +0 -0
  143. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/statsig.py +0 -0
  144. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/stdlib.py +0 -0
  145. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/strawberry.py +0 -0
  146. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/sys_exit.py +0 -0
  147. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/threading.py +0 -0
  148. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/tornado.py +0 -0
  149. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/trytond.py +0 -0
  150. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/typer.py +0 -0
  151. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/unleash.py +0 -0
  152. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/integrations/wsgi.py +0 -0
  153. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/logger.py +0 -0
  154. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/metrics.py +0 -0
  155. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/monitor.py +0 -0
  156. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/profiler/__init__.py +0 -0
  157. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/profiler/continuous_profiler.py +0 -0
  158. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/profiler/utils.py +0 -0
  159. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/py.typed +0 -0
  160. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/scope.py +0 -0
  161. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/scrubber.py +0 -0
  162. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/serializer.py +0 -0
  163. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/session.py +0 -0
  164. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/sessions.py +0 -0
  165. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/spotlight.py +0 -0
  166. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/tracing_utils.py +0 -0
  167. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/transport.py +0 -0
  168. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/types.py +0 -0
  169. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/utils.py +0 -0
  170. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk/worker.py +0 -0
  171. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk.egg-info/dependency_links.txt +0 -0
  172. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk.egg-info/entry_points.txt +0 -0
  173. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk.egg-info/not-zip-safe +0 -0
  174. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk.egg-info/requires.txt +0 -0
  175. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/sentry_sdk.egg-info/top_level.txt +0 -0
  176. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/setup.cfg +0 -0
  177. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/tests/test_ai_monitoring.py +0 -0
  178. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/tests/test_api.py +0 -0
  179. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/tests/test_client.py +0 -0
  180. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/tests/test_conftest.py +0 -0
  181. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/tests/test_crons.py +0 -0
  182. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/tests/test_dsc.py +0 -0
  183. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/tests/test_envelope.py +0 -0
  184. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/tests/test_exceptiongroup.py +0 -0
  185. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/tests/test_feature_flags.py +0 -0
  186. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/tests/test_full_stack_frames.py +0 -0
  187. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/tests/test_gevent.py +0 -0
  188. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/tests/test_import.py +0 -0
  189. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/tests/test_logs.py +0 -0
  190. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/tests/test_lru_cache.py +0 -0
  191. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/tests/test_metrics.py +0 -0
  192. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/tests/test_monitor.py +0 -0
  193. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/tests/test_propagationcontext.py +0 -0
  194. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/tests/test_scope.py +0 -0
  195. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/tests/test_scrubber.py +0 -0
  196. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/tests/test_serializer.py +0 -0
  197. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/tests/test_sessions.py +0 -0
  198. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/tests/test_spotlight.py +0 -0
  199. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/tests/test_tracing_utils.py +0 -0
  200. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/tests/test_transport.py +0 -0
  201. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/tests/test_types.py +0 -0
  202. {sentry_sdk-2.35.2 → sentry_sdk-2.36.0}/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.2
3
+ Version: 2.36.0
4
4
  Summary: Python client for Sentry (https://sentry.io)
5
5
  Home-page: https://github.com/getsentry/sentry-python
6
6
  Author: Sentry Team and Contributors
@@ -10,7 +10,9 @@ from sentry_sdk.utils import ContextVar
10
10
  from typing import TYPE_CHECKING
11
11
 
12
12
  if TYPE_CHECKING:
13
- from typing import Optional, Callable, Any
13
+ from typing import Optional, Callable, Awaitable, Any, Union, TypeVar
14
+
15
+ F = TypeVar("F", bound=Union[Callable[..., Any], Callable[..., Awaitable[Any]]])
14
16
 
15
17
  _ai_pipeline_name = ContextVar("ai_pipeline_name", default=None)
16
18
 
@@ -26,9 +28,9 @@ def get_ai_pipeline_name():
26
28
 
27
29
 
28
30
  def ai_track(description, **span_kwargs):
29
- # type: (str, Any) -> Callable[..., Any]
31
+ # type: (str, Any) -> Callable[[F], F]
30
32
  def decorator(f):
31
- # type: (Callable[..., Any]) -> Callable[..., Any]
33
+ # type: (F) -> F
32
34
  def sync_wrapped(*args, **kwargs):
33
35
  # type: (Any, Any) -> Any
34
36
  curr_pipeline = _ai_pipeline_name.get()
@@ -88,9 +90,9 @@ def ai_track(description, **span_kwargs):
88
90
  return res
89
91
 
90
92
  if inspect.iscoroutinefunction(f):
91
- return wraps(f)(async_wrapped)
93
+ return wraps(f)(async_wrapped) # type: ignore
92
94
  else:
93
- return wraps(f)(sync_wrapped)
95
+ return wraps(f)(sync_wrapped) # type: ignore
94
96
 
95
97
  return decorator
96
98
 
@@ -1329,4 +1329,4 @@ DEFAULT_OPTIONS = _get_default_options()
1329
1329
  del _get_default_options
1330
1330
 
1331
1331
 
1332
- VERSION = "2.35.2"
1332
+ VERSION = "2.36.0"
@@ -141,7 +141,7 @@ _MIN_VERSIONS = {
141
141
  "graphene": (3, 3),
142
142
  "grpc": (1, 32, 0), # grpcio
143
143
  "huggingface_hub": (0, 22),
144
- "langchain": (0, 0, 210),
144
+ "langchain": (0, 1, 0),
145
145
  "launchdarkly": (9, 8, 0),
146
146
  "loguru": (0, 7, 0),
147
147
  "openai": (1, 0, 0),
@@ -78,12 +78,12 @@ class OpenAIIntegration(Integration):
78
78
  return 0
79
79
 
80
80
 
81
- def _capture_exception(exc):
82
- # type: (Any) -> None
81
+ def _capture_exception(exc, manual_span_cleanup=True):
82
+ # type: (Any, bool) -> None
83
83
  # Close an eventually open span
84
84
  # We need to do this by hand because we are not using the start_span context manager
85
85
  current_span = sentry_sdk.get_current_span()
86
- if current_span is not None:
86
+ if manual_span_cleanup and current_span is not None:
87
87
  current_span.__exit__(None, None, None)
88
88
 
89
89
  event, hint = event_from_exception(
@@ -516,7 +516,7 @@ def _wrap_embeddings_create(f):
516
516
  try:
517
517
  result = f(*args, **kwargs)
518
518
  except Exception as e:
519
- _capture_exception(e)
519
+ _capture_exception(e, manual_span_cleanup=False)
520
520
  raise e from None
521
521
 
522
522
  return gen.send(result)
@@ -550,7 +550,7 @@ def _wrap_async_embeddings_create(f):
550
550
  try:
551
551
  result = await f(*args, **kwargs)
552
552
  except Exception as e:
553
- _capture_exception(e)
553
+ _capture_exception(e, manual_span_cleanup=False)
554
554
  raise e from None
555
555
 
556
556
  return gen.send(result)
@@ -0,0 +1,53 @@
1
+ import sys
2
+
3
+ import sentry_sdk
4
+ from sentry_sdk.utils import (
5
+ capture_internal_exceptions,
6
+ event_from_exception,
7
+ )
8
+ from sentry_sdk.integrations import Integration
9
+
10
+ from typing import TYPE_CHECKING
11
+
12
+ if TYPE_CHECKING:
13
+ from typing import Callable
14
+ from typing import Any
15
+
16
+
17
+ class UnraisablehookIntegration(Integration):
18
+ identifier = "unraisablehook"
19
+
20
+ @staticmethod
21
+ def setup_once():
22
+ # type: () -> None
23
+ sys.unraisablehook = _make_unraisable(sys.unraisablehook)
24
+
25
+
26
+ def _make_unraisable(old_unraisablehook):
27
+ # type: (Callable[[sys.UnraisableHookArgs], Any]) -> Callable[[sys.UnraisableHookArgs], Any]
28
+ def sentry_sdk_unraisablehook(unraisable):
29
+ # type: (sys.UnraisableHookArgs) -> None
30
+ integration = sentry_sdk.get_client().get_integration(UnraisablehookIntegration)
31
+
32
+ # Note: If we replace this with ensure_integration_enabled then
33
+ # we break the exceptiongroup backport;
34
+ # See: https://github.com/getsentry/sentry-python/issues/3097
35
+ if integration is None:
36
+ return old_unraisablehook(unraisable)
37
+
38
+ if unraisable.exc_value and unraisable.exc_traceback:
39
+ with capture_internal_exceptions():
40
+ event, hint = event_from_exception(
41
+ (
42
+ unraisable.exc_type,
43
+ unraisable.exc_value,
44
+ unraisable.exc_traceback,
45
+ ),
46
+ client_options=sentry_sdk.get_client().options,
47
+ mechanism={"type": "unraisablehook", "handled": False},
48
+ )
49
+ sentry_sdk.capture_event(event, hint=hint)
50
+
51
+ return old_unraisablehook(unraisable)
52
+
53
+ return sentry_sdk_unraisablehook
@@ -45,6 +45,7 @@ from sentry_sdk.profiler.utils import (
45
45
  )
46
46
  from sentry_sdk.utils import (
47
47
  capture_internal_exception,
48
+ capture_internal_exceptions,
48
49
  get_current_thread_meta,
49
50
  is_gevent,
50
51
  is_valid_sample_rate,
@@ -369,12 +370,13 @@ class Profile:
369
370
 
370
371
  def __exit__(self, ty, value, tb):
371
372
  # type: (Optional[Any], Optional[Any], Optional[Any]) -> None
372
- self.stop()
373
+ with capture_internal_exceptions():
374
+ self.stop()
373
375
 
374
- scope, old_profile = self._context_manager_state
375
- del self._context_manager_state
376
+ scope, old_profile = self._context_manager_state
377
+ del self._context_manager_state
376
378
 
377
- scope.profile = old_profile
379
+ scope.profile = old_profile
378
380
 
379
381
  def write(self, ts, sample):
380
382
  # type: (int, ExtractedSample) -> None
@@ -8,6 +8,7 @@ import sentry_sdk
8
8
  from sentry_sdk.consts import INSTRUMENTER, SPANSTATUS, SPANDATA, SPANTEMPLATE
9
9
  from sentry_sdk.profiler.continuous_profiler import get_profiler_id
10
10
  from sentry_sdk.utils import (
11
+ capture_internal_exceptions,
11
12
  get_current_thread_meta,
12
13
  is_valid_sample_rate,
13
14
  logger,
@@ -418,10 +419,11 @@ class Span:
418
419
  if value is not None and should_be_treated_as_error(ty, value):
419
420
  self.set_status(SPANSTATUS.INTERNAL_ERROR)
420
421
 
421
- scope, old_span = self._context_manager_state
422
- del self._context_manager_state
423
- self.finish(scope)
424
- scope.span = old_span
422
+ with capture_internal_exceptions():
423
+ scope, old_span = self._context_manager_state
424
+ del self._context_manager_state
425
+ self.finish(scope)
426
+ scope.span = old_span
425
427
 
426
428
  @property
427
429
  def containing_transaction(self):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sentry-sdk
3
- Version: 2.35.2
3
+ Version: 2.36.0
4
4
  Summary: Python client for Sentry (https://sentry.io)
5
5
  Home-page: https://github.com/getsentry/sentry-python
6
6
  Author: Sentry Team and Contributors
@@ -113,6 +113,7 @@ sentry_sdk/integrations/tornado.py
113
113
  sentry_sdk/integrations/trytond.py
114
114
  sentry_sdk/integrations/typer.py
115
115
  sentry_sdk/integrations/unleash.py
116
+ sentry_sdk/integrations/unraisablehook.py
116
117
  sentry_sdk/integrations/wsgi.py
117
118
  sentry_sdk/integrations/celery/__init__.py
118
119
  sentry_sdk/integrations/celery/beat.py
@@ -21,7 +21,7 @@ def get_file_text(file_name):
21
21
 
22
22
  setup(
23
23
  name="sentry-sdk",
24
- version="2.35.2",
24
+ version="2.36.0",
25
25
  author="Sentry Team and Contributors",
26
26
  author_email="hello@sentry.io",
27
27
  url="https://github.com/getsentry/sentry-python",
@@ -870,6 +870,7 @@ def test_event_processor_drop_records_client_report(
870
870
  (["celery"], "sentry.python"),
871
871
  (["dedupe"], "sentry.python"),
872
872
  (["excepthook"], "sentry.python"),
873
+ (["unraisablehook"], "sentry.python"),
873
874
  (["executing"], "sentry.python"),
874
875
  (["modules"], "sentry.python"),
875
876
  (["pure_eval"], "sentry.python"),
File without changes
File without changes
File without changes
File without changes
File without changes