
    wBf                     Z    d Z ddlZddlZddlmZ ddlmZ  ee      ZdZ	d Z
ed        Zy)z-Intercept signals and handle them gracefully.    N)contextmanager)	getLogger)SIGABRTSIGINTSIGTERMSIGQUITSIGBREAKc                 f     t         fdt        j                  j                         D        d      S )zo
    Examples:
        >>> from signal import SIGINT
        >>> get_signal_name(SIGINT)
        'SIGINT'

    c              3   v   K   | ]0  \  }}|k(  r&|j                  d       r|j                  d      s| 2 yw)SIGSIG_N)
startswith).0kvsignums      4lib/python3.12/site-packages/conda/common/signals.py	<genexpr>z"get_signal_name.<locals>.<genexpr>   s:      	
1F{q||E21<<;O 	
s   69N)nextsignal__dict__items)r   s   `r   get_signal_namer      s1     	
--/	

 	     c              #   @  K   t        j                         }g |_        t        D ]`  }t	        t
        |d       }|st        j                  d|       	 t        j
                  ||       }|j                  j                  ||f       b 	 d  t
        j                  t
        j                  f}|j                  D ]A  \  }}t        |      s||v st        j                  d|       t        j
                  ||       C y # t        $ r }t        j                  d|       Y d }~d }~ww xY w# t
        j                  t
        j                  f}|j                  D ]A  \  }}t        |      s||v st        j                  d|       t        j
                  ||       C w xY ww)Nzregistering handler for %sz%rzde-registering handler for %s)	threadinglocalprevious_handlersINTERRUPT_SIGNALSgetattrr   logdebugappend
ValueErrorSIG_IGNSIG_DFLcallable)handler_thread_localsignamesigprev_handlerestandard_handlersprevious_handlers           r   signal_handlerr0   '   sb     OO%M&(M#$ 	#fgt,II2G<#%}}S'://66\7JK	#5"NNFNN:%2%D%D 	5!C!()-=AR-R		93?c#34	5  #		$""# #NNFNN:%2%D%D 	5!C!()-=AR-R		93?c#34	5sZ   8FF3C=FD) AF/F=	D&D!F!D&&F)AF,/FF)__doc__r   r   
contextlibr   loggingr   __name__r!   r   r   r0    r   r   <module>r6      sA    4   %  $ 5 5r   