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.
- {sentry_sdk-2.35.0/sentry_sdk.egg-info → sentry_sdk-2.35.2}/PKG-INFO +1 -1
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/client.py +4 -2
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/consts.py +1 -1
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/logging.py +13 -2
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openai_agents/patches/agent_run.py +0 -3
- sentry_sdk-2.35.2/sentry_sdk/integrations/openai_agents/patches/runner.py +45 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/logger.py +4 -3
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2/sentry_sdk.egg-info}/PKG-INFO +1 -1
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/setup.py +1 -1
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_client.py +10 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_logs.py +24 -0
- sentry_sdk-2.35.0/sentry_sdk/integrations/openai_agents/patches/runner.py +0 -42
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/LICENSE +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/MANIFEST.in +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/README.md +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/pyproject.toml +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/__init__.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/_compat.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/_init_implementation.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/_log_batcher.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/_lru_cache.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/_queue.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/_types.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/_werkzeug.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/ai/__init__.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/ai/monitoring.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/ai/utils.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/api.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/attachments.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/crons/__init__.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/crons/api.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/crons/consts.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/crons/decorator.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/debug.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/envelope.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/feature_flags.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/hub.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/__init__.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/_asgi_common.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/_wsgi_common.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/aiohttp.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/anthropic.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/argv.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/ariadne.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/arq.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/asgi.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/asyncio.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/asyncpg.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/atexit.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/aws_lambda.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/beam.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/boto3.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/bottle.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/celery/__init__.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/celery/beat.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/celery/utils.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/chalice.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/clickhouse_driver.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/cloud_resource_context.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/cohere.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/dedupe.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/django/__init__.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/django/asgi.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/django/caching.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/django/middleware.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/django/signals_handlers.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/django/templates.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/django/transactions.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/django/views.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/dramatiq.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/excepthook.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/executing.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/falcon.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/fastapi.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/flask.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/gcp.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/gnu_backtrace.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/gql.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/graphene.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/grpc/__init__.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/grpc/aio/__init__.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/grpc/aio/client.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/grpc/aio/server.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/grpc/client.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/grpc/consts.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/grpc/server.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/httpx.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/huey.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/huggingface_hub.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/langchain.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/launchdarkly.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/litestar.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/loguru.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/modules.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openai.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openai_agents/__init__.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openai_agents/consts.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openai_agents/patches/__init__.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openai_agents/patches/models.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openai_agents/patches/tools.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openai_agents/spans/__init__.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openai_agents/spans/agent_workflow.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openai_agents/spans/ai_client.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openai_agents/spans/execute_tool.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openai_agents/spans/handoff.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openai_agents/spans/invoke_agent.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openai_agents/utils.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openfeature.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/opentelemetry/__init__.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/opentelemetry/consts.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/opentelemetry/integration.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/opentelemetry/propagator.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/opentelemetry/span_processor.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/pure_eval.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/pymongo.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/pyramid.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/quart.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/ray.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/redis/__init__.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/redis/_async_common.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/redis/_sync_common.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/redis/consts.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/redis/modules/__init__.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/redis/modules/caches.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/redis/modules/queries.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/redis/rb.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/redis/redis.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/redis/redis_cluster.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/redis/redis_py_cluster_legacy.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/redis/utils.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/rq.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/rust_tracing.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/sanic.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/serverless.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/socket.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/spark/__init__.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/spark/spark_driver.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/spark/spark_worker.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/sqlalchemy.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/starlette.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/starlite.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/statsig.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/stdlib.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/strawberry.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/sys_exit.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/threading.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/tornado.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/trytond.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/typer.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/unleash.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/wsgi.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/metrics.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/monitor.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/profiler/__init__.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/profiler/continuous_profiler.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/profiler/transaction_profiler.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/profiler/utils.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/py.typed +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/scope.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/scrubber.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/serializer.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/session.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/sessions.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/spotlight.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/tracing.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/tracing_utils.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/transport.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/types.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/utils.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/worker.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk.egg-info/SOURCES.txt +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk.egg-info/dependency_links.txt +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk.egg-info/entry_points.txt +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk.egg-info/not-zip-safe +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk.egg-info/requires.txt +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk.egg-info/top_level.txt +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/setup.cfg +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_ai_monitoring.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_api.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_basics.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_conftest.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_crons.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_dsc.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_envelope.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_exceptiongroup.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_feature_flags.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_full_stack_frames.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_gevent.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_import.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_lru_cache.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_metrics.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_monitor.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_propagationcontext.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_scope.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_scrubber.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_serializer.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_sessions.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_spotlight.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_tracing_utils.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_transport.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_types.py +0 -0
- {sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/tests/test_utils.py +0 -0
|
@@ -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
|
-
|
|
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
|
|
@@ -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
|
-
|
|
362
|
-
|
|
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
|
|
{sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openai_agents/patches/agent_run.py
RENAMED
|
@@ -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: (
|
|
@@ -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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openai_agents/patches/__init__.py
RENAMED
|
File without changes
|
{sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openai_agents/patches/models.py
RENAMED
|
File without changes
|
{sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openai_agents/patches/tools.py
RENAMED
|
File without changes
|
{sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openai_agents/spans/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openai_agents/spans/ai_client.py
RENAMED
|
File without changes
|
{sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openai_agents/spans/execute_tool.py
RENAMED
|
File without changes
|
{sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openai_agents/spans/handoff.py
RENAMED
|
File without changes
|
{sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/openai_agents/spans/invoke_agent.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/opentelemetry/integration.py
RENAMED
|
File without changes
|
|
File without changes
|
{sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/opentelemetry/span_processor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sentry_sdk-2.35.0 → sentry_sdk-2.35.2}/sentry_sdk/integrations/redis/redis_py_cluster_legacy.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|