from __future__ import absolute_import import sys from threading import Thread from sentry_sdk import Hub from sentry_sdk._compat import reraise from sentry_sdk.utils import event_from_exception from sentry_sdk.integrations import Integration class ThreadingIntegration(Integration): identifier = "threading" def __init__(self, propagate_hub=False): self.propagate_hub = propagate_hub @staticmethod def setup_once(): old_start = Thread.start def sentry_start(self, *a, **kw): hub = Hub.current integration = hub.get_integration(ThreadingIntegration) if integration is not None: if integration.propagate_hub: hub = Hub(hub) else: hub = None self.run = _wrap_run(hub, self.run) return old_start(self, *a, **kw) Thread.start = sentry_start def _wrap_run(parent_hub, old_run): def run(*a, **kw): hub = parent_hub or Hub.current with hub: try: return old_run(*a, **kw) except Exception: reraise(*_capture_exception()) return run def _capture_exception(): hub = Hub.current exc_info = sys.exc_info() if hub.get_integration(ThreadingIntegration) is not None: event, hint = event_from_exception( exc_info, client_options=hub.client.options, mechanism={"type": "threading", "handled": False}, ) hub.capture_event(event, hint=hint) return exc_info
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__pycache__ | Folder | 0755 |
|
|
django | Folder | 0755 |
|
|
__init__.py | File | 4.14 KB | 0644 |
|
_wsgi_common.py | File | 3.58 KB | 0644 |
|
aiohttp.py | File | 3.8 KB | 0644 |
|
argv.py | File | 894 B | 0644 |
|
atexit.py | File | 1.46 KB | 0644 |
|
aws_lambda.py | File | 6.6 KB | 0644 |
|
bottle.py | File | 5.4 KB | 0644 |
|
celery.py | File | 4.32 KB | 0644 |
|
dedupe.py | File | 1.06 KB | 0644 |
|
excepthook.py | File | 1.3 KB | 0644 |
|
flask.py | File | 7.1 KB | 0644 |
|
gnu_backtrace.py | File | 2.94 KB | 0644 |
|
logging.py | File | 5.88 KB | 0644 |
|
modules.py | File | 1.21 KB | 0644 |
|
pyramid.py | File | 5.78 KB | 0644 |
|
rq.py | File | 3.2 KB | 0644 |
|
sanic.py | File | 6.9 KB | 0644 |
|
serverless.py | File | 1.21 KB | 0644 |
|
stdlib.py | File | 1.83 KB | 0644 |
|
threading.py | File | 1.56 KB | 0644 |
|
tornado.py | File | 6.24 KB | 0644 |
|
wsgi.py | File | 7.13 KB | 0644 |
|