$88 GRAYBYTE WORDPRESS FILE MANAGER $61

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//__init__.py
"""This package"""
from __future__ import absolute_import

from threading import Lock

from sentry_sdk._compat import iteritems
from sentry_sdk.utils import logger

from sentry_sdk._types import TYPE_CHECKING

if TYPE_CHECKING:
    from typing import Callable
    from typing import Dict
    from typing import Iterator
    from typing import List
    from typing import Set
    from typing import Tuple
    from typing import Type


_installer_lock = Lock()
_installed_integrations = set()  # type: Set[str]


def _generate_default_integrations_iterator(integrations, auto_enabling_integrations):
    # type: (Tuple[str, ...], Tuple[str, ...]) -> Callable[[bool], Iterator[Type[Integration]]]

    def iter_default_integrations(with_auto_enabling_integrations):
        # type: (bool) -> Iterator[Type[Integration]]
        """Returns an iterator of the default integration classes:"""
        from importlib import import_module

        if with_auto_enabling_integrations:
            all_import_strings = integrations + auto_enabling_integrations
        else:
            all_import_strings = integrations

        for import_string in all_import_strings:
            try:
                module, cls = import_string.rsplit(".", 1)
                yield getattr(import_module(module), cls)
            except (DidNotEnable, SyntaxError) as e:
                logger.debug(
                    "Did not import default integration %s: %s", import_string, e
                )

    if isinstance(iter_default_integrations.__doc__, str):
        for import_string in integrations:
            iter_default_integrations.__doc__ += "\n- `{}`".format(import_string)

    return iter_default_integrations


_AUTO_ENABLING_INTEGRATIONS = (
    "sentry_sdk.integrations.django.DjangoIntegration",
    "sentry_sdk.integrations.flask.FlaskIntegration",
    "sentry_sdk.integrations.starlette.StarletteIntegration",
    "sentry_sdk.integrations.fastapi.FastApiIntegration",
    "sentry_sdk.integrations.bottle.BottleIntegration",
    "sentry_sdk.integrations.falcon.FalconIntegration",
    "sentry_sdk.integrations.sanic.SanicIntegration",
    "sentry_sdk.integrations.celery.CeleryIntegration",
    "sentry_sdk.integrations.rq.RqIntegration",
    "sentry_sdk.integrations.aiohttp.AioHttpIntegration",
    "sentry_sdk.integrations.tornado.TornadoIntegration",
    "sentry_sdk.integrations.sqlalchemy.SqlalchemyIntegration",
    "sentry_sdk.integrations.redis.RedisIntegration",
    "sentry_sdk.integrations.pyramid.PyramidIntegration",
    "sentry_sdk.integrations.boto3.Boto3Integration",
    "sentry_sdk.integrations.httpx.HttpxIntegration",
)


iter_default_integrations = _generate_default_integrations_iterator(
    integrations=(
        # stdlib/base runtime integrations
        "sentry_sdk.integrations.logging.LoggingIntegration",
        "sentry_sdk.integrations.stdlib.StdlibIntegration",
        "sentry_sdk.integrations.excepthook.ExcepthookIntegration",
        "sentry_sdk.integrations.dedupe.DedupeIntegration",
        "sentry_sdk.integrations.atexit.AtexitIntegration",
        "sentry_sdk.integrations.modules.ModulesIntegration",
        "sentry_sdk.integrations.argv.ArgvIntegration",
        "sentry_sdk.integrations.threading.ThreadingIntegration",
    ),
    auto_enabling_integrations=_AUTO_ENABLING_INTEGRATIONS,
)

del _generate_default_integrations_iterator


def setup_integrations(
    integrations, with_defaults=True, with_auto_enabling_integrations=False
):
    # type: (List[Integration], bool, bool) -> Dict[str, Integration]
    """Given a list of integration instances this installs them all.  When
    `with_defaults` is set to `True` then all default integrations are added
    unless they were already provided before.
    """
    integrations = dict(
        (integration.identifier, integration) for integration in integrations or ()
    )

    logger.debug("Setting up integrations (with default = %s)", with_defaults)

    # Integrations that are not explicitly set up by the user.
    used_as_default_integration = set()

    if with_defaults:
        for integration_cls in iter_default_integrations(
            with_auto_enabling_integrations
        ):
            if integration_cls.identifier not in integrations:
                instance = integration_cls()
                integrations[instance.identifier] = instance
                used_as_default_integration.add(instance.identifier)

    for identifier, integration in iteritems(integrations):
        with _installer_lock:
            if identifier not in _installed_integrations:
                logger.debug(
                    "Setting up previously not enabled integration %s", identifier
                )
                try:
                    type(integration).setup_once()
                except NotImplementedError:
                    if getattr(integration, "install", None) is not None:
                        logger.warning(
                            "Integration %s: The install method is "
                            "deprecated. Use `setup_once`.",
                            identifier,
                        )
                        integration.install()
                    else:
                        raise
                except DidNotEnable as e:
                    if identifier not in used_as_default_integration:
                        raise

                    logger.debug(
                        "Did not enable default integration %s: %s", identifier, e
                    )

                _installed_integrations.add(identifier)

    for identifier in integrations:
        logger.debug("Enabling integration %s", identifier)

    return integrations


class DidNotEnable(Exception):  # noqa: N818
    """
    The integration could not be enabled due to a trivial user error like
    `flask` not being installed for the `FlaskIntegration`.

    This exception is silently swallowed for default integrations, but reraised
    for explicitly enabled integrations.
    """


class Integration(object):
    """Baseclass for all integrations.

    To accept options for an integration, implement your own constructor that
    saves those options on `self`.
    """

    install = None
    """Legacy method, do not implement."""

    identifier = None  # type: str
    """String unique ID of integration type"""

    @staticmethod
    def setup_once():
        # type: () -> None
        """
        Initialize the integration.

        This function is only called once, ever. Configuration is not available
        at this point, so the only thing to do here is to hook into exception
        handlers, and perhaps do monkeypatches.

        Inside those hooks `Integration.current` can be used to access the
        instance again.
        """
        raise NotImplementedError()

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