X7ROOT File Manager
Current Path:
/opt/hc_python/lib/python3.12/site-packages/sentry_sdk/integrations
opt
/
hc_python
/
lib
/
python3.12
/
site-packages
/
sentry_sdk
/
integrations
/
??
..
??
__init__.py
(12.44 KB)
??
__pycache__
??
_asgi_common.py
(3.11 KB)
??
_wsgi_common.py
(7.38 KB)
??
aiohttp.py
(12.7 KB)
??
anthropic.py
(14.17 KB)
??
argv.py
(911 B)
??
ariadne.py
(5.7 KB)
??
arq.py
(7.7 KB)
??
asgi.py
(12.5 KB)
??
asyncio.py
(4.5 KB)
??
asyncpg.py
(6.37 KB)
??
atexit.py
(1.61 KB)
??
aws_lambda.py
(17.65 KB)
??
beam.py
(5.06 KB)
??
boto3.py
(4.31 KB)
??
bottle.py
(6.46 KB)
??
celery
??
chalice.py
(4.59 KB)
??
clickhouse_driver.py
(5.96 KB)
??
cloud_resource_context.py
(7.6 KB)
??
cohere.py
(9.18 KB)
??
dedupe.py
(1.93 KB)
??
django
??
dramatiq.py
(7.28 KB)
??
excepthook.py
(2.35 KB)
??
executing.py
(1.95 KB)
??
falcon.py
(9.28 KB)
??
fastapi.py
(4.48 KB)
??
flask.py
(8.54 KB)
??
gcp.py
(8.26 KB)
??
gnu_backtrace.py
(2.75 KB)
??
google_genai
??
gql.py
(4.69 KB)
??
graphene.py
(4.92 KB)
??
grpc
??
httpx.py
(5.94 KB)
??
huey.py
(5.32 KB)
??
huggingface_hub.py
(14.6 KB)
??
langchain.py
(39.02 KB)
??
langgraph.py
(11.56 KB)
??
launchdarkly.py
(1.89 KB)
??
litellm.py
(9.99 KB)
??
litestar.py
(11.55 KB)
??
logging.py
(13.57 KB)
??
loguru.py
(6.38 KB)
??
mcp.py
(19.58 KB)
??
modules.py
(820 B)
??
openai.py
(24.54 KB)
??
openai_agents
??
openfeature.py
(1.1 KB)
??
opentelemetry
??
otlp.py
(3.06 KB)
??
pure_eval.py
(4.5 KB)
??
pydantic_ai
??
pymongo.py
(6.23 KB)
??
pyramid.py
(7.19 KB)
??
quart.py
(7.24 KB)
??
ray.py
(5.2 KB)
??
redis
??
rq.py
(5.18 KB)
??
rust_tracing.py
(8.87 KB)
??
sanic.py
(12.66 KB)
??
serverless.py
(1.76 KB)
??
socket.py
(3.09 KB)
??
spark
??
sqlalchemy.py
(4.24 KB)
??
starlette.py
(25.62 KB)
??
starlite.py
(10.31 KB)
??
statsig.py
(1.2 KB)
??
stdlib.py
(8.76 KB)
??
strawberry.py
(13.82 KB)
??
sys_exit.py
(2.43 KB)
??
threading.py
(6.94 KB)
??
tornado.py
(7.04 KB)
??
trytond.py
(1.61 KB)
??
typer.py
(1.77 KB)
??
unleash.py
(1.03 KB)
??
unraisablehook.py
(1.71 KB)
??
wsgi.py
(10.56 KB)
Editing: graphene.py
from contextlib import contextmanager import sentry_sdk from sentry_sdk.consts import OP from sentry_sdk.integrations import _check_minimum_version, DidNotEnable, Integration from sentry_sdk.scope import should_send_default_pii from sentry_sdk.utils import ( capture_internal_exceptions, ensure_integration_enabled, event_from_exception, package_version, ) try: from graphene.types import schema as graphene_schema # type: ignore except ImportError: raise DidNotEnable("graphene is not installed") from typing import TYPE_CHECKING if TYPE_CHECKING: from collections.abc import Generator from typing import Any, Dict, Union from graphene.language.source import Source # type: ignore from graphql.execution import ExecutionResult from graphql.type import GraphQLSchema from sentry_sdk._types import Event class GrapheneIntegration(Integration): identifier = "graphene" @staticmethod def setup_once(): # type: () -> None version = package_version("graphene") _check_minimum_version(GrapheneIntegration, version) _patch_graphql() def _patch_graphql(): # type: () -> None old_graphql_sync = graphene_schema.graphql_sync old_graphql_async = graphene_schema.graphql @ensure_integration_enabled(GrapheneIntegration, old_graphql_sync) def _sentry_patched_graphql_sync(schema, source, *args, **kwargs): # type: (GraphQLSchema, Union[str, Source], Any, Any) -> ExecutionResult scope = sentry_sdk.get_isolation_scope() scope.add_event_processor(_event_processor) with graphql_span(schema, source, kwargs): result = old_graphql_sync(schema, source, *args, **kwargs) with capture_internal_exceptions(): client = sentry_sdk.get_client() for error in result.errors or []: event, hint = event_from_exception( error, client_options=client.options, mechanism={ "type": GrapheneIntegration.identifier, "handled": False, }, ) sentry_sdk.capture_event(event, hint=hint) return result async def _sentry_patched_graphql_async(schema, source, *args, **kwargs): # type: (GraphQLSchema, Union[str, Source], Any, Any) -> ExecutionResult integration = sentry_sdk.get_client().get_integration(GrapheneIntegration) if integration is None: return await old_graphql_async(schema, source, *args, **kwargs) scope = sentry_sdk.get_isolation_scope() scope.add_event_processor(_event_processor) with graphql_span(schema, source, kwargs): result = await old_graphql_async(schema, source, *args, **kwargs) with capture_internal_exceptions(): client = sentry_sdk.get_client() for error in result.errors or []: event, hint = event_from_exception( error, client_options=client.options, mechanism={ "type": GrapheneIntegration.identifier, "handled": False, }, ) sentry_sdk.capture_event(event, hint=hint) return result graphene_schema.graphql_sync = _sentry_patched_graphql_sync graphene_schema.graphql = _sentry_patched_graphql_async def _event_processor(event, hint): # type: (Event, Dict[str, Any]) -> Event if should_send_default_pii(): request_info = event.setdefault("request", {}) request_info["api_target"] = "graphql" elif event.get("request", {}).get("data"): del event["request"]["data"] return event @contextmanager def graphql_span(schema, source, kwargs): # type: (GraphQLSchema, Union[str, Source], Dict[str, Any]) -> Generator[None, None, None] operation_name = kwargs.get("operation_name") operation_type = "query" op = OP.GRAPHQL_QUERY if source.strip().startswith("mutation"): operation_type = "mutation" op = OP.GRAPHQL_MUTATION elif source.strip().startswith("subscription"): operation_type = "subscription" op = OP.GRAPHQL_SUBSCRIPTION sentry_sdk.add_breadcrumb( crumb={ "data": { "operation_name": operation_name, "operation_type": operation_type, }, "category": "graphql.operation", }, ) scope = sentry_sdk.get_current_scope() if scope.span: _graphql_span = scope.span.start_child(op=op, name=operation_name) else: _graphql_span = sentry_sdk.start_span(op=op, name=operation_name) _graphql_span.set_data("graphql.document", source) _graphql_span.set_data("graphql.operation.name", operation_name) _graphql_span.set_data("graphql.operation.type", operation_type) try: yield finally: _graphql_span.finish()
Upload File
Create Folder