PHP 8.2.30
Preview: atexit.py Size: 1.46 KB
/proc/self/root/opt/alt/python38/lib/python3.8/site-packages/sentry_sdk/integrations/atexit.py

from __future__ import absolute_import

import os
import sys
import atexit

from sentry_sdk.hub import Hub
from sentry_sdk.utils import logger
from sentry_sdk.integrations import Integration

if False:
    from typing import Any
    from typing import Optional


def default_callback(pending, timeout):
    """This is the default shutdown callback that is set on the options.
    It prints out a message to stderr that informs the user that some events
    are still pending and the process is waiting for them to flush out.
    """

    def echo(msg):
        sys.stderr.write(msg + "\n")

    echo("Sentry is attempting to send %i pending error messages" % pending)
    echo("Waiting up to %s seconds" % timeout)
    echo("Press Ctrl-%s to quit" % (os.name == "nt" and "Break" or "C"))
    sys.stderr.flush()


class AtexitIntegration(Integration):
    identifier = "atexit"

    def __init__(self, callback=None):
        # type: (Optional[Any]) -> None
        if callback is None:
            callback = default_callback
        self.callback = callback

    @staticmethod
    def setup_once():
        # type: () -> None
        @atexit.register
        def _shutdown():
            logger.debug("atexit: got shutdown signal")
            hub = Hub.main
            integration = hub.get_integration(AtexitIntegration)
            if integration is not None:
                logger.debug("atexit: shutting down client")
                hub.client.close(callback=integration.callback)

Directory Contents

Dirs: 2 × Files: 22

Name Size Perms Modified Actions
django DIR
- drwxr-xr-x 2024-03-21 10:24:45
Edit Download
- drwxr-xr-x 2024-03-21 10:24:45
Edit Download
3.80 KB lrw-r--r-- 2019-04-05 23:15:16
Edit Download
894 B lrw-r--r-- 2019-04-05 23:15:16
Edit Download
1.46 KB lrw-r--r-- 2019-04-05 23:15:16
Edit Download
6.60 KB lrw-r--r-- 2019-04-05 23:15:16
Edit Download
5.40 KB lrw-r--r-- 2019-04-05 23:15:16
Edit Download
4.32 KB lrw-r--r-- 2019-04-05 23:15:16
Edit Download
1.06 KB lrw-r--r-- 2019-04-05 23:15:16
Edit Download
1.30 KB lrw-r--r-- 2019-04-05 23:15:16
Edit Download
7.10 KB lrw-r--r-- 2019-04-05 23:15:16
Edit Download
2.94 KB lrw-r--r-- 2019-04-05 23:15:16
Edit Download
5.88 KB lrw-r--r-- 2019-04-05 23:15:16
Edit Download
1.21 KB lrw-r--r-- 2019-04-05 23:15:16
Edit Download
5.78 KB lrw-r--r-- 2019-04-05 23:15:16
Edit Download
3.20 KB lrw-r--r-- 2019-04-05 23:15:16
Edit Download
6.90 KB lrw-r--r-- 2019-04-05 23:15:16
Edit Download
1.21 KB lrw-r--r-- 2019-04-05 23:15:16
Edit Download
1.83 KB lrw-r--r-- 2019-04-05 23:15:16
Edit Download
1.56 KB lrw-r--r-- 2019-04-05 23:15:16
Edit Download
6.24 KB lrw-r--r-- 2019-04-05 23:15:16
Edit Download
7.13 KB lrw-r--r-- 2019-04-05 23:15:16
Edit Download
3.58 KB lrw-r--r-- 2019-04-05 23:15:16
Edit Download
4.14 KB lrw-r--r-- 2019-04-05 23:15:16
Edit Download

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