/opt/imunify360/venv/lib/python3.11/site-packages/sentry_sdk/integrations
NameSizeModeActions
django/-0755rm
spark/-0755rm
__pycache__/-0755rm
aiohttp.py79600644editdlrm
argv.py9450644editdlrm
asgi.py83680644editdlrm
atexit.py18370644editdlrm
aws_lambda.py129410644editdlrm
beam.py56620644editdlrm
boto3.py37270644editdlrm
bottle.py61870644editdlrm
celery.py91190644editdlrm
chalice.py45730644editdlrm
dedupe.py11660644editdlrm
excepthook.py21900644editdlrm
executing.py20230644editdlrm
falcon.py67960644editdlrm
flask.py74280644editdlrm
gcp.py73820644editdlrm
gnu_backtrace.py29120644editdlrm
logging.py75730644editdlrm
modules.py13930644editdlrm
pure_eval.py45200644editdlrm
pyramid.py70720644editdlrm
redis.py30750644editdlrm
rq.py47910644editdlrm
sanic.py77090644editdlrm
serverless.py19710644editdlrm
sqlalchemy.py29390644editdlrm
stdlib.py73480644editdlrm
threading.py28560644editdlrm
tornado.py70010644editdlrm
trytond.py17280644editdlrm
wsgi.py103740644editdlrm
_wsgi_common.py47630644editdlrm
__init__.py65090644editdlrm
Edit: /opt/imunify360/venv/lib/python3.11/site-packages/sentry_sdk/integrations/sqlalchemy.py (2939B)
from __future__ import absolute_import from sentry_sdk._types import MYPY from sentry_sdk.hub import Hub from sentry_sdk.integrations import Integration, DidNotEnable from sentry_sdk.tracing import record_sql_queries try: from sqlalchemy.engine import Engine # type: ignore from sqlalchemy.event import listen # type: ignore from sqlalchemy import __version__ as SQLALCHEMY_VERSION # type: ignore except ImportError: raise DidNotEnable("SQLAlchemy not installed.") if MYPY: from typing import Any from typing import ContextManager from typing import Optional from sentry_sdk.tracing import Span class SqlalchemyIntegration(Integration): identifier = "sqlalchemy" @staticmethod def setup_once(): # type: () -> None try: version = tuple(map(int, SQLALCHEMY_VERSION.split("b")[0].split("."))) except (TypeError, ValueError): raise DidNotEnable( "Unparsable SQLAlchemy version: {}".format(SQLALCHEMY_VERSION) ) if version < (1, 2): raise DidNotEnable("SQLAlchemy 1.2 or newer required.") listen(Engine, "before_cursor_execute", _before_cursor_execute) listen(Engine, "after_cursor_execute", _after_cursor_execute) listen(Engine, "handle_error", _handle_error) def _before_cursor_execute( conn, cursor, statement, parameters, context, executemany, *args ): # type: (Any, Any, Any, Any, Any, bool, *Any) -> None hub = Hub.current if hub.get_integration(SqlalchemyIntegration) is None: return ctx_mgr = record_sql_queries( hub, cursor, statement, parameters, paramstyle=context and context.dialect and context.dialect.paramstyle or None, executemany=executemany, ) conn._sentry_sql_span_manager = ctx_mgr span = ctx_mgr.__enter__() if span is not None: conn._sentry_sql_span = span def _after_cursor_execute(conn, cursor, statement, *args): # type: (Any, Any, Any, *Any) -> None ctx_mgr = getattr( conn, "_sentry_sql_span_manager", None ) # type: ContextManager[Any] if ctx_mgr is not None: conn._sentry_sql_span_manager = None ctx_mgr.__exit__(None, None, None) def _handle_error(context, *args): # type: (Any, *Any) -> None conn = context.connection span = getattr(conn, "_sentry_sql_span", None) # type: Optional[Span] if span is not None: span.set_status("internal_error") # _after_cursor_execute does not get called for crashing SQL stmts. Judging # from SQLAlchemy codebase it does seem like any error coming into this # handler is going to be fatal. ctx_mgr = getattr( conn, "_sentry_sql_span_manager", None ) # type: ContextManager[Any] if ctx_mgr is not None: conn._sentry_sql_span_manager = None ctx_mgr.__exit__(None, None, None)