$97 GRAYBYTE WORDPRESS FILE MANAGER $42

SERVER : vnpttt-amd7f72-h1.vietnix.vn #1 SMP Fri May 24 12:42:50 UTC 2024
SERVER IP : 103.200.23.149 | ADMIN IP 216.73.216.22
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/opt/cloudlinux/venv/lib/python3.11/site-packages/sentry_sdk/integrations/

HOME
Current File : /opt/cloudlinux/venv/lib/python3.11/site-packages/sentry_sdk/integrations//threading.py
from __future__ import absolute_import

import sys
from functools import wraps
from threading import Thread, current_thread

from sentry_sdk import Hub
from sentry_sdk._compat import reraise
from sentry_sdk._types import TYPE_CHECKING
from sentry_sdk.integrations import Integration
from sentry_sdk.utils import event_from_exception, capture_internal_exceptions

if TYPE_CHECKING:
    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

        @wraps(old_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)

        Thread.start = sentry_start  # type: ignore


def _wrap_run(parent_hub, old_run_func):
    # type: (Optional[Hub], F) -> F
    @wraps(old_run_func)
    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

Current_dir [ NOT WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
14 Aug 2025 9.24 PM
root / root
0755
__pycache__
--
14 Aug 2025 9.25 PM
root / root
0755
django
--
14 Aug 2025 9.24 PM
root / root
0755
grpc
--
14 Aug 2025 9.24 PM
root / root
0755
opentelemetry
--
14 Aug 2025 9.24 PM
root / root
0755
redis
--
14 Aug 2025 9.24 PM
root / root
0755
spark
--
14 Aug 2025 9.24 PM
root / root
0755
__init__.py
6.667 KB
17 Apr 2025 8.10 PM
root / root
0644
_wsgi_common.py
4.431 KB
17 Apr 2025 8.10 PM
root / root
0644
aiohttp.py
11.282 KB
17 Apr 2025 8.10 PM
root / root
0644
argv.py
0.94 KB
17 Apr 2025 8.10 PM
root / root
0644
arq.py
6.579 KB
17 Apr 2025 8.10 PM
root / root
0644
asgi.py
11.544 KB
17 Apr 2025 8.10 PM
root / root
0644
asyncio.py
2.978 KB
17 Apr 2025 8.10 PM
root / root
0644
atexit.py
1.803 KB
17 Apr 2025 8.10 PM
root / root
0644
aws_lambda.py
15.444 KB
17 Apr 2025 8.10 PM
root / root
0644
beam.py
5.556 KB
17 Apr 2025 8.10 PM
root / root
0644
boto3.py
4.436 KB
17 Apr 2025 8.10 PM
root / root
0644
bottle.py
6.319 KB
17 Apr 2025 8.10 PM
root / root
0644
celery.py
18.652 KB
17 Apr 2025 8.10 PM
root / root
0644
chalice.py
4.657 KB
17 Apr 2025 8.10 PM
root / root
0644
cloud_resource_context.py
6.597 KB
17 Apr 2025 8.10 PM
root / root
0644
dedupe.py
1.156 KB
17 Apr 2025 8.10 PM
root / root
0644
excepthook.py
2.207 KB
17 Apr 2025 8.10 PM
root / root
0644
executing.py
1.993 KB
17 Apr 2025 8.10 PM
root / root
0644
falcon.py
7.797 KB
17 Apr 2025 8.10 PM
root / root
0644
fastapi.py
4.391 KB
17 Apr 2025 8.10 PM
root / root
0644
flask.py
7.722 KB
17 Apr 2025 8.10 PM
root / root
0644
gcp.py
8.021 KB
17 Apr 2025 8.10 PM
root / root
0644
gnu_backtrace.py
2.861 KB
17 Apr 2025 8.10 PM
root / root
0644
httpx.py
4.888 KB
17 Apr 2025 8.10 PM
root / root
0644
huey.py
4.59 KB
17 Apr 2025 8.10 PM
root / root
0644
logging.py
8.966 KB
17 Apr 2025 8.10 PM
root / root
0644
loguru.py
2.979 KB
17 Apr 2025 8.10 PM
root / root
0644
modules.py
2.061 KB
17 Apr 2025 8.10 PM
root / root
0644
pure_eval.py
4.447 KB
17 Apr 2025 8.10 PM
root / root
0644
pymongo.py
5.866 KB
17 Apr 2025 8.10 PM
root / root
0644
pyramid.py
7.268 KB
17 Apr 2025 8.10 PM
root / root
0644
quart.py
7.204 KB
17 Apr 2025 8.10 PM
root / root
0644
rq.py
5.284 KB
17 Apr 2025 8.10 PM
root / root
0644
sanic.py
11.061 KB
17 Apr 2025 8.10 PM
root / root
0644
serverless.py
1.929 KB
17 Apr 2025 8.10 PM
root / root
0644
socket.py
2.876 KB
17 Apr 2025 8.10 PM
root / root
0644
sqlalchemy.py
4.145 KB
17 Apr 2025 8.10 PM
root / root
0644
starlette.py
22.667 KB
17 Apr 2025 8.10 PM
root / root
0644
starlite.py
9.853 KB
17 Apr 2025 8.10 PM
root / root
0644
stdlib.py
8.058 KB
17 Apr 2025 8.10 PM
root / root
0644
threading.py
2.868 KB
17 Apr 2025 8.10 PM
root / root
0644
tornado.py
7.17 KB
17 Apr 2025 8.10 PM
root / root
0644
trytond.py
1.704 KB
17 Apr 2025 8.10 PM
root / root
0644
wsgi.py
9.356 KB
17 Apr 2025 8.10 PM
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME
Static GIF