
    F\hc	                     |    S SK r S SKrS SKJr  Sr " S S\5      r\R                  " 5       rS r	S r
SqS rS
S	 jrg)    N)wrapsTc                        \ rS rSrS rS rSrg)_InterruptHandler	   c                     SU l         Xl        [        U[        5      (       aH  U[        R
                  :X  a  [        R                  nO#U[        R                  :X  a  S nO[        S5      eXl	        g )NFc                     g N )unused_signumunused_frames     '/usr/lib/python3.13/unittest/signals.pydefault_handler3_InterruptHandler.__init__.<locals>.default_handler   s        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___InterruptHandler.__init__
   s`     /os++&..0"("<"< FNN2   !2 3 3  /r   c                    [         R                  " [         R                  5      nX0La  U R                  X5        U R                  (       a  U R                  X5        SU l        [
        R                  5        H  nUR                  5         M     g )NT)r   	getsignalSIGINTr   r   _resultskeysstop)r   signumframeinstalled_handlerresults        r   __call___InterruptHandler.__call__   sb    ",,V]];(   /;;  /mmoFKKM &r   )r   r   r   N)__name__
__module____qualname____firstlineno__r   r'   __static_attributes__r
   r   r   r   r   	   s    /$r   r   c                     S[         U '   g )N   )r    r&   s    r   registerResultr1   *   s    HVr   c                 @    [        [        R                  U S 5      5      $ r	   )boolr    popr0   s    r   removeResultr5   -   s    VT*++r   c                      [         cY  [        R                  " [        R                  5      n [	        U 5      q [        R                  " [        R                  [         5        g g r	   )_interrupt_handlerr   r   r   r   )r   s    r   installHandlerr8   1   s?    ! **6==9.?fmm%78 "r   c                    ^  T b  [        T 5      U 4S j5       nU$ [        b4  [        R                  " [        R                  [        R                  5        g g )Nc                    > [         R                  " [         R                  5      n[        5          T" U 0 UD6[         R                   " [         R                  U5        $ ! [         R                   " [         R                  U5        f = fr	   )r   r   r   removeHandler)argskwargsinitialmethods      r   innerremoveHandler.<locals>.inner;   sS    &&v}}5GO6t.v.fmmW5fmmW5s   A 'B)r   r7   r   r   r   )r?   r@   s   ` r   r;   r;   9   sL    	v	6 
	6  %fmm%7%H%HI &r   r	   )r   weakref	functoolsr   
__unittestobjectr   WeakKeyDictionaryr    r1   r5   r7   r8   r;   r
   r   r   <module>rG      sM      
 @ $$&,  9Jr   