sentry-sdk 2.69.0__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.
- {sentry_sdk-2.69.0/sentry_sdk.egg-info → sentry_sdk-2.69.2}/PKG-INFO +1 -1
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/client.py +11 -2
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/consts.py +4 -2
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/aiohttp.py +42 -1
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/aws_lambda.py +42 -26
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/bottle.py +13 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/clickhouse_driver.py +1 -1
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/django/__init__.py +54 -10
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/google_genai/utils.py +1 -1
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/pydantic_ai/patches/tools.py +12 -6
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/stdlib.py +2 -5
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/serializer.py +2 -2
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/traces.py +19 -17
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/utils.py +0 -40
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2/sentry_sdk.egg-info}/PKG-INFO +1 -1
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk.egg-info/SOURCES.txt +2 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/setup.py +1 -1
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aiohttp/test_aiohttp.py +88 -3
- sentry_sdk-2.69.2/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreamingDataCollectionUserInfoOff/index.py +20 -0
- sentry_sdk-2.69.2/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreamingDataCollectionUserInfoOn/index.py +20 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/test_aws_lambda.py +74 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/bottle/test_bottle.py +33 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/clickhouse_driver/test_clickhouse_driver.py +12 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/cohere/test_cohere.py +145 -58
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/django/asgi/test_asgi.py +27 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/django/test_basic.py +20 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/django/test_cache_module.py +2 -3
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/fastmcp/test_fastmcp.py +0 -209
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/huggingface_hub/test_huggingface_hub.py +514 -116
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/logging/test_logging.py +18 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/mcp/test_mcp.py +146 -65
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/openai_agents/test_openai_agents.py +442 -114
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/pydantic_ai/test_pydantic_ai.py +0 -252
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/pymongo/test_pymongo.py +1 -1
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/test_basics.py +183 -66
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/utils/test_general.py +0 -55
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/LICENSE +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/MANIFEST.in +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/README.md +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/pyproject.toml +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/_batcher.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/_compat.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/_init_implementation.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/_log_batcher.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/_lru_cache.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/_metrics_batcher.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/_queue.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/_span_batcher.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/_types.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/_werkzeug.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/ai/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/ai/_openai_completions_api.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/ai/_openai_responses_api.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/ai/consts.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/ai/monitoring.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/ai/utils.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/api.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/attachments.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/crons/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/crons/api.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/crons/consts.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/crons/decorator.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/data_collection.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/debug.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/envelope.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/feature_flags.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/hub.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/_asgi_common.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/_wsgi_common.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/aiomysql.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/anthropic.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/argv.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/ariadne.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/arq.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/asgi.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/asyncio.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/asyncpg.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/atexit.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/beam.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/boto3.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/celery/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/celery/beat.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/celery/utils.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/chalice.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/cloud_resource_context.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/cohere.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/dedupe.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/django/asgi.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/django/caching.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/django/middleware.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/django/signals_handlers.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/django/tasks.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/django/templates.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/django/transactions.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/django/views.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/dramatiq.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/excepthook.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/executing.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/falcon.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/fastapi.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/flask.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/gcp.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/gnu_backtrace.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/google_genai/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/google_genai/consts.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/google_genai/streaming.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/gql.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/graphene.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/grpc/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/grpc/aio/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/grpc/aio/client.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/grpc/aio/server.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/grpc/client.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/grpc/consts.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/grpc/server.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/httpx.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/httpx2.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/huey.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/huggingface_hub.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/langchain.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/langgraph.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/launchdarkly.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/litellm.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/litestar.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/logging.py +1 -1
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/loguru.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/mcp.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/modules.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/openai.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/openai_agents/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/openai_agents/consts.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/openai_agents/patches/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/openai_agents/patches/agent_run.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/openai_agents/patches/error_tracing.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/openai_agents/patches/models.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/openai_agents/patches/runner.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/openai_agents/patches/tools.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/openai_agents/spans/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/openai_agents/spans/agent_workflow.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/openai_agents/spans/ai_client.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/openai_agents/spans/execute_tool.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/openai_agents/spans/handoff.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/openai_agents/spans/invoke_agent.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/openai_agents/utils.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/openfeature.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/opentelemetry/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/opentelemetry/consts.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/opentelemetry/integration.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/opentelemetry/propagator.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/opentelemetry/span_processor.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/otlp.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/pure_eval.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/pydantic_ai/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/pydantic_ai/consts.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/pydantic_ai/patches/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/pydantic_ai/patches/agent_run.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/pydantic_ai/patches/graph_nodes.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/pydantic_ai/spans/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/pydantic_ai/spans/ai_client.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/pydantic_ai/spans/execute_tool.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/pydantic_ai/spans/invoke_agent.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/pydantic_ai/spans/utils.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/pydantic_ai/utils.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/pymongo.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/pyramid.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/pyreqwest.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/quart.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/ray.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/redis/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/redis/_async_common.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/redis/_sync_common.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/redis/consts.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/redis/modules/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/redis/modules/caches.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/redis/modules/queries.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/redis/rb.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/redis/redis.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/redis/redis_cluster.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/redis/redis_py_cluster_legacy.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/redis/utils.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/rq.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/rust_tracing.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/sanic.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/serverless.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/socket.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/spark/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/spark/spark_driver.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/spark/spark_worker.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/sqlalchemy.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/starlette.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/starlite.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/statsig.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/strawberry.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/sys_exit.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/threading.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/tornado.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/trytond.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/typer.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/unleash.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/unraisablehook.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/wsgi.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/logger.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/metrics.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/monitor.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/profiler/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/profiler/continuous_profiler.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/profiler/transaction_profiler.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/profiler/utils.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/py.typed +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/scope.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/scrubber.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/session.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/sessions.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/spotlight.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/tracing.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/tracing_utils.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/transport.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/types.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/worker.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk.egg-info/dependency_links.txt +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk.egg-info/entry_points.txt +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk.egg-info/not-zip-safe +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk.egg-info/requires.txt +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk.egg-info/top_level.txt +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/setup.cfg +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/conftest.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aiohttp/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aiohttp/aiohttp_helpers/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aiohttp/aiohttp_helpers/helpers.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aiomysql/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aiomysql/test_aiomysql.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/anthropic/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/anthropic/test_anthropic.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/argv/test_argv.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/ariadne/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/ariadne/test_ariadne.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/arq/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/arq/test_arq.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/asgi/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/asgi/test_asgi.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/asyncio/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/asyncio/test_asyncio.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/asyncpg/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/asyncpg/asyncpg_helpers/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/asyncpg/asyncpg_helpers/helpers.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/asyncpg/test_asyncpg.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions/BasicException/index.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions/BasicOk/index.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions/InitError/index.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions/TimeoutError/index.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionAllowlist/.gitignore +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionAllowlist/.lock +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionAllowlist/index.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionDenylist/.gitignore +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionDenylist/.lock +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionDenylist/index.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionOff/.gitignore +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionOff/.lock +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionOff/index.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionUrlQueryAllowlist/.gitignore +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionUrlQueryAllowlist/index.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionUrlQueryDenylist/.gitignore +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionUrlQueryDenylist/index.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionUrlQueryOff/.gitignore +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionUrlQueryOff/index.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionUserInfoOff/.gitignore +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionUserInfoOff/index.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionUserInfoOn/.gitignore +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkDataCollectionUserInfoOn/index.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSendDefaultPii/.gitignore +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSendDefaultPii/.lock +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSendDefaultPii/index.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreaming/.gitignore +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreaming/index.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreamingDataCollection/.gitignore +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreamingDataCollection/index.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreamingPii/.gitignore +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/BasicOkSpanStreamingPii/index.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/RaiseErrorPerformanceDisabled/.gitignore +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/RaiseErrorPerformanceDisabled/index.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/RaiseErrorPerformanceEnabled/.gitignore +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/RaiseErrorPerformanceEnabled/index.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/RaiseErrorSpanStreaming/.gitignore +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/RaiseErrorSpanStreaming/index.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/TimeoutErrorScopeModified/.gitignore +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/TimeoutErrorScopeModified/index.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/TracesSampler/.gitignore +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/lambda_functions_with_embedded_sdk/TracesSampler/index.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/aws_lambda/utils.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/beam/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/beam/test_beam.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/boto3/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/boto3/aws_mock.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/boto3/s3_list.xml +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/boto3/test_aws_http_connection.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/boto3/test_s3.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/boto3/test_trace_propagation.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/bottle/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/celery/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/celery/integration_tests/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/celery/integration_tests/test_celery_beat_cron_monitoring.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/celery/test_celery.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/celery/test_celery_beat_crons.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/celery/test_update_celery_task_headers.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/chalice/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/chalice/test_chalice.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/clickhouse_driver/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/cloud_resource_context/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/cloud_resource_context/test_cloud_resource_context.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/cohere/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/conftest.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/django/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/django/asgi/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/django/asgi/image.png +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/django/django_helpers/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/django/django_helpers/views.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/django/myapp/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/django/myapp/asgi.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/django/myapp/custom_urls.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/django/myapp/manage.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/django/myapp/management/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/django/myapp/management/commands/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/django/myapp/management/commands/mycrash.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/django/myapp/middleware.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/django/myapp/routing.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/django/myapp/settings.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/django/myapp/signals.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/django/myapp/templates/error.html +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/django/myapp/templates/trace_meta.html +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/django/myapp/templates/user_name.html +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/django/myapp/urls.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/django/myapp/views.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/django/myapp/wsgi.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/django/test_data_scrubbing.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/django/test_db_query_data.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/django/test_db_transactions.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/django/test_middleware.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/django/test_tasks.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/django/test_transactions.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/django/utils.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/dramatiq/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/dramatiq/test_dramatiq.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/excepthook/test_excepthook.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/falcon/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/falcon/test_falcon.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/fastapi/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/fastapi/photo.jpg +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/fastapi/test_fastapi.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/fastmcp/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/flask/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/flask/test_flask.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/gcp/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/gcp/test_gcp.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/google_genai/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/google_genai/test_google_genai.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/gql/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/gql/test_gql.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/graphene/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/graphene/test_graphene.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/grpc/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/grpc/compile_test_services.sh +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/grpc/grpc_test_service_pb2.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/grpc/grpc_test_service_pb2.pyi +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/grpc/grpc_test_service_pb2_grpc.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/grpc/protos/grpc_test_service.proto +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/grpc/test_grpc.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/grpc/test_grpc_aio.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/httpx/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/httpx/httpx_helpers/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/httpx/httpx_helpers/helpers.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/httpx/test_httpx.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/httpx2/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/httpx2/httpx2_helpers/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/httpx2/httpx2_helpers/helpers.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/httpx2/test_httpx2.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/huey/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/huey/test_huey.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/huggingface_hub/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/langchain/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/langchain/test_langchain.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/langgraph/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/langgraph/test_langgraph.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/launchdarkly/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/launchdarkly/test_launchdarkly.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/litellm/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/litellm/test_litellm.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/litestar/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/litestar/test_litestar.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/loguru/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/loguru/test_loguru.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/mcp/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/modules/test_modules.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/openai/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/openai/test_openai.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/openai_agents/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/openfeature/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/openfeature/test_openfeature.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/opentelemetry/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/opentelemetry/test_entry_points.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/opentelemetry/test_experimental.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/opentelemetry/test_propagator.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/opentelemetry/test_span_processor.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/otlp/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/otlp/test_otlp.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/pure_eval/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/pure_eval/test_pure_eval.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/pydantic_ai/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/pymongo/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/pyramid/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/pyramid/test_pyramid.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/pyreqwest/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/pyreqwest/pyreqwest_helpers/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/pyreqwest/pyreqwest_helpers/helpers.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/pyreqwest/test_pyreqwest.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/quart/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/quart/test_quart.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/ray/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/ray/test_ray.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/redis/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/redis/asyncio/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/redis/asyncio/test_redis_asyncio.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/redis/cluster/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/redis/cluster/test_redis_cluster.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/redis/cluster_asyncio/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/redis/cluster_asyncio/test_redis_cluster_asyncio.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/redis/test_redis.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/redis/test_redis_cache_module.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/redis/test_redis_cache_module_async.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/redis_py_cluster_legacy/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/redis_py_cluster_legacy/test_redis_py_cluster_legacy.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/requests/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/requests/test_requests.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/rq/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/rq/test_rq.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/rust_tracing/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/rust_tracing/test_rust_tracing.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/sanic/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/sanic/test_sanic.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/serverless/test_serverless.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/socket/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/socket/test_socket.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/spark/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/spark/test_spark.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/sqlalchemy/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/sqlalchemy/sqlalchemy_helpers/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/sqlalchemy/sqlalchemy_helpers/helpers.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/sqlalchemy/test_sqlalchemy.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/starlette/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/starlette/photo.jpg +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/starlette/templates/trace_meta.html +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/starlette/test_starlette.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/starlite/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/starlite/test_starlite.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/statsig/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/statsig/test_statsig.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/stdlib/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/stdlib/httplib_helpers/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/stdlib/httplib_helpers/helpers.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/stdlib/test_httplib.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/stdlib/test_subprocess.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/strawberry/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/strawberry/test_strawberry.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/sys_exit/test_sys_exit.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/test_gnu_backtrace.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/threading/test_threading.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/tornado/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/tornado/test_tornado.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/trytond/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/trytond/test_trytond.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/typer/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/typer/test_typer.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/unleash/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/unleash/test_unleash.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/unleash/testutils.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/unraisablehook/test_unraisablehook.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/utils.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/integrations/wsgi/test_wsgi.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/new_scopes_compat/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/new_scopes_compat/conftest.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/new_scopes_compat/test_new_scopes_compat.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/new_scopes_compat/test_new_scopes_compat_event.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/profiler/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/profiler/test_continuous_profiler.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/profiler/test_transaction_profiler.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/test.key +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/test.pem +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/test_ai_integration_deactivation.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/test_ai_monitoring.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/test_api.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/test_attributes.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/test_client.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/test_conftest.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/test_crons.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/test_data_collection.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/test_dsc.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/test_envelope.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/test_exceptiongroup.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/test_feature_flags.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/test_full_stack_frames.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/test_gevent.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/test_import.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/test_logs.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/test_lru_cache.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/test_metrics.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/test_monitor.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/test_propagationcontext.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/test_scope.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/test_scrubber.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/test_serializer.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/test_sessions.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/test_shadowed_module.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/test_spotlight.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/test_tracing_utils.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/test_transport.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/test_types.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/test_utils.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/tracing/test_baggage.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/tracing/test_conversation_id.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/tracing/test_decorator.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/tracing/test_deprecated.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/tracing/test_http_headers.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/tracing/test_ignore_status_codes.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/tracing/test_integration_tests.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/tracing/test_misc.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/tracing/test_noop_span.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/tracing/test_propagation.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/tracing/test_sample_rand.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/tracing/test_sample_rand_propagation.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/tracing/test_sampling.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/tracing/test_span_batcher.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/tracing/test_span_name.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/tracing/test_span_origin.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/tracing/test_span_streaming.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/utils/__init__.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/utils/test_contextvars.py +0 -0
- {sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/tests/utils/test_transaction.py +0 -0
|
@@ -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.
|
|
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
|
|
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
|
|
@@ -7,6 +7,8 @@ DEFAULT_MAX_VALUE_LENGTH = None
|
|
|
7
7
|
DEFAULT_MAX_STACK_FRAMES = 100
|
|
8
8
|
DEFAULT_ADD_FULL_STACK = False
|
|
9
9
|
|
|
10
|
+
_SENTRY_HEADER_NAMES = frozenset(("baggage", "sentry-trace"))
|
|
11
|
+
|
|
10
12
|
|
|
11
13
|
# Also needs to be at the top to prevent circular import
|
|
12
14
|
class EndpointType(Enum):
|
|
@@ -1335,7 +1337,7 @@ class ClientConstructor:
|
|
|
1335
1337
|
profile_lifecycle: 'Literal["manual", "trace"]' = "manual",
|
|
1336
1338
|
profile_session_sample_rate: "Optional[float]" = None,
|
|
1337
1339
|
auto_enabling_integrations: bool = True,
|
|
1338
|
-
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,
|
|
1339
1341
|
auto_session_tracking: bool = True,
|
|
1340
1342
|
send_client_reports: bool = True,
|
|
1341
1343
|
_experiments: "Experiments" = {}, # noqa: B006
|
|
@@ -1846,4 +1848,4 @@ DEFAULT_OPTIONS = _get_default_options()
|
|
|
1846
1848
|
del _get_default_options
|
|
1847
1849
|
|
|
1848
1850
|
|
|
1849
|
-
VERSION = "2.69.
|
|
1851
|
+
VERSION = "2.69.2"
|
|
@@ -4,7 +4,7 @@ from functools import wraps
|
|
|
4
4
|
|
|
5
5
|
import sentry_sdk
|
|
6
6
|
from sentry_sdk.api import continue_trace
|
|
7
|
-
from sentry_sdk.consts import OP, SPANDATA, SPANSTATUS
|
|
7
|
+
from sentry_sdk.consts import _SENTRY_HEADER_NAMES, OP, SPANDATA, SPANSTATUS
|
|
8
8
|
from sentry_sdk.data_collection import (
|
|
9
9
|
_apply_data_collection_filtering_to_query_string,
|
|
10
10
|
)
|
|
@@ -29,6 +29,7 @@ from sentry_sdk.traces import (
|
|
|
29
29
|
)
|
|
30
30
|
from sentry_sdk.tracing import (
|
|
31
31
|
BAGGAGE_HEADER_NAME,
|
|
32
|
+
SENTRY_TRACE_HEADER_NAME,
|
|
32
33
|
SOURCE_FOR_STYLE,
|
|
33
34
|
TransactionSource,
|
|
34
35
|
)
|
|
@@ -43,6 +44,8 @@ from sentry_sdk.utils import (
|
|
|
43
44
|
HAS_REAL_CONTEXTVARS,
|
|
44
45
|
SENSITIVE_DATA_SUBSTITUTE,
|
|
45
46
|
AnnotatedValue,
|
|
47
|
+
_get_aws_sigv4_signed_headers_from_authorization_header,
|
|
48
|
+
_get_aws_sigv4_signed_headers_from_url_query_string,
|
|
46
49
|
_register_control_flow_exception,
|
|
47
50
|
capture_internal_exceptions,
|
|
48
51
|
ensure_integration_enabled,
|
|
@@ -464,12 +467,50 @@ def create_trace_config() -> "TraceConfig":
|
|
|
464
467
|
span = legacy_span
|
|
465
468
|
|
|
466
469
|
if should_propagate_trace(client, str(params.url)):
|
|
470
|
+
# existing `sentry-trace`: skip so it is not duplicated.
|
|
471
|
+
headers_to_skip: "set[str]" = set()
|
|
472
|
+
if SENTRY_TRACE_HEADER_NAME in params.headers:
|
|
473
|
+
headers_to_skip.add(SENTRY_TRACE_HEADER_NAME)
|
|
474
|
+
|
|
475
|
+
with capture_internal_exceptions():
|
|
476
|
+
authorization = params.headers.get("Authorization")
|
|
477
|
+
if authorization:
|
|
478
|
+
if isinstance(authorization, bytes):
|
|
479
|
+
authorization = authorization.decode("latin-1")
|
|
480
|
+
# `SignedHeaders` lists fields covered by SigV4.
|
|
481
|
+
signed_headers = (
|
|
482
|
+
_get_aws_sigv4_signed_headers_from_authorization_header(
|
|
483
|
+
authorization
|
|
484
|
+
)
|
|
485
|
+
)
|
|
486
|
+
# skip signed `sentry-trace` and `baggage`.
|
|
487
|
+
headers_to_skip.update(
|
|
488
|
+
_SENTRY_HEADER_NAMES.intersection(signed_headers)
|
|
489
|
+
)
|
|
490
|
+
|
|
491
|
+
# presigned URLs list signed names in the query string.
|
|
492
|
+
query_signed_headers = (
|
|
493
|
+
_get_aws_sigv4_signed_headers_from_url_query_string(str(params.url))
|
|
494
|
+
)
|
|
495
|
+
headers_to_skip.update(
|
|
496
|
+
_SENTRY_HEADER_NAMES.intersection(query_signed_headers)
|
|
497
|
+
)
|
|
498
|
+
|
|
467
499
|
for (
|
|
468
500
|
key,
|
|
469
501
|
value,
|
|
470
502
|
) in sentry_sdk.get_current_scope().iter_trace_propagation_headers(
|
|
471
503
|
span=span
|
|
472
504
|
):
|
|
505
|
+
# skip signed headers and an existing `sentry-trace`.
|
|
506
|
+
if key.lower() in headers_to_skip:
|
|
507
|
+
logger.debug(
|
|
508
|
+
"[Tracing] Not adding `{key}` header to outgoing request "
|
|
509
|
+
"to {url}: it already exists or is covered by the AWS "
|
|
510
|
+
"SigV4 signature.".format(key=key, url=params.url)
|
|
511
|
+
)
|
|
512
|
+
continue
|
|
513
|
+
|
|
473
514
|
logger.debug(
|
|
474
515
|
"[Tracing] Adding `{key}` header {value} to outgoing request to {url}.".format(
|
|
475
516
|
key=key, value=value, url=params.url
|
|
@@ -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
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
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
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
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=
|
|
164
|
+
data=breadcrumb_data,
|
|
165
165
|
)
|
|
166
166
|
|
|
167
167
|
span = getattr(instance.connection, "_sentry_span", None)
|
|
@@ -451,7 +451,10 @@ def _patch_django_asgi_handler() -> None:
|
|
|
451
451
|
|
|
452
452
|
|
|
453
453
|
def _set_transaction_name_and_source(
|
|
454
|
-
scope: "sentry_sdk.Scope",
|
|
454
|
+
scope: "sentry_sdk.Scope",
|
|
455
|
+
transaction_style: str,
|
|
456
|
+
request: "WSGIRequest",
|
|
457
|
+
route_path: "Optional[str]",
|
|
455
458
|
) -> None:
|
|
456
459
|
try:
|
|
457
460
|
transaction_name = None
|
|
@@ -459,13 +462,8 @@ def _set_transaction_name_and_source(
|
|
|
459
462
|
fn = resolve(request.path).func
|
|
460
463
|
transaction_name = transaction_from_function(getattr(fn, "view_class", fn))
|
|
461
464
|
|
|
462
|
-
elif transaction_style == "url":
|
|
463
|
-
|
|
464
|
-
transaction_name = LEGACY_RESOLVER.resolve(
|
|
465
|
-
request.path_info, urlconf=request.urlconf
|
|
466
|
-
)
|
|
467
|
-
else:
|
|
468
|
-
transaction_name = LEGACY_RESOLVER.resolve(request.path_info)
|
|
465
|
+
elif transaction_style == "url" and route_path is not None:
|
|
466
|
+
transaction_name = route_path
|
|
469
467
|
|
|
470
468
|
if transaction_name is None:
|
|
471
469
|
transaction_name = request.path_info
|
|
@@ -477,6 +475,11 @@ def _set_transaction_name_and_source(
|
|
|
477
475
|
transaction_name,
|
|
478
476
|
source=source,
|
|
479
477
|
)
|
|
478
|
+
|
|
479
|
+
if transaction_style == "url" and route_path is not None:
|
|
480
|
+
server_span = scope._server_segment_span
|
|
481
|
+
if server_span is not None:
|
|
482
|
+
server_span.set_attribute(SPANDATA.HTTP_ROUTE, route_path)
|
|
480
483
|
except Resolver404:
|
|
481
484
|
urlconf = import_module(settings.ROOT_URLCONF)
|
|
482
485
|
# This exception only gets thrown when transaction_style is `function_name`
|
|
@@ -501,8 +504,29 @@ def _before_get_response(request: "WSGIRequest") -> None:
|
|
|
501
504
|
_patch_drf()
|
|
502
505
|
|
|
503
506
|
scope = sentry_sdk.get_current_scope()
|
|
507
|
+
|
|
508
|
+
route_path = None
|
|
509
|
+
if hasattr(request, "urlconf"):
|
|
510
|
+
try:
|
|
511
|
+
route_path = LEGACY_RESOLVER.resolve(
|
|
512
|
+
request.path_info, urlconf=request.urlconf
|
|
513
|
+
)
|
|
514
|
+
except Exception:
|
|
515
|
+
pass
|
|
516
|
+
else:
|
|
517
|
+
try:
|
|
518
|
+
route_path = LEGACY_RESOLVER.resolve(request.path_info)
|
|
519
|
+
except Exception:
|
|
520
|
+
pass
|
|
521
|
+
|
|
522
|
+
server_span = sentry_sdk.get_current_scope()._server_segment_span
|
|
523
|
+
if server_span is not None and route_path is not None:
|
|
524
|
+
server_span.set_attribute(SPANDATA.HTTP_ROUTE, route_path)
|
|
525
|
+
|
|
504
526
|
# Rely on WSGI middleware to start a trace
|
|
505
|
-
_set_transaction_name_and_source(
|
|
527
|
+
_set_transaction_name_and_source(
|
|
528
|
+
scope, integration.transaction_style, request, route_path=route_path
|
|
529
|
+
)
|
|
506
530
|
|
|
507
531
|
scope.add_event_processor(
|
|
508
532
|
_make_wsgi_request_event_processor(weakref.ref(request), integration)
|
|
@@ -520,7 +544,27 @@ def _attempt_resolve_again(
|
|
|
520
544
|
if not hasattr(request, "urlconf"):
|
|
521
545
|
return
|
|
522
546
|
|
|
523
|
-
|
|
547
|
+
route_path = None
|
|
548
|
+
if hasattr(request, "urlconf"):
|
|
549
|
+
try:
|
|
550
|
+
route_path = LEGACY_RESOLVER.resolve(
|
|
551
|
+
request.path_info, urlconf=request.urlconf
|
|
552
|
+
)
|
|
553
|
+
except Exception:
|
|
554
|
+
pass
|
|
555
|
+
else:
|
|
556
|
+
try:
|
|
557
|
+
route_path = LEGACY_RESOLVER.resolve(request.path_info)
|
|
558
|
+
except Exception:
|
|
559
|
+
pass
|
|
560
|
+
|
|
561
|
+
server_span = sentry_sdk.get_current_scope()._server_segment_span
|
|
562
|
+
if server_span is not None and route_path is not None:
|
|
563
|
+
server_span.set_attribute(SPANDATA.HTTP_ROUTE, route_path)
|
|
564
|
+
|
|
565
|
+
_set_transaction_name_and_source(
|
|
566
|
+
scope, transaction_style, request, route_path=route_path
|
|
567
|
+
)
|
|
524
568
|
|
|
525
569
|
|
|
526
570
|
def _get_user_from_request_and_set_on_scope(request: "WSGIRequest") -> 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", []
|
{sentry_sdk-2.69.0 → sentry_sdk-2.69.2}/sentry_sdk/integrations/pydantic_ai/patches/tools.py
RENAMED
|
@@ -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
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
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
|
-
|
|
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()
|
|
@@ -6,11 +6,11 @@ from http.client import HTTPConnection, HTTPResponse
|
|
|
6
6
|
from typing import TYPE_CHECKING
|
|
7
7
|
|
|
8
8
|
import sentry_sdk
|
|
9
|
-
from sentry_sdk.consts import OP, SPANDATA
|
|
9
|
+
from sentry_sdk.consts import _SENTRY_HEADER_NAMES, OP, SPANDATA
|
|
10
10
|
from sentry_sdk.integrations import Integration
|
|
11
11
|
from sentry_sdk.scope import add_global_event_processor
|
|
12
12
|
from sentry_sdk.traces import StreamedSpan
|
|
13
|
-
from sentry_sdk.tracing import
|
|
13
|
+
from sentry_sdk.tracing import SENTRY_TRACE_HEADER_NAME, Span
|
|
14
14
|
from sentry_sdk.tracing_utils import (
|
|
15
15
|
EnvironHeaders,
|
|
16
16
|
add_http_breadcrumb,
|
|
@@ -42,9 +42,6 @@ _RUNTIME_CONTEXT: "dict[str, object]" = {
|
|
|
42
42
|
"version": "%s.%s.%s" % (sys.version_info[:3]),
|
|
43
43
|
"build": sys.version,
|
|
44
44
|
}
|
|
45
|
-
|
|
46
|
-
_SENTRY_HEADER_NAMES = frozenset((BAGGAGE_HEADER_NAME, SENTRY_TRACE_HEADER_NAME))
|
|
47
|
-
|
|
48
45
|
try:
|
|
49
46
|
from botocore.awsrequest import AWSHTTPConnection, AWSHTTPSConnection
|
|
50
47
|
except ImportError:
|
|
@@ -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
|
-
|
|
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
|
-
|
|
6
|
+
You can enable span streaming mode via:
|
|
5
7
|
|
|
6
|
-
|
|
7
|
-
sentry_sdk
|
|
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
|
|
|
@@ -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
|