
    z%i
                         	 d dl Z d dlZd dlZd dlmZmZ ddl mZmZ  G d de j                        Z	 G d de      Z
 G d	 d
e      Z G d dee	      Zy)    N)BinaryIOList   )TraversableTraversableResourcesc                       e Zd Z	 eej
                  defd              Zej
                  ded    fd       Z	ej
                  dee   fd       Z
ej
                  dedefd       Zed        Zy)	SimpleReaderreturnc                      y N selfs    N/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/importlib/resources/simple.pypackagezSimpleReader.package   s    	    c                      y r   r   r   s    r   childrenzSimpleReader.children   s    	r   c                      y r   r   r   s    r   	resourceszSimpleReader.resources!       	r   resourcec                      y r   r   )r   r   s     r   open_binaryzSimpleReader.open_binary'   r   r   c                 >    | j                   j                  d      d   S )N.)r   splitr   s    r   namezSimpleReader.name-   s    ||!!#&r**r   N)__name__
__module____qualname__propertyabcabstractmethodstrr   r   r   r   r   r   r   r   r   r   r	   r	      s    
    
 	$~.   	49  
 	C H  
 + +r   r	   c                   2    e Zd Z	 defdZd Zd Zd Zd Zy)ResourceContainerreaderc                     || _         y r   )r)   )r   r)   s     r   __init__zResourceContainer.__init__7   s	    r   c                      yNTr   r   s    r   is_dirzResourceContainer.is_dir:       r   c                      yNFr   r   s    r   is_filezResourceContainer.is_file=       r   c                       fd j                   j                  D        }t        t         j                   j	                               }t        j                  ||      S )Nc              3   6   K   | ]  }t        |        y wr   )ResourceHandle).0r   r   s     r   	<genexpr>z,ResourceContainer.iterdir.<locals>.<genexpr>A   s     Nd+Ns   )r)   r   mapr(   r   	itertoolschain)r   filesdirss   `  r   iterdirzResourceContainer.iterdir@   sB    N8M8MN$dkk&:&:&<=ud++r   c                     t               r   )IsADirectoryError)r   argskwargss      r   openzResourceContainer.openE   s    !!r   N)	r    r!   r"   r	   r+   r.   r2   r>   rC   r   r   r   r(   r(   2   s'    | ,
"r   r(   c                   8    e Zd Z	 dedefdZd Zd Zd	dZd Z	y)
r6   parentr   c                      || _         || _        y r   )rE   r   )r   rE   r   s      r   r+   zResourceHandle.__init__N   s    	r   c                      yr-   r   r   s    r   r2   zResourceHandle.is_fileR   r/   r   c                      yr1   r   r   s    r   r.   zResourceHandle.is_dirU   r3   r   c                     | j                   j                  j                  | j                        }d|vrt	        j
                  |i |}|S )Nb)rE   r)   r   r   ioTextIOWrapper)r   moderA   rB   streams        r   rC   zResourceHandle.openX   sA    ##//		:d?%%t6v6Fr   c                     t        d      )NzCannot traverse into a resource)RuntimeError)r   r   s     r   joinpathzResourceHandle.joinpath^   s    <==r   N)r)
r    r!   r"   r(   r&   r+   r2   r.   rC   rQ   r   r   r   r6   r6   I   s/    0  >r   r6   c                       e Zd Z	 d Zy)TraversableReaderc                     t        |       S r   )r(   r   s    r   r<   zTraversableReader.filesi   s     &&r   N)r    r!   r"   r<   r   r   r   rT   rT   b   s    'r   rT   )r$   rK   r:   typingr   r   r   r   ABCr	   r(   r6   rT   r   r   r   <module>rX      sS     	  ! 2"+377 "+J" ".>[ >2',l 'r   