o
    Zh6                     @   s   d dl mZ d dlZd dlZd dlZd dlmZ d dlmZ d dl	m
Z
 d dlmZ er8d dlmZ d dlmZ d	d
 ZG dd de
ZdS )    )absolute_importN)Hub)logger)Integration)TYPE_CHECKING)Any)Optionalc                 C   sH   dd }|d|   |d|  |dt jdkrdpd  tj  d	S )
zThis 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.
    c                 S   s   t j| d  d S )N
)sysstderrwrite)msg r   U/var/www/html/lang_env/lib/python3.10/site-packages/sentry_sdk/integrations/atexit.pyecho   s   zdefault_callback.<locals>.echoz.Sentry is attempting to send %i pending eventszWaiting up to %s secondszPress Ctrl-%s to quitntBreakCN)osnamer
   r   flush)pendingtimeoutr   r   r   r   default_callback   s
   r   c                   @   s&   e Zd ZdZdddZedd ZdS )AtexitIntegrationatexitNc                 C   s   |d u rt }|| _d S N)r   callback)selfr   r   r   r   __init__&   s   
zAtexitIntegration.__init__c                  C   s   t jdd } d S )Nc                  S   sP   t d tj} | t}|d ur&t d |   | j}|j|j	d d S d S )Nzatexit: got shutdown signalzatexit: shutting down client)r   )
r   debugr   mainZget_integrationr   Zend_sessionclientcloser   )ZhubZintegrationr"   r   r   r   	_shutdown/   s   


z/AtexitIntegration.setup_once.<locals>._shutdown)r   register)r$   r   r   r   
setup_once,   s   zAtexitIntegration.setup_oncer   )__name__
__module____qualname__
identifierr   staticmethodr&   r   r   r   r   r   #   s
    
r   )
__future__r   r   r
   r   Zsentry_sdk.hubr   Zsentry_sdk.utilsr   Zsentry_sdk.integrationsr   Zsentry_sdk._typesr   typingr   r   r   r   r   r   r   r   <module>   s    