
    dc	                     ~    d dl Z d dlZd dlmZ dZ G d de          Z ej                    Zd Z	d Z
dad Zd
d	ZdS )    N)wrapsTc                       e Zd Zd Zd ZdS )_InterruptHandlerc                     d| _         || _        t          |t                    r@|t          j        k    rt          j        }n#|t          j        k    rd }nt          d          || _	        d S )NFc                     d S N )unused_signumunused_frames     "  /croot/python-split_1694437901252/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.11/unittest/signals.pydefault_handlerz3_InterruptHandler.__init__.<locals>.default_handler   s    D    zYexpected SIGINT signal handler to be signal.SIG_IGN, signal.SIG_DFL, or a callable object)
calledoriginal_handler
isinstanceintsignalSIG_DFLdefault_int_handlerSIG_IGN	TypeErrorr   )selfr   s     r   __init__z_InterruptHandler.__init__
   s     /os++ 	3&.00"("< FN22      !2 3 3 3  /r   c                    t          j        t           j                  }|| ur|                     ||           | j        r|                     ||           d| _        t
                                          D ]}|                                 d S )NT)r   	getsignalSIGINTr   r   _resultskeysstop)r   signumframeinstalled_handlerresults        r   __call__z_InterruptHandler.__call__   s    ",V];;D((   ///; 	0  ///mmoo 	 	FKKMMMM	 	r   N)__name__
__module____qualname__r   r$   r	   r   r   r   r   	   s2        / / /$    r   r   c                     dt           | <   d S )N   )r   r#   s    r   registerResultr+   *   s    HVr   c                 R    t          t                              | d                     S r   )boolr   popr*   s    r   removeResultr/   -   s    VT**+++r   c                      t           St          j        t          j                  } t	          |           a t          j        t          j        t                      d S d S r   )_interrupt_handlerr   r   r   r   )r   s    r   installHandlerr2   1   sK    ! *6=99.??fm%788888 "!r   c                       t                      fd            }|S t          +t          j        t          j        t          j                   d S d S )Nc                      t          j        t           j                  }t                       	  | i |t          j         t           j        |           S # t          j         t           j        |           w xY wr   )r   r   r   removeHandler)argskwargsinitialmethods      r   innerzremoveHandler.<locals>.inner;   sf    &v}55GOOO6vt.v..fmW5555fmW5555s   A !A7)r   r1   r   r   r   )r9   r:   s   ` r   r5   r5   9   sg    	v	6 	6 	6 	6 
	6  %fm%7%HIIIII &%r   r   )r   weakref	functoolsr   
__unittestobjectr   WeakKeyDictionaryr   r+   r/   r1   r2   r5   r	   r   r   <module>r@      s           
       @ %7$&&  , , ,  9 9 9J J J J J Jr   