
    Bh              
         d Z ddlmZ ddlmZ ddlZddlZddlZddlm	Z	 ddlm
Z
 e	rddlmZ  ed      Z e
d	      Z G d
 de      Zej"                  ej"                  ej$                  ej&                  ej(                  ej*                  ej*                  ej*                  ej,                  d	Z G d d      Z e       Zej4                  ZddZy)z1create errno-specific classes for IO or os calls.    )annotations)CallableN)TYPE_CHECKING)TypeVar)	ParamSpecPRc                      e Zd ZddZddZy)Errorc                    dj                  | j                  j                  | j                  j                  | j                  j                  dj                  t        t        | j                                    S )Nz{}.{} {!r}: {}  )	format	__class__
__module____name____doc__joinmapstrargs)selfs    \/var/www/html/Telegram-Engagement-Pod-/env/lib/python3.12/site-packages/_pytest/_py/error.py__repr__zError.__repr__   sS     ''NN%%NN##NN""HHSdii()	
 	
    c           	         dj                  | j                  j                  dj                  t	        t
        | j                                    }|S )Nz[{}]: {}r   )r   r   r   r   r   r   r   )r   ss     r   __str__zError.__str__   s=    NN""HHSdii()
 r   N)returnr   )r   r   __qualname__r   r    r   r   r   r      s    
r   r   )	                     i     c                  H    e Zd ZU dZi Zded<   ddZd	dZ	 	 	 	 	 	 	 	 d
dZy)
ErrorMakerzlazily 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                    |d   dk(  rt        |      t        t        |      }| j                  |      }t	        | ||       |S )Nr   _)AttributeErrorgetattrerrno_geterrnoclasssetattr)r   nameenoclss       r   __getattr__zErrorMaker.__getattr__<   sE    7c> &&eT"!!#&dC 
r   c           	         	 | j                   |   S # t        $ r_ t        j                  j	                  |d|       }t        |t        fdt        j                  |      d      }|| j                   |<   |cY S w xY w)NUnknownErrnopy.errorr   r   )	r+   KeyErrorr0   	errorcodegettyper   osstrerror)r   r4   clsnameerrorclss       r   r1   zErrorMaker._geterrnoclassD   s~    
	$$S)) 	oo))#cU/CDG)bkk#6FGH
 &.Dc"O	s    A%A98A9c                   d}	  ||i |S # t         $ r  t        $ r}t        |d      s t        j                  dk(  r3	 | j                  t        |j                           }nL# t        $ r |w xY w|j                  t        dt         fddd      }n| j                  |j                        } ||j                   |      d}~ww xY w)z;Call a function and raise an errno-exception if applicable.Tr0   win32NUnknownErrnoNoner9   r:   )r   OSErrorhasattrsysplatformr1   _winerrnomapr0   r;   r>   r   )r   funcr   kwargs__tracebackhide__valuer5   s          r   checked_callzErrorMaker.checked_callQ   s     !	2((( 	 	25'*||w&  --l5;;.GHC  K  ;;&*'1dCC --ekk:Cx011+	2s,    C	 C"A"!C"A..ACC	N)r3   r   r   type[Error])r4   intr   rP   )rK   zCallable[P, R]r   zP.argsrL   zP.kwargsr   r	   )	r   r   r   r   r+   __annotations__r6   r1   rO   r    r   r   r*   r*   4   sC    
 ,.L(-2"2+12=E2	
2r   r*   c                "    t        t        |       S )N)r/   _error_maker)attrs    r   r6   r6   v   s    <&&r   )rU   r   r   rP   )r   
__future__r   collections.abcr   r0   r?   rH   typingr   r   typing_extensionsr   r   r	   EnvironmentErrorr   ENOENTEEXISTEXDEVEBUSYENOTDIREACCESrJ   r*   rT   rO   r6   r    r   r   <module>ra      s    7 " $  	 
    +#ACL & ||||	||
;2 ;2| |(('r   