
    z%i                     r    d dl mZ d dlmZ ddlmZ  G d d      Z G d d      Zdd	Z G d
 d      Z	d Z
y)    )suppress)TextIOWrapper   )abcc                        e Zd Z	 d fdZd Zy)SpecLoaderAdapterc                     | j                   S N)loaderspecs    Q/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/importlib/resources/_adapters.py<lambda>zSpecLoaderAdapter.<lambda>   s
    $++     c                 ,    || _          ||      | _        y r
   )r   r   )selfr   adapters      r   __init__zSpecLoaderAdapter.__init__   s    	dmr   c                 .    t        | j                  |      S r
   )getattrr   r   names     r   __getattr__zSpecLoaderAdapter.__getattr__   s    tyy$''r   N)__name__
__module____qualname__r   r    r   r   r   r      s     &> $(r   r   c                       e Zd Z	 d Zd Zy)TraversableResourcesLoaderc                     || _         y r
   r   r   r   s     r   r   z#TraversableResourcesLoader.__init__   	    	r   c                 H    t        | j                        j                         S r
   )CompatibilityFilesr   _nativer   s     r   get_resource_readerz.TraversableResourcesLoader.get_resource_reader   s    !$)),4466r   N)r   r   r   r   r&   r   r   r   r   r      s    7r   r   c                 V    |dk(  rt        | g|i |S |dk(  r| S t        d| d      )NrrbzInvalid mode value 'z"', only 'r' and 'rb' are supported)r   
ValueError)filemodeargskwargss       r   _io_wrapperr/       s@    s{T3D3F33	
+D61ST
UUr   c                       e Zd Z	  G d dej                        Z G d dej                        Z G d dej                        Zd Ze	d        Z
d	 Zd
 Zd Zy)r$   c                   B    e Zd Z	 d Zd Zd ZeZd Zed        Z	ddZ
y)	CompatibilityFiles.SpecPathc                      || _         || _        y r
   )_spec_reader)r   r   readers      r   r   z$CompatibilityFiles.SpecPath.__init__4   s    DJ!DLr   c                       j                   st        d      S t         fd j                   j                         D              S )Nr   c              3   ^   K   | ]$  }t         j                  j                  |       & y wr
   )r$   	ChildPathr5   ).0pathr   s     r   	<genexpr>z6CompatibilityFiles.SpecPath.iterdir.<locals>.<genexpr>;   s*       #,,T\\4@s   *-)r5   itercontentsr   s   `r   iterdirz#CompatibilityFiles.SpecPath.iterdir8   s:    <<Bx  LL113  r   c                      yNFr   r?   s    r   is_filez#CompatibilityFiles.SpecPath.is_file@       r   c                     | j                   st        j                  |      S t        j                  | j                   |      S r
   )r5   r$   
OrphanPathr9   r   others     r   joinpathz$CompatibilityFiles.SpecPath.joinpathE   s1    <<)44U;;%//eDDr   c                 .    | j                   j                  S r
   )r4   r   r?   s    r   r   z CompatibilityFiles.SpecPath.nameJ   s    ::??"r   c                 T    t        | j                  j                  d       |g|i |S r
   )r/   r5   open_resourcer   r,   r-   r.   s       r   openz CompatibilityFiles.SpecPath.openN   s)    t||99$?WWPVWWr   Nr(   r   r   r   r   r@   rC   is_dirrI   propertyr   rN   r   r   r   SpecPathr2   .   s=    	
	"		 	E
 
	# 
	#	Xr   rS   c                   D    e Zd Z	 d Zd Zd Zd Zd Zed        Z	d	dZ
y)
CompatibilityFiles.ChildPathc                      || _         || _        y r
   )r5   _name)r   r6   r   s      r   r   z%CompatibilityFiles.ChildPath.__init__W   s    !DLDJr   c                     t        d      S Nr   r=   r?   s    r   r@   z$CompatibilityFiles.ChildPath.iterdir[       8Or   c                 L    | j                   j                  | j                        S r
   )r5   is_resourcer   r?   s    r   rC   z$CompatibilityFiles.ChildPath.is_file^   s    <<++DII66r   c                 $    | j                          S r
   )rC   r?   s    r   rQ   z#CompatibilityFiles.ChildPath.is_dira   s    ||~%%r   c                 B    t         j                  | j                  |      S r
   )r$   rF   r   rG   s     r   rI   z%CompatibilityFiles.ChildPath.joinpathd   s    %00EBBr   c                     | j                   S r
   )rW   r?   s    r   r   z!CompatibilityFiles.ChildPath.nameg   s    ::r   c                 h    t        | j                  j                  | j                        |g|i |S r
   )r/   r5   rL   r   rM   s       r   rN   z!CompatibilityFiles.ChildPath.openk   s7    **4995t>BFL r   NrO   rP   r   r   r   r9   rU   Q   s:    	
			7	&	C 
	 
		r   r9   c                   B    e Zd Z	 d Zd Zd ZeZd Zed        Z	ddZ
y)	CompatibilityFiles.OrphanPathc                 D    t        |      dk  rt        d      || _        y )Nr   z/Need at least one path part to construct a path)lenr*   _path)r   
path_partss     r   r   z&CompatibilityFiles.OrphanPath.__init__v   s!    :" !RSS#DJr   c                     t        d      S rY   rZ   r?   s    r   r@   z%CompatibilityFiles.OrphanPath.iterdir{   r[   r   c                      yrB   r   r?   s    r   rC   z%CompatibilityFiles.OrphanPath.is_file~   rD   r   c                 D    t        j                  g | j                  | S r
   )r$   rF   rf   rG   s     r   rI   z&CompatibilityFiles.OrphanPath.joinpath   s    %00D$**DeDDr   c                      | j                   d   S )N)rf   r?   s    r   r   z"CompatibilityFiles.OrphanPath.name   s    ::b>!r   c                     t        d      )NzCan't open orphan path)FileNotFoundErrorrM   s       r   rN   z"CompatibilityFiles.OrphanPath.open   s    #$<==r   NrO   rP   r   r   r   rF   rc   p   s<    	
	$
		 	E 
	" 
	"	>r   rF   c                     || _         y r
   r   r!   s     r   r   zCompatibilityFiles.__init__   r"   r   c                     t        t              5  | j                  j                  j	                  | j                  j
                        cd d d        S # 1 sw Y   y xY wr
   )r   AttributeErrorr   r   r&   r   r?   s    r   r5   zCompatibilityFiles._reader   sC    n% 	H99##77		G	H 	H 	Hs   9AAc                 <    	 | j                   }t        |d      r|S | S )Nfiles)r5   hasattr)r   r6   s     r   r%   zCompatibilityFiles._native   s&    	  1v;t;r   c                 .    t        | j                  |      S r
   )r   r5   )r   attrs     r   r   zCompatibilityFiles.__getattr__   s    t||T**r   c                 V    t         j                  | j                  | j                        S r
   )r$   rS   r   r5   r?   s    r   rs   zCompatibilityFiles.files   s    !**499dllCCr   N)r   r   r   r   TraversablerS   r9   rF   r   rR   r5   r%   r   rs   r   r   r   r$   r$   (   se    
!X3?? !XFCOO >>S__ >: H H<+Dr   r$   c                 8    	 t        | j                  t              S r
   )r   __spec__r   )packages    r   	wrap_specr|      s     W--/IJJr   NrO   )
contextlibr   ior    r   r   r   r/   r$   r|   r   r   r   <module>r      s=      
( 
(	7 	7VxD xDvKr   