+
    SBi*                         R t ^ RIt^ RIt^ RIHtHt ^RIHt ^ RIH	t	  ^ RIH
t
 ]! R4      tR	 tR
 R ltR]3R ltR tR tR#   ] d
    R R lt
 L/i ; i)z2Convenience layer on top of stdlib's shutil and osN)CallableTypeVar)py311)log)chmodc                4    V ^8  d   QhR\         R\         RR/# )   argskwargsreturnN)object)formats   "7/usr/lib/python3.14/site-packages/setuptools/_shutil.py__annotate__r      s!      V v $     c                      R # N )r	   r
   s   *,r   r   r      s    r   _Tc                     \         P                  ! R W4        \        W4       R#   \         d#   p\         P                  ! RT4        Rp?R# Rp?ii ; i)zchanging mode of %s to %ozchmod failed: %sN)r   debugr   OSError)pathmodees   && r   attempt_chmod_verboser      s@    II)46)d )		$a(()s   & AAAc                b    V ^8  d   QhR\         R\        3,          R\        R\        R\        /# )r   func.argexcr   )r   r   strBaseException)r   s   "r   r   r       s5      
37
"%,9r   c                    V \         P                  \         P                  39   d8   \         P                  R8X  d#   \	        V\
        P                  4       V ! V4      # Vh)zIshutils onexc callback to automatically call chmod for certain functions.nt)osunlinkremovenamer   statS_IWRITE)r   r   r   s   &&&r   _auto_chmodr*       s@    
 		299%%"''T/c4==1Cy
Ir   Fc                0    \         P                  ! WV4      # )zl
Similar to ``shutil.rmtree`` but automatically executes ``chmod``
for well know Windows failure scenarios.
)r   shutil_rmtree)r   ignore_errorsonexcs   &&&r   rmtreer/   +   s    
 tE::r   c                 l    \         P                  P                  V 4      '       d   \        V 3/ VB  R # R # r   )r$   r   isdirr/   )r   optss   &,r   rmdirr3   3   s'    	ww}}Ttt r   c                  ^    \         P                  ! ^4      p \         P                  ! V 4       V # )   )r$   umask)tmps    r   current_umaskr8   8   s    
((5/CHHSMJr   )__doc__r$   r(   typingr   r   compatr   	distutilsr   r   ImportErrorr   r   r*   r/   r3   r8   r   r   r   <module>r>      sa    8 	  $   T])  %K ;
U  s   A AA