PHP 8.2.30
Preview: _init_implementation.py Size: 2.50 KB
/opt/hc_python/lib64/python3.12/site-packages/sentry_sdk/_init_implementation.py

import warnings

from typing import TYPE_CHECKING

import sentry_sdk

if TYPE_CHECKING:
    from typing import Any, ContextManager, Optional

    import sentry_sdk.consts


class _InitGuard:
    _CONTEXT_MANAGER_DEPRECATION_WARNING_MESSAGE = (
        "Using the return value of sentry_sdk.init as a context manager "
        "and manually calling the __enter__ and __exit__ methods on the "
        "return value are deprecated. We are no longer maintaining this "
        "functionality, and we will remove it in the next major release."
    )

    def __init__(self, client):
        # type: (sentry_sdk.Client) -> None
        self._client = client

    def __enter__(self):
        # type: () -> _InitGuard
        warnings.warn(
            self._CONTEXT_MANAGER_DEPRECATION_WARNING_MESSAGE,
            stacklevel=2,
            category=DeprecationWarning,
        )

        return self

    def __exit__(self, exc_type, exc_value, tb):
        # type: (Any, Any, Any) -> None
        warnings.warn(
            self._CONTEXT_MANAGER_DEPRECATION_WARNING_MESSAGE,
            stacklevel=2,
            category=DeprecationWarning,
        )

        c = self._client
        if c is not None:
            c.close()


def _check_python_deprecations():
    # type: () -> None
    # Since we're likely to deprecate Python versions in the future, I'm keeping
    # this handy function around. Use this to detect the Python version used and
    # to output logger.warning()s if it's deprecated.
    pass


def _init(*args, **kwargs):
    # type: (*Optional[str], **Any) -> ContextManager[Any]
    """Initializes the SDK and optionally integrations.

    This takes the same arguments as the client constructor.
    """
    client = sentry_sdk.Client(*args, **kwargs)
    sentry_sdk.get_global_scope().set_client(client)
    _check_python_deprecations()
    rv = _InitGuard(client)
    return rv


if TYPE_CHECKING:
    # Make mypy, PyCharm and other static analyzers think `init` is a type to
    # have nicer autocompletion for params.
    #
    # Use `ClientConstructor` to define the argument types of `init` and
    # `ContextManager[Any]` to tell static analyzers about the return type.

    class init(sentry_sdk.consts.ClientConstructor, _InitGuard):  # noqa: N801
        pass

else:
    # Alias `init` for actual usage. Go through the lambda indirection to throw
    # PyCharm off of the weakly typed signature (it would otherwise discover
    # both the weakly typed signature of `_init` and our faked `init` type).

    init = (lambda: _init)()

Directory Contents

Dirs: 5 × Files: 33

Name Size Perms Modified Actions
ai DIR
- drwxr-xr-x 2025-12-03 08:02:53
Edit Download
crons DIR
- drwxr-xr-x 2025-12-03 08:02:53
Edit Download
- drwxr-xr-x 2025-12-03 08:02:53
Edit Download
profiler DIR
- drwxr-xr-x 2025-12-03 08:02:53
Edit Download
- drwxr-xr-x 2025-12-03 08:02:53
Edit Download
14.92 KB lrw-r--r-- 2025-12-03 08:02:53
Edit Download
3.04 KB lrw-r--r-- 2025-12-03 08:02:53
Edit Download
41.11 KB lrw-r--r-- 2025-12-03 08:02:53
Edit Download
52.47 KB lrw-r--r-- 2025-12-03 08:02:53
Edit Download
1019 B lrw-r--r-- 2025-12-03 08:02:53
Edit Download
10.23 KB lrw-r--r-- 2025-12-03 08:02:53
Edit Download
2.18 KB lrw-r--r-- 2025-12-03 08:02:53
Edit Download
25.14 KB lrw-r--r-- 2025-12-03 08:02:53
Edit Download
2.73 KB lrw-r--r-- 2025-12-03 08:02:53
Edit Download
2.00 KB lrw-r--r-- 2025-12-03 08:02:53
Edit Download
3.55 KB lrw-r--r-- 2025-12-03 08:02:53
Edit Download
0 B lrw-r--r-- 2025-12-03 08:02:53
Edit Download
63.89 KB lrw-r--r-- 2025-12-03 08:02:53
Edit Download
5.92 KB lrw-r--r-- 2025-12-03 08:02:53
Edit Download
13.22 KB lrw-r--r-- 2025-12-03 08:02:53
Edit Download
5.46 KB lrw-r--r-- 2025-12-03 08:02:53
Edit Download
8.96 KB lrw-r--r-- 2025-12-03 08:02:53
Edit Download
8.47 KB lrw-r--r-- 2025-12-03 08:02:53
Edit Download
50.53 KB lrw-r--r-- 2025-12-03 08:02:53
Edit Download
39.59 KB lrw-r--r-- 2025-12-03 08:02:53
Edit Download
31.13 KB lrw-r--r-- 2025-12-03 08:02:53
Edit Download
1.24 KB lrw-r--r-- 2025-12-03 08:02:53
Edit Download
62.40 KB lrw-r--r-- 2025-12-03 08:02:53
Edit Download
4.36 KB lrw-r--r-- 2025-12-03 08:02:53
Edit Download
3.04 KB lrw-r--r-- 2025-12-03 08:02:53
Edit Download
2.50 KB lrw-r--r-- 2025-12-03 08:02:53
Edit Download
5.37 KB lrw-r--r-- 2025-12-03 08:02:53
Edit Download
1.20 KB lrw-r--r-- 2025-12-03 08:02:53
Edit Download
4.92 KB lrw-r--r-- 2025-12-03 08:02:53
Edit Download
10.99 KB lrw-r--r-- 2025-12-03 08:02:53
Edit Download
10.18 KB lrw-r--r-- 2025-12-03 08:02:53
Edit Download
3.65 KB lrw-r--r-- 2025-12-03 08:02:53
Edit Download
1.38 KB lrw-r--r-- 2025-12-03 08:02:53
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).