
    dafk                         	 d dl 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	m
Z
 g dZ G d de j                        Z G d d	e j                        Z G d
 de      Z G d de      Z G d d      Z G d deee      Z G d deee      Zd Zd Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d  d!e      Z G d" d#      Z G d$ d%ee      Z G d& d'ee      Z G d( d)ee      Z  G d* d+e      Z!y),    N)dequewraps)
MethodTypeGenericAlias)asynccontextmanagercontextmanagerclosingnullcontextAbstractContextManagerAbstractAsyncContextManagerAsyncExitStackContextDecorator	ExitStackredirect_stdoutredirect_stderrsuppressaclosingchdirc                   X    e Zd Z	  ee      Zd Zej                  d        Z	ed        Z
y)r   c                     	 | S N selfs    %/root/Python-3.12.4/Lib/contextlib.py	__enter__z AbstractContextManager.__enter__   s
    >    c                      	 y r   r   r   exc_type	exc_value	tracebacks       r   __exit__zAbstractContextManager.__exit__   s    Gr   c                 L    | t         u rt        j                  |dd      S t        S )Nr   r$   )r   _collections_abc_check_methodsNotImplementedclsCs     r   __subclasshook__z'AbstractContextManager.__subclasshook__    s&    ((#221k:NNr   N)__name__
__module____qualname__classmethodr   __class_getitem__r   abcabstractmethodr$   r,   r   r   r   r   r      sC    6#L1 	   r   r   c                   X    e Zd Z	  ee      Zd Zej                  d        Z	ed        Z
y)r   c                    K   	 | S wr   r   r   s    r   
__aenter__z&AbstractAsyncContextManager.__aenter__-   s     >s   c                    K   	 y wr   r   r    s       r   	__aexit__z%AbstractAsyncContextManager.__aexit__1   s     G   c                 L    | t         u rt        j                  |dd      S t        S )Nr6   r8   )r   r&   r'   r(   r)   s     r   r,   z,AbstractAsyncContextManager.__subclasshook__6   s-    --#221l3>@ @r   N)r-   r.   r/   r0   r   r1   r6   r2   r3   r8   r,   r   r   r   r   r   '   sC    C#L1 	   r   r   c                       e Zd Z	 d Zd Zy)r   c                     	 | S r   r   r   s    r   _recreate_cmzContextDecorator._recreate_cmA   s    	 r   c                 2     t               fd       }|S )Nc                  `    j                         5   | i |cd d d        S # 1 sw Y   y xY wr   r=   argskwdsfuncr   s     r   innerz(ContextDecorator.__call__.<locals>.innerN   s1    ""$ +T*T*+ + +s   $-r   r   rD   rE   s   `` r   __call__zContextDecorator.__call__M   s     	t	+ 
	+ r   Nr-   r.   r/   r=   rG   r   r   r   r   r   >   s    P
r   r   c                       e Zd Z	 d Zd Zy)AsyncContextDecoratorc                     	 | S r   r   r   s    r   r=   z"AsyncContextDecorator._recreate_cmX   s    	r   c                 2     t               fd       }|S )Nc                     K   j                         4 d {     | i | d {   cd d d       d {    S 7 %7 7 	# 1 d {  7  sw Y   y xY wwr   r@   rA   s     r   rE   z-AsyncContextDecorator.__call__.<locals>.inner^   sV     ((* 1 1!404001 1 101 1 1 1sP   A>AAA AAAA AAA
AAAr   rF   s   `` r   rG   zAsyncContextDecorator.__call__]   s     	t	1 
	1 r   NrH   r   r   r   rJ   rJ   U   s    V
r   rJ   c                       e Zd Z	 d Zd Zy)_GeneratorContextManagerBasec                      ||i || _         |||c| _        | _        | _        t	        |dd       }|t        |       j                  }|| _        y )N__doc__)genrD   rB   rC   getattrtyperQ   )r   rD   rB   rC   docs        r   __init__z%_GeneratorContextManagerBase.__init__h   sR    &&*.d'	49didIt,;t*$$Cr   c                 d    | j                  | j                  | j                  | j                        S r   )	__class__rD   rB   rC   r   s    r   r=   z)_GeneratorContextManagerBase._recreate_cmv   s#     ~~diiDII>>r   N)r-   r.   r/   rV   r=   r   r   r   rO   rO   e   s    L?r   rO   c                       e Zd Z	 d Zd Zy)_GeneratorContextManagerc                 l    | ` | `| `	 t        | j                        S # t
        $ r t        d      d w xY wNzgenerator didn't yield)rB   rC   rD   nextrR   StopIterationRuntimeErrorr   s    r   r   z"_GeneratorContextManager.__enter__   sD     Ity$)	C>! 	C78dB	Cs    3c                 B   |"	 t        | j                         	 t        d      | |       }	 | j                  j                  |       	 t        d      # | j                  j                          w xY w# t        $ r Y yw xY w# t        $ r}||ucY d }~S d }~wt        $ r@}||u r||_        Y d }~yt        |t              r|j                  |u r||_        Y d }~y d }~wt        $ r}||ur ||_        Y d }~yd }~ww xY w# | j                  j                          w xY w)Ngenerator didn't stopFz#generator didn't stop after throw())
r]   rR   r_   closer^   throw__traceback__
isinstance	__cause__BaseExceptionr   typvaluer#   excs        r   r$   z!_GeneratorContextManager.__exit__   s   ;%TXX%&'>?? } #u%F!"#HIIW HHNN$ !  ! ( %'' %<(1C%  um4.*3E'   
 e#$-!
  si   A5 A B D A25	B B	C?BC?C?"C2%CCC?)C::C?DN)r-   r.   r/   r   r$   r   r   r   rZ   rZ   }   s    
 0C7!r   rZ   c                       e Zd Z	 d Zd Zy)_AsyncGeneratorContextManagerc                    K   | ` | `| `	 t        | j                         d {   S 7 # t
        $ r t        d      d w xY wwr\   )rB   rC   rD   anextrR   StopAsyncIterationr_   r   s    r   r6   z(_AsyncGeneratorContextManager.__aenter__   sM      Ity$)	Ctxx(((! 	C78dB	Cs#   A) ') A) ?Ac                   K   |*	 t        | j                         d {    	 t        d      | |       }	 | j                  j                  |       d {    	 t        d      7 I# | j                  j                          d {  7   w xY w# t        $ r Y yw xY w7 I# t        $ r}||ucY d }~S d }~wt        $ rF}||u r||_        Y d }~yt        |t        t        f      r|j                  |u r||_        Y d }~y d }~wt        $ r}||ur ||_        Y d }~yd }~ww xY w# | j                  j                          d {  7   w xY ww)Nra   Fz$generator didn't stop after athrow())ro   rR   r_   acloserp   athrowrd   re   r^   rf   rg   rh   s        r   r8   z'_AsyncGeneratorContextManager.__aexit__   s@    ;,DHHo%%,&'>?? } #hhooe,,,F("#IJJe & ((//+++ &  -% ( %'' %<(1C%  u}6H&IJ.*3E'   
 e#$-!
 hhoo'''s   EB A(B A* 	EB# B!B# D' (B *BB	BE	BEBE!B# #	D$,B5/D$0E5D$DE+D<EDD$DED$$E'EEEEN)r-   r.   r/   r6   r8   r   r   r   rm   rm      s    
 5C7(r   rm   c                 0     	 t                fd       }|S )Nc                      t        | |      S r   )rZ   rB   rC   rD   s     r   helperzcontextmanager.<locals>.helper+  s    'dD99r   r   rD   rw   s   ` r   r	   r	     s%    4 4[: :Mr   c                 0     	 t                fd       }|S )Nc                      t        | |      S r   )rm   rv   s     r   rw   z#asynccontextmanager.<locals>.helperL  s    ,T4>>r   r   rx   s   ` r   r   r   1  s%    4 4[? ?Mr   c                        e Zd Z	 d Zd Zd Zy)r
   c                     || _         y r   thingr   r~   s     r   rV   zclosing.__init__c  	    
r   c                     | j                   S r   r}   r   s    r   r   zclosing.__enter__e  s    zzr   c                 8    | j                   j                          y r   )r~   rb   r   exc_infos     r   r$   zclosing.__exit__g  s    

r   Nr-   r.   r/   rV   r   r$   r   r   r   r
   r
   R  s     r   r
   c                        e Zd Z	 d Zd Zd Zy)r   c                     || _         y r   r}   r   s     r   rV   zaclosing.__init__}  r   r   c                 "   K   | j                   S wr   r}   r   s    r   r6   zaclosing.__aenter__  s     zz   c                 T   K   | j                   j                          d {    y 7 wr   )r~   rr   r   s     r   r8   zaclosing.__aexit__  s     jj!!!s   (&(N)r-   r.   r/   rV   r6   r8   r   r   r   r   r   k  s    ""r   r   c                   "    e Zd ZdZd Zd Zd Zy)_RedirectStreamNc                      || _         g | _        y r   )_new_target_old_targets)r   
new_targets     r   rV   z_RedirectStream.__init__  s    %r   c                     | j                   j                  t        t        | j                               t        t        | j                  | j                         | j                  S r   )r   appendrS   sys_streamsetattrr   r   s    r   r   z_RedirectStream.__enter__  sC      dll!;<T\\4#3#34r   c                 j    t        t        | j                  | j                  j	                                y r   )r   r   r   r   pop)r   exctypeexcinstexctbs       r   r$   z_RedirectStream.__exit__  s!    T\\4#4#4#8#8#:;r   )r-   r.   r/   r   rV   r   r$   r   r   r   r   r     s    G
 
<r   r   c                       e Zd Z	 dZy)r   stdoutNr-   r.   r/   r   r   r   r   r   r     s    
 Gr   r   c                       e Zd Z	 dZy)r   stderrNr   r   r   r   r   r     s
    MGr   r   c                        e Zd Z	 d Zd Zd Zy)r   c                     || _         y r   )_exceptions)r   
exceptionss     r   rV   zsuppress.__init__  s
    %r   c                      y r   r   r   s    r   r   zsuppress.__enter__      r   c                     |y t        || j                        ryt        |t              r#|j                  | j                        \  }}|y|y)NTF)
issubclassr   BaseExceptionGroupsplit)r   r   r   r   matchrests         r   r$   zsuppress.__exit__  sR     ?gt//0g12!--(8(89KE4|Jr   Nr   r   r   r   r   r     s    &r   r   c                   Z    e Zd Z	 ed        Zed        Zd Zd Zd Zd Z	d Z
d Zdd	Zy
)_BaseExitStackc                     t        ||       S r   r   cmcm_exits     r   _create_exit_wrapperz#_BaseExitStack._create_exit_wrapper      '2&&r   c                      fd}|S )Nc                      i  y r   r   r!   rk   tbrB   callbackrC   s      r   _exit_wrapperz8_BaseExitStack._create_cb_wrapper.<locals>._exit_wrapper  s    d#d#r   r   r   rB   rC   r   s   ``` r   _create_cb_wrapperz!_BaseExitStack._create_cb_wrapper  s    	$r   c                 "    t               | _        y r   )r   _exit_callbacksr   s    r   rV   z_BaseExitStack.__init__  s    $wr   c                 h    	  t        |              }| j                  |_        t               | _        |S r   )rT   r   r   )r   	new_stacks     r   pop_allz_BaseExitStack.pop_all  s0    NDJL	$($8$8	!$wr   c                     	 t        |      }	 |j                  }| j                  ||       |S # t        $ r | j	                  |       Y |S w xY wr   )rT   r$   _push_cm_exitAttributeError_push_exit_callbackr   exit_cb_typeexit_methods       r   pushz_BaseExitStack.push  s_    	 :	2"++K
 t[1  	+$$T* 	+s   . AAc                     	 t        |      }	 |j                  }|j                  } ||      }| j                  ||       |S # t        $ r( t	        d|j
                   d|j                   d      d w xY w)N'.z6' object does not support the context manager protocol)rT   r   r$   r   	TypeErrorr.   r/   r   r   r   r*   _enter_exitresults         r   enter_contextz_BaseExitStack.enter_context  s    	 2h	S]]FLLE 2u%  	Sa/q1A1A0B CG H INRS	Ss   A 1A3c                d    	  | j                   |g|i |}||_        | j                  |       |S r   )r   __wrapped__r   r   r   rB   rC   r   s        r   r   z_BaseExitStack.callback  sB    	 0//H4H4H %-!  /r   c                 N    	 | j                  ||      }| j                  |d       y )NT)r   r   r   r   r   r   s       r   r   z_BaseExitStack._push_cm_exit  s'    I11"g>  5r   c                 >    | j                   j                  ||f       y r   )r   r   )r   r   is_syncs      r   r   z"_BaseExitStack._push_exit_callback$  s    ##Wh$78r   N)T)r-   r.   r/   staticmethodr   r   rV   r   r   r   r   r   r   r   r   r   r   r     sN    8' '  
'(&6
9r   r   c                        e Zd Z	 d Zd Zd Zy)r   c                     | S r   r   r   s    r   r   zExitStack.__enter__4  s    r   c                   
 |d   d u}t        j                         d   

fd}d}d}| j                  r6| j                  j                         \  }}	  || rd}d}d}| j                  r6|r	 |d   j                  }	|d   |xr |S #  t        j                         } ||d   |d          d}|}Y UxY w# t
        $ r 	|d   _         w xY w)Nr      c                 L    	 | j                   }|||u ry |u r		 || _         y |} #r   __context__new_excold_excexc_context	frame_excs      r   _fix_exception_contextz2ExitStack.__exit__.<locals>._fix_exception_context=  B    %11&+*@)+ #*G & r   FTNNNr   r   r   r   r   rg   )r   exc_detailsreceived_excr   suppressed_excpending_raiser   cbnew_exc_details	fixed_ctxr   s             @r   r$   zExitStack.__exit__7  s    "1~T1 LLN1%		*  ""..224KGR
.{#%)N$)M"4K ""  (N66	!!n$ ..."%,,.&q'9;q>J $- ! -6A*s   B .B6 )B36Cc                 ,    	 | j                  d d d        y r   )r$   r   s    r   rb   zExitStack.closeh  s    3dD$'r   N)r-   r.   r/   r   r$   rb   r   r   r   r   r   )  s    //b(r   r   c                   X    e Zd Z	 ed        Zed        Zd Zd Zd Zd Z	d Z
d Zd	 Zy
)r   c                     t        ||       S r   r   r   s     r   _create_async_exit_wrapperz)AsyncExitStack._create_async_exit_wrapper{  r   r   c                      fd}|S )Nc                 2   K    i  d {    y 7 wr   r   r   s      r   r   z>AsyncExitStack._create_async_cb_wrapper.<locals>._exit_wrapper  s     D)D)))s   r   r   s   ``` r   _create_async_cb_wrapperz'AsyncExitStack._create_async_cb_wrapper  s    	*r   c                   K   	 t        |      }	 |j                  }|j                  } ||       d {   }| j                  ||       |S # t        $ r( t	        d|j
                   d|j                   d      d w xY w7 Lw)Nr   r   zC' object does not support the asynchronous context manager protocol)rT   r6   r8   r   r   r.   r/   _push_async_cm_exitr   s         r   enter_async_contextz"AsyncExitStack.enter_async_context  s     	
 2h	'^^FMME
 bz!  U+  	'a/q1A1A0B CT U "&'	' "s%   BA BB B1A==Bc                     	 t        |      }	 |j                  }| j                  ||       |S # t        $ r | j	                  |d       Y |S w xY wNF)rT   r8   r   r   r   r   s       r   push_async_exitzAsyncExitStack.push_async_exit  sa    	 :	8",,K
 $$T;7  	2$$T51 	2s   . AAc                f    	  | j                   |g|i |}||_        | j                  |d       |S r   )r   r   r   r   s        r   push_async_callbackz"AsyncExitStack.push_async_callback  sD    	 655hNNN %-!  6r   c                 H   K   	 | j                  d d d        d {    y 7 wr   )r8   r   s    r   rr   zAsyncExitStack.aclose  s     3nnT4...s   " "c                 N    	 | j                  ||      }| j                  |d       y r   )r   r   r   s       r   r   z"AsyncExitStack._push_async_cm_exit  s)    	77GD  6r   c                    K   | S wr   r   r   s    r   r6   zAsyncExitStack.__aenter__  s     r9   c                   K   |d   d u}t        j                         d   fd}d}d}| j                  rH| j                  j                         \  }}	 |r || }n ||  d {   }|rd}d}d}| j                  rH|r	 |d   j                  }
|d   |xr |S 7 6#  t        j                         }	 ||	d   |d          d}|	}Y WxY w# t
        $ r 
|d   _         w xY ww)Nr   r   c                 L    	 | j                   }|||u ry |u r		 || _         y |} #r   r   r   s      r   r   z8AsyncExitStack.__aexit__.<locals>._fix_exception_context  r   r   FTr   r   )r   r   r   r   r   r   r   r   cb_suppressr   r   r   s              @r   r8   zAsyncExitStack.__aexit__  s    "1~T1 LLN1%		*  ""..224KGR."$k"2K(*K(8"8K%)N$)M"4K ""$  (N66	!!n$ ..+ #9."%,,.&q'9;q>J $- ! -6A*sN   AC$B %B&B 2C$?C$C C$B )C	C$C!!C$N)r-   r.   r/   r   r   r   r   r   r  rr   r   r6   r8   r   r   r   r   r   n  sR    
 ' '  
$$/73/r   r   c                   .    e Zd Z	 ddZd Zd Zd Zd Zy)r   Nc                     || _         y r   enter_result)r   r  s     r   rV   znullcontext.__init__  s
    (r   c                     | j                   S r   r
  r   s    r   r   znullcontext.__enter__  s       r   c                      y r   r   r   excinfos     r   r$   znullcontext.__exit__
  r   r   c                 "   K   | j                   S wr   r
  r   s    r   r6   znullcontext.__aenter__  s        r   c                    K   y wr   r   r  s     r   r8   znullcontext.__aexit__  s	     s   r   )r-   r.   r/   rV   r   r$   r6   r8   r   r   r   r   r     s     )!!r   r   c                        e Zd Z	 d Zd Zd Zy)r   c                      || _         g | _        y r   )path_old_cwd)r   r  s     r   rV   zchdir.__init__  s    	r   c                     | j                   j                  t        j                                t        j                  | j
                         y r   )r  r   osgetcwdr   r  r   s    r   r   zchdir.__enter__  s*    RYY[)
r   c                 ^    t        j                  | j                  j                                y r   )r  r   r  r   r  s     r   r$   zchdir.__exit__  s    
""$%r   Nr   r   r   r   r   r     s    R&r   r   )"r2   r  r   r&   collectionsr   	functoolsr   typesr   r   __all__ABCr   r   objectr   rJ   rO   rZ   rm   r	   r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>r      s9   : 
 	 
    *SWW ,#'' .v .F  ? ?0G! G!RG( G(TBB$ 2"* "4<, <$o  o $% $NQ9 Q9jA( 6 A(JH/^%@ H/V(*E 6&" &r   