/opt/cloudlinux/venv/lib/python3.11/site-packages/sentry_sdk/integrations
NameSizeModeActions
django/-0755rm
grpc/-0755rm
opentelemetry/-0755rm
redis/-0755rm
spark/-0755rm
__pycache__/-0755rm
aiohttp.py115530644editdlrm
argv.py9630644editdlrm
arq.py67370644editdlrm
asgi.py118210644editdlrm
asyncio.py30490644editdlrm
atexit.py18460644editdlrm
aws_lambda.py158150644editdlrm
beam.py56890644editdlrm
boto3.py45420644editdlrm
bottle.py64710644editdlrm
celery.py191000644editdlrm
chalice.py47690644editdlrm
cloud_resource_context.py67550644editdlrm
dedupe.py11840644editdlrm
excepthook.py22600644editdlrm
executing.py20410644editdlrm
falcon.py79840644editdlrm
fastapi.py44960644editdlrm
flask.py79070644editdlrm
gcp.py82130644editdlrm
gnu_backtrace.py29300644editdlrm
httpx.py50050644editdlrm
huey.py47000644editdlrm
logging.py91810644editdlrm
loguru.py30510644editdlrm
modules.py21100644editdlrm
pure_eval.py45540644editdlrm
pymongo.py60070644editdlrm
pyramid.py74420644editdlrm
quart.py73770644editdlrm
rq.py54110644editdlrm
sanic.py113260644editdlrm
serverless.py19750644editdlrm
socket.py29450644editdlrm
sqlalchemy.py42440644editdlrm
starlette.py232110644editdlrm
starlite.py100890644editdlrm
stdlib.py82510644editdlrm
threading.py29370644editdlrm
tornado.py73420644editdlrm
trytond.py17450644editdlrm
wsgi.py95810644editdlrm
_wsgi_common.py45370644editdlrm
__init__.py68270644editdlrm
Edit: /opt/cloudlinux/venv/lib/python3.11/site-packages/sentry_sdk/integrations/chalice.py (4769B)
import sys from sentry_sdk._compat import reraise from sentry_sdk.hub import Hub from sentry_sdk.integrations import Integration, DidNotEnable from sentry_sdk.integrations.aws_lambda import _make_request_event_processor from sentry_sdk.tracing import TRANSACTION_SOURCE_COMPONENT from sentry_sdk.utils import ( capture_internal_exceptions, event_from_exception, parse_version, ) from sentry_sdk._types import TYPE_CHECKING from sentry_sdk._functools import wraps import chalice # type: ignore from chalice import Chalice, ChaliceViewError from chalice.app import EventSourceHandler as ChaliceEventSourceHandler # type: ignore if TYPE_CHECKING: from typing import Any from typing import Dict from typing import TypeVar from typing import Callable F = TypeVar("F", bound=Callable[..., Any]) try: from chalice import __version__ as CHALICE_VERSION except ImportError: raise DidNotEnable("Chalice is not installed") class EventSourceHandler(ChaliceEventSourceHandler): # type: ignore def __call__(self, event, context): # type: (Any, Any) -> Any hub = Hub.current client = hub.client # type: Any with hub.push_scope() as scope: with capture_internal_exceptions(): configured_time = context.get_remaining_time_in_millis() scope.add_event_processor( _make_request_event_processor(event, context, configured_time) ) try: return ChaliceEventSourceHandler.__call__(self, event, context) except Exception: exc_info = sys.exc_info() event, hint = event_from_exception( exc_info, client_options=client.options, mechanism={"type": "chalice", "handled": False}, ) hub.capture_event(event, hint=hint) hub.flush() reraise(*exc_info) def _get_view_function_response(app, view_function, function_args): # type: (Any, F, Any) -> F @wraps(view_function) def wrapped_view_function(**function_args): # type: (**Any) -> Any hub = Hub.current client = hub.client # type: Any with hub.push_scope() as scope: with capture_internal_exceptions(): configured_time = app.lambda_context.get_remaining_time_in_millis() scope.set_transaction_name( app.lambda_context.function_name, source=TRANSACTION_SOURCE_COMPONENT, ) scope.add_event_processor( _make_request_event_processor( app.current_request.to_dict(), app.lambda_context, configured_time, ) ) try: return view_function(**function_args) except Exception as exc: if isinstance(exc, ChaliceViewError): raise exc_info = sys.exc_info() event, hint = event_from_exception( exc_info, client_options=client.options, mechanism={"type": "chalice", "handled": False}, ) hub.capture_event(event, hint=hint) hub.flush() raise return wrapped_view_function # type: ignore class ChaliceIntegration(Integration): identifier = "chalice" @staticmethod def setup_once(): # type: () -> None version = parse_version(CHALICE_VERSION) if version is None: raise DidNotEnable("Unparsable Chalice version: {}".format(CHALICE_VERSION)) if version < (1, 20): old_get_view_function_response = Chalice._get_view_function_response else: from chalice.app import RestAPIEventHandler old_get_view_function_response = ( RestAPIEventHandler._get_view_function_response ) def sentry_event_response(app, view_function, function_args): # type: (Any, F, Dict[str, Any]) -> Any wrapped_view_function = _get_view_function_response( app, view_function, function_args ) return old_get_view_function_response( app, wrapped_view_function, function_args ) if version < (1, 20): Chalice._get_view_function_response = sentry_event_response else: RestAPIEventHandler._get_view_function_response = sentry_event_response # for everything else (like events) chalice.app.EventSourceHandler = EventSourceHandler