OXIESEC PANEL
- Current Dir:
/
/
opt
/
alt
/
python37
/
lib
/
python3.7
/
site-packages
/
sentry_sdk
/
integrations
Server IP: 2a02:4780:11:1084:0:327f:3464:10
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
02/16/2024 09:01:45 PM
rwxr-xr-x
📄
__init__.py
6.36 KB
07/27/2021 02:04:04 PM
rw-r--r--
📁
__pycache__
-
02/16/2024 09:01:45 PM
rwxr-xr-x
📄
_wsgi_common.py
4.65 KB
07/27/2021 02:04:04 PM
rw-r--r--
📄
aiohttp.py
7.77 KB
07/27/2021 02:04:04 PM
rw-r--r--
📄
argv.py
945 bytes
07/27/2021 02:04:04 PM
rw-r--r--
📄
asgi.py
8.26 KB
07/27/2021 02:04:04 PM
rw-r--r--
📄
atexit.py
1.79 KB
07/27/2021 02:04:04 PM
rw-r--r--
📄
aws_lambda.py
14.99 KB
07/27/2021 02:04:04 PM
rw-r--r--
📄
beam.py
5.53 KB
07/27/2021 02:04:04 PM
rw-r--r--
📄
boto3.py
4.05 KB
07/27/2021 02:04:04 PM
rw-r--r--
📄
bottle.py
6.06 KB
07/27/2021 02:04:04 PM
rw-r--r--
📄
celery.py
9.31 KB
07/27/2021 02:04:04 PM
rw-r--r--
📄
chalice.py
4.5 KB
07/27/2021 02:04:04 PM
rw-r--r--
📄
dedupe.py
1.14 KB
07/27/2021 02:04:04 PM
rw-r--r--
📁
django
-
02/16/2024 09:01:45 PM
rwxr-xr-x
📄
excepthook.py
2.14 KB
07/27/2021 02:04:04 PM
rw-r--r--
📄
executing.py
1.98 KB
07/27/2021 02:04:04 PM
rw-r--r--
📄
falcon.py
6.64 KB
07/27/2021 02:04:04 PM
rw-r--r--
📄
flask.py
7.3 KB
07/27/2021 02:04:04 PM
rw-r--r--
📄
gcp.py
7.84 KB
07/27/2021 02:04:04 PM
rw-r--r--
📄
gnu_backtrace.py
2.84 KB
07/27/2021 02:04:04 PM
rw-r--r--
📄
httpx.py
2.55 KB
07/27/2021 02:04:04 PM
rw-r--r--
📄
logging.py
7.54 KB
07/27/2021 02:04:04 PM
rw-r--r--
📄
modules.py
1.36 KB
07/27/2021 02:04:04 PM
rw-r--r--
📄
pure_eval.py
4.41 KB
07/27/2021 02:04:04 PM
rw-r--r--
📄
pyramid.py
6.91 KB
07/27/2021 02:04:04 PM
rw-r--r--
📄
redis.py
3 KB
07/27/2021 02:04:04 PM
rw-r--r--
📄
rq.py
4.84 KB
07/27/2021 02:04:04 PM
rw-r--r--
📄
sanic.py
8.44 KB
07/27/2021 02:04:04 PM
rw-r--r--
📄
serverless.py
1.92 KB
07/27/2021 02:04:04 PM
rw-r--r--
📁
spark
-
02/16/2024 09:01:45 PM
rwxr-xr-x
📄
sqlalchemy.py
2.87 KB
07/27/2021 02:04:04 PM
rw-r--r--
📄
stdlib.py
7.25 KB
07/27/2021 02:04:04 PM
rw-r--r--
📄
threading.py
2.79 KB
07/27/2021 02:04:04 PM
rw-r--r--
📄
tornado.py
7.02 KB
07/27/2021 02:04:04 PM
rw-r--r--
📄
trytond.py
1.69 KB
07/27/2021 02:04:04 PM
rw-r--r--
📄
wsgi.py
10.89 KB
07/27/2021 02:04:04 PM
rw-r--r--
Editing: threading.py
Close
from __future__ import absolute_import import sys from threading import Thread, current_thread from sentry_sdk import Hub from sentry_sdk._compat import reraise from sentry_sdk._types import MYPY from sentry_sdk.integrations import Integration from sentry_sdk.utils import event_from_exception, capture_internal_exceptions if MYPY: from typing import Any from typing import TypeVar from typing import Callable from typing import Optional from sentry_sdk._types import ExcInfo F = TypeVar("F", bound=Callable[..., Any]) class ThreadingIntegration(Integration): identifier = "threading" def __init__(self, propagate_hub=False): # type: (bool) -> None self.propagate_hub = propagate_hub @staticmethod def setup_once(): # type: () -> None old_start = Thread.start def sentry_start(self, *a, **kw): # type: (Thread, *Any, **Any) -> Any hub = Hub.current integration = hub.get_integration(ThreadingIntegration) if integration is not None: if not integration.propagate_hub: hub_ = None else: hub_ = Hub(hub) # Patching instance methods in `start()` creates a reference cycle if # done in a naive way. See # https://github.com/getsentry/sentry-python/pull/434 # # In threading module, using current_thread API will access current thread instance # without holding it to avoid a reference cycle in an easier way. with capture_internal_exceptions(): new_run = _wrap_run(hub_, getattr(self.run, "__func__", self.run)) self.run = new_run # type: ignore return old_start(self, *a, **kw) # type: ignore Thread.start = sentry_start # type: ignore def _wrap_run(parent_hub, old_run_func): # type: (Optional[Hub], F) -> F def run(*a, **kw): # type: (*Any, **Any) -> Any hub = parent_hub or Hub.current with hub: try: self = current_thread() return old_run_func(self, *a, **kw) except Exception: reraise(*_capture_exception()) return run # type: ignore def _capture_exception(): # type: () -> ExcInfo hub = Hub.current exc_info = sys.exc_info() if hub.get_integration(ThreadingIntegration) is not None: # If an integration is there, a client has to be there. client = hub.client # type: Any event, hint = event_from_exception( exc_info, client_options=client.options, mechanism={"type": "threading", "handled": False}, ) hub.capture_event(event, hint=hint) return exc_info