
    Dge              
          d Z ddlmZ ddlZddlZddl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e          Z ed	          Zeej        ej        <   dS )
z4
create errno-specific classes for IO or os calls.

    )
ModuleTypeNc                       e Zd Zd Zd ZdS )Errorc                     | j         j        d| j         j        d| j         j        dd                    t          t          | j                            dS )N. z: )	__class__
__module____name____doc__joinmapstrargs)selfs    >/var/www/sysmax/venv/lib/python3.11/site-packages/py/_error.py__repr__zError.__repr__	   sW    !%!:!:!:#~666#~555"xxC(;(;<<<<" 	"    c           	          d| j         j        dd                    t          t          | j                            }|S )N[z]: r   )r	   r   r   r   r   r   )r   ss     r   __str__zError.__str__   s>     ///((3sDI#6#6777 r   N)r   r
   __qualname__r   r    r   r   r   r      s2        " " "    r   r   )	                     i     c                   ,    e Zd ZdZeZi Zd Zd Zd ZdS )
ErrorMakerz lazily provides Exception classes for each possible POSIX errno
        (as defined per the 'errno' module).  All such instances
        subclass EnvironmentError.
    c                     |d         dk    rt          |          t          t          |          }|                     |          }t	          | ||           |S )Nr   _)AttributeErrorgetattrerrno_geterrnoclasssetattr)r   nameenoclss       r   __getattr__zErrorMaker.__getattr__+   sV    7c>> &&&eT""!!#&&dC   
r   c           	         	 | j         |         S # t          $ rm t          j                            |d|fz            } t          t                    |t          fdt          j        |          d          }|| j         |<   |cY S w xY w)NzUnknownErrno%dpy.error)r
   r   )	_errno2classKeyErrorr)   	errorcodegettyper   osstrerror)r   r-   clsnameerrorclss       r   r*   zErrorMaker._geterrnoclass3   s    	$S)) 	 	 	o))#/?#/GHHG"tE{{7UH", "C 0 02 23 3H &.Dc"OOO	s    A4BBc                    d}	  ||i |S # | j         $ r  t          t          f$ r t          j                    \  }}}t          |d          s d}|j        }	 t          |t                    st          	 	 | 
                    t          |                   }n5# t          $ r |w xY w# t          $ r | 
                    |          }Y nw xY w ||j        |          w xY w)z= call a function and raise an errno-exception if applicable. Tr)   F)r   OSErrorEnvironmentErrorsysexc_infohasattrr)   
isinstanceWindowsError	NameErrorr*   _winerrnomapr3   r   )	r   funcr   kwargs__tracebackhide__r.   valuetbr)   s	            r   checked_callzErrorMaker.checked_call>   s>    	%4((((z 	 	 	)* 	% 	% 	% \^^NC5'**  %KE
 !%66 $#O$ --l5.ABBCC      K   1 1 1))%001 #tt4555#	%s@    AC"B(7 BC"B%%C"(C
C"	C

C"N)	r   r
   r   r   r   r2   r/   r*   rJ   r   r   r   r$   r$   #   sW          EL  	 	 	% % % % %r   r$   r1   )r   typesr   r>   r7   r)   r=   r   ENOENTEEXISTEXDEVEBUSYENOTDIREACCESrD   r$   errormodulesr   r   r   r   <module>rT      s                               ||	|
 
4% 4% 4% 4% 4% 4% 4% 4%n 	
:#EN   r   