
    ;e+                         	 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dS )    N)BinaryIOList   )TraversableTraversableResourcesc                       e Zd Z	 ej        d             Zej        d             Zej        d             Zej        d             Z	e
d             ZdS )SimpleReaderc                     d S N selfs    1/usr/lib/python3.11/importlib/resources/simple.pypackagezSimpleReader.package       	 	    c                     d S r   r   r   s    r   childrenzSimpleReader.children   s    	 	r   c                     d S r   r   r   s    r   	resourceszSimpleReader.resources"   r   r   c                     d S r   r   )r   resources     r   open_binaryzSimpleReader.open_binary)   r   r   c                 B    | j                             d          d         S )N.)r   splitr   s    r   namezSimpleReader.name0   s    |!!#&&r**r   N)__name__
__module____qualname__abcabstractpropertyr   abstractmethodr   r   r   propertyr   r   r   r   r	   r	      s        
 	   	   	   	   + + X+ + +r   r	   c                   0    e Zd Z	 d Zd Zd ZddZd ZdS )	ResourceHandlec                 "    || _         || _        d S r   )parentr   )r   r)   r   s      r   __init__zResourceHandle.__init__:   s    			r   c                     dS NTr   r   s    r   is_filezResourceHandle.is_file?       tr   c                     dS NFr   r   s    r   is_dirzResourceHandle.is_dirB       ur   rc                 x    | j         j                            | j                  }d|vrt	          j        |i |}|S )Nb)r)   readerr   r   ioTextIOWrapper)r   modeargskwargsstreams        r   openzResourceHandle.openE   s?    #//	::d??%t6v66Fr   c                      t          d          )NzCannot traverse into a resource)RuntimeError)r   r   s     r   joinpathzResourceHandle.joinpathK   s    <===r   N)r3   )r   r    r!   r*   r-   r1   r=   r@   r   r   r   r'   r'   5   si          
       > > > > >r   r'   c                   J    e Zd Z	 d Zd Zd Zd Zd Zed             Z	d Z
dS )	ResourceContainerc                     || _         d S r   )r6   )r   r6   s     r   r*   zResourceContainer.__init__T   s    r   c                     dS r,   r   r   s    r   r1   zResourceContainer.is_dirX   r.   r   c                     dS r0   r   r   s    r   r-   zResourceContainer.is_file[   r2   r   c                       fd j         j        D             }t          t           j                                                   }t          j        ||          S )Nc              3   8   K   | ]}t          |          V  d S r   )r'   ).0r   r   s     r   	<genexpr>z,ResourceContainer.iterdir.<locals>.<genexpr>_   s-      NNd++NNNNNNr   )r6   r   maprB   r   	itertoolschain)r   filesdirss   `  r   iterdirzResourceContainer.iterdir^   sQ    NNNN8MNNN$dk&:&:&<&<==ud+++r   c                     t                      r   )IsADirectoryError)r   r:   r;   s      r   r=   zResourceContainer.openc   s    !!!r   c              #   J   K   | D ]}|                     d          E d {V  d S )N/)r   )compound_namesr   s     r   _flattenzResourceContainer._flattenf   sD      " 	' 	'Dzz#&&&&&&&&	' 	'r   c                     |s| S |                      |          }t          |           t          fd|                                 D                       j        | S )Nc              3   2   K   | ]}|j         k    |V  d S r   )r   )rH   traversabletargets     r   rI   z-ResourceContainer.joinpath.<locals>.<genexpr>p   s:       
 
'[=MQW=W=WK=W=W=W=W
 
r   )rU   nextrO   r@   )r   descendantsnamesrY   s      @r   r@   zResourceContainer.joinpathk   sz     	Kk**et 
 
 
 
+/<<>>
 
 
 
 

E 	r   N)r   r    r!   r*   r1   r-   rO   r=   staticmethodrU   r@   r   r   r   rB   rB   O   s              , , ,
" " " ' ' \'    r   rB   c                       e Zd Z	 d ZdS )TraversableReaderc                      t          |           S r   )rB   r   s    r   rM   zTraversableReader.files|   s     &&&r   N)r   r    r!   rM   r   r   r   r_   r_   u   s(        ' ' ' ' 'r   r_   )r"   r7   rK   typingr   r   r   r   ABCr	   r'   rB   r_   r   r   r   <module>rc      s   


 				     ! ! ! ! ! ! ! ! 2 2 2 2 2 2 2 2%+ %+ %+ %+ %+37 %+ %+ %+P> > > > >[ > > >4# # # # # # # #L' ' ' ' ',l ' ' ' ' 'r   