
    ?g              
         S r SSKJr  SSKrSSKrSSKrSSKJr  SSKJr  SSKJ	r	  \(       a  SSK
Jr  \" S5      r\	" S	5      r " S
 S\5      r\R                   \R                   \R"                  \R$                  \R&                  \R(                  \R(                  \R(                  \R*                  S.	r " S S5      r\" 5       r\R2                  rSS jrg)z1create errno-specific classes for IO or os calls.    )annotationsN)Callable)TYPE_CHECKING)TypeVar)	ParamSpecPRc                  (    \ rS rSrSS jrSS jrSrg)Error   c                    SR                  U R                  R                  U R                  R                  U R                  R                  SR                  [        [        U R                  5      5      5      $ )Nz{}.{} {!r}: {}  )	format	__class__
__module____name____doc__joinmapstrargs)selfs    3/usr/lib/python3/dist-packages/_pytest/_py/error.py__repr__Error.__repr__   sS     ''NN%%NN##NN""HHSdii()	
 	
    c           	         SR                  U R                  R                  SR                  [	        [
        U R                  5      5      5      nU$ )Nz[{}]: {}r   )r   r   r   r   r   r   r   )r   ss     r   __str__Error.__str__   s=    NN""HHSdii()
 r    N)returnr   )r   r   __qualname____firstlineno__r   r   __static_attributes__r!   r   r   r   r      s    
r   r   )	                     i     c                  V    \ rS rSr% Sr0 rS\S'   S
S jrSS jr        SS jr	Sr
g	)
ErrorMaker4   zlazily provides Exception classes for each possible POSIX errno
(as defined per the 'errno' module).  All such instances
subclass EnvironmentError.
zdict[int, type[Error]]_errno2classc                    US   S:X  a  [        U5      e[        [        U5      nU R                  U5      n[	        XU5        U$ )Nr   _)AttributeErrorgetattrerrno_geterrnoclasssetattr)r   nameenoclss       r   __getattr__ErrorMaker.__getattr__<   sC    7c> &&eT"!!#&C 
r   c           	          U R                   U   $ ! [         a`    [        R                  R	                  USU4-  5      n[        U[        4S[        R                  " U5      S.5      nX0R                   U'   Us $ f = f)NzUnknownErrno%dzpy.error)r   r   )	r1   KeyErrorr6   	errorcodegettyper   osstrerror)r   r:   clsnameerrorclss       r   r7   ErrorMaker._geterrnoclassD   s}    
	$$S)) 	oo))#/?3&/HIG)bkk#6FGH
 &.c"O	s    A'A;:A;c                X   Sn U" U0 UD6$ ! [          a    e [         a  n[        US5      (       d  e UR                  n[        R
                  S:X  a*   U R                  [        U   5      nO!! [         a    Uef = fU R                  U5      nU" UR                   U< 35      eSnAff = f)z;Call a function and raise an errno-exception if applicable.Tr6   win32N)
r   OSErrorhasattrr6   sysplatformr7   _winerrnomapr?   r   )r   funcr   kwargs__tracebackhide__valuer6   r;   s           r   checked_callErrorMaker.checked_callQ   s     !	2((( 	 	25'**KKE||w& --l5.ABC  K  ))%0x011	2s,    B)2B$A,+B$,A99+B$$B)r!   N)r9   r   r"   type[Error])r:   intr"   rU   )rO   zCallable[P, R]r   zP.argsrP   zP.kwargsr"   r	   )r   r   r#   r$   r   r1   __annotations__r<   r7   rS   r%   r!   r   r   r/   r/   4   sC    
 ,.L(-2"2+12=E2	
2r   r/   c                "    [        [        U 5      $ )N)r5   _error_maker)attrs    r   r<   r<   n   s    <&&r   )rZ   r   r"   rU   )r   
__future__r   r6   rC   rL   typingr   r   r   typing_extensionsr   r   r	   EnvironmentErrorr   ENOENTEEXISTEXDEVEBUSYENOTDIREACCESrN   r/   rY   rS   r<   r!   r   r   <module>re      s    7 "  	 
     +#ACL & ||||	||
32 32l |(('r   