
    z%iS                        d dl Z d dlZd dlZd dlZd dlZd dlmZmZmZm	Z	m
Z
mZmZ d dlmZmZ d dlmZ eeej"                  e   f   Zg dZ G d de j(                        Z G d	 d
e      Ze G d de             Z G d de      Zy)    N)AnyBinaryIOIterableIteratorNoReturnTextOptional)runtime_checkableProtocol)Union)ResourceReaderTraversableTraversableResourcesc                       e Zd Z	 ej                  dedefd       Zej                  dedefd       Zej                  dede	fd       Z
ej                  dee   fd       Zy)	r   resourcereturnc                     	 t         NFileNotFoundErrorselfr   s     K/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/importlib/resources/abc.pyopen_resourcezResourceReader.open_resource   s    	      c                     	 t         r   r   r   s     r   resource_pathzResourceReader.resource_path   s    	  r   pathc                     	 t         r   r   r   r   s     r   is_resourcezResourceReader.is_resource,   s    	  r   c                     	 t         r   r   r   s    r   contentszResourceReader.contents4   s    9r   N)__name__
__module____qualname__abcabstractmethodr   r   r   r   boolr!   r   strr$    r   r   r   r      s    N	 d 	 x 	  	  	
 d 
 t 
  
  	        	 (3-    r   r   )	metaclassc                       e Zd Zy)TraversalErrorN)r%   r&   r'   r,   r   r   r/   r/   :   s    r   r/   c                   0   e Zd Z	 ej                  ded    fd       ZdefdZdde	e
   de
fdZej                  defd       Zej                  defd       Zd	edd fd
Zdedd fdZej                  dd       Zeej                  de
fd              Zy)r   r   c                      y r   r,   r#   s    r   iterdirzTraversable.iterdirH       	r   c                 r    	 | j                  d      5 }|j                         cd d d        S # 1 sw Y   y xY wNrbopenread)r   strms     r   
read_byteszTraversable.read_bytesN   s4    	 YYt_ 	99;	 	 	s   -6Nencodingc                 t    	 | j                  |      5 }|j                         cd d d        S # 1 sw Y   y xY w)N)r<   r7   )r   r<   r:   s      r   	read_textzTraversable.read_textU   s7    	 YYY) 	T99;	 	 	s   .7c                      y r   r,   r#   s    r   is_dirzTraversable.is_dir\   r3   r   c                      y r   r,   r#   s    r   is_filezTraversable.is_fileb   r3   r   descendantsc                 N   	 |s| S t         j                  j                  d t        t        j
                  |      D              }t        |      fd| j                         D        }	 t        |      } |j                  | S # t        $ r t        dt        |            w xY w)Nc              3   4   K   | ]  }|j                     y wr   )parts).0r   s     r   	<genexpr>z'Traversable.joinpath.<locals>.<genexpr>r   s      .
DJJ.
   c              3   B   K   | ]  }|j                   k(  s|  y wr   name)rG   traversabletargets     r   rH   z'Traversable.joinpath.<locals>.<genexpr>v   s$      
'[=M=MQW=WK
s   z"Target not found during traversal.)	itertoolschainfrom_iterablemappathlibPurePosixPathnextr2   StopIterationr/   listjoinpath)r   rC   namesmatchesmatchrN   s        @r   rX   zTraversable.joinpathh   s    	 K-- .
#&w'<'<k#J.
 
 e
+/<<>
	ME
 u~~u%%	  	 4fd5k 	s   *B  B$childc                 &    	 | j                  |      S r   )rX   )r   r\   s     r   __truediv__zTraversable.__truediv__   s    	 }}U##r   c                      y r   r,   )r   modeargskwargss       r   r8   zTraversable.open   s    	r   c                      y r   r,   r#   s    r   rL   zTraversable.name   s    	r   r   )r)r%   r&   r'   r(   r)   r   r2   bytesr;   r	   r+   r>   r*   r@   rB   StrPathrX   r^   r8   propertyrL   r,   r   r   r   r   >   s     	-0  
E (3- 3  	  
 	  
&W & &2$ $] $ 	  c   r   r   c                       e Zd Z	 ej                  d
d       Zdedej                  fdZ	de
defdZdedefdZdee   fdZy	)r   r   c                      y r   r,   r#   s    r   fileszTraversableResources.files   s    Ar   r   c                 ^    | j                         j                  |      j                  d      S r5   )rj   rX   r8   r   s     r   r   z"TraversableResources.open_resource   s$    zz|$$X.33D99r   c                     t        |      r   r   r   s     r   r   z"TraversableResources.resource_path   s    ))r   r   c                 \    | j                         j                  |      j                         S r   )rj   rX   rB   r    s     r   r!   z TraversableResources.is_resource   s"    zz|$$T*2244r   c                 L    d | j                         j                         D        S )Nc              3   4   K   | ]  }|j                     y wr   rK   )rG   items     r   rH   z0TraversableResources.contents.<locals>.<genexpr>   s     =d		=rI   )rj   r2   r#   s    r   r$   zTraversableResources.contents   s    =djjl&:&:&<==r   N)r   r   )r%   r&   r'   r(   r)   rj   rf   ioBufferedReaderr   r   r   r   r*   r!   r   r+   r$   r,   r   r   r   r      sr    
 	B B:g :"2C2C :*c *h *5 5D 5>(3- >r   r   )r(   rq   rO   osrS   typingr   r   r   r   r   r   r	   r
   r   r   r+   PathLikerf   __all__ABCMetar   	Exceptionr/   r   r   r,   r   r   <module>ry      s    
 	  	  N N N .  R[[%%
&
C' s{{ ' T	Y 	 W( W Wt>> >r   