
    Ύi                         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mZmZmZmZmZ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dS )    N)AnyBinaryIOIterableIteratorNoReturnLiteralOptionalProtocolTextTextIOUnionoverloadruntime_checkable)ResourceReaderTraversableTraversableResourcesc                       e Zd 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d	S )
r   zDAbstract base class for loaders to provide resource reading support.resourcereturnc                     t           )zReturn an opened, file-like object for binary reading.

        The 'resource' argument is expected to represent only a file name.
        If the resource cannot be found, FileNotFoundError is raised.
        FileNotFoundErrorselfr   s     J/var/www/icac/venv/lib/python3.11/site-packages/importlib_resources/abc.pyopen_resourcezResourceReader.open_resource   s
          c                     t           )zReturn the file system path to the specified resource.

        The 'resource' argument is expected to represent only a file name.
        If the resource does not exist on the file system, raise
        FileNotFoundError.
        r   r   s     r   resource_pathzResourceReader.resource_path)   s
      r   pathc                     t           )zjReturn True if the named 'path' is a resource.

        Files are resources, directories are not.
        r   r   r    s     r   is_resourcezResourceReader.is_resource6   s
      r   c                     t           )z+Return an iterable of entries in `package`.r   r   s    r   contentszResourceReader.contents>   s
      r   N)__name__
__module____qualname____doc__abcabstractmethodr   r   r   r   boolr#   r   strr&    r   r   r   r      s        NN	 d 	 x 	  	  	  	  	
 d 
 t 
  
  
  
  	            	 (3-            r   r   )	metaclassc                       e Zd ZdS )TraversalErrorN)r'   r(   r)   r/   r   r   r2   r2   D   s        Dr   r2   c                      e Zd ZdZej        ded          fd            ZdefdZ		 dde
e         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dded         dededefd            Zeded         dededefd            Zej        	 ddedededeeef         fd            Zeej        defd                        ZdS )r   z
    An object with a subset of pathlib.Path methods suitable for
    traversing directories and opening files.

    Any exceptions that occur when accessing the backing resource
    may propagate unaltered.
    r   c                     dS )z3
        Yield Traversable objects in self
        Nr/   r%   s    r   iterdirzTraversable.iterdirR         r   c                     |                      d          5 }|                                cddd           S # 1 swxY w Y   dS )z0
        Read contents of self as bytes
        rbNopenread)r   strms     r   
read_byteszTraversable.read_bytesX   s     YYt__ 	99;;	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   7;;Nencodingerrorsc                     |                      ||          5 }|                                cddd           S # 1 swxY w Y   dS )z/
        Read contents of self as text
        )r>   r?   Nr9   )r   r>   r?   r<   s       r   	read_textzTraversable.read_text_   s     YYY88 	D99;;	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   9= =c                     dS )z4
        Return True if self is a directory
        Nr/   r%   s    r   is_dirzTraversable.is_dirh   r6   r   c                     dS )z/
        Return True if self is a file
        Nr/   r%   s    r   is_filezTraversable.is_filen   r6   r   descendantsc                 z   |s| S t           j                            d t          t          j        |          D                       }t          |          fd|                                 D             }	 t          |          }n,# t          $ r t          dt          |                    w xY w |j        | S )z
        Return Traversable resolved with any descendants applied.

        Each descendant should be a path segment relative to self
        and each may contain multiple levels separated by
        ``posixpath.sep`` (``/``).
        c              3   $   K   | ]}|j         V  d S N)parts).0r    s     r   	<genexpr>z'Traversable.joinpath.<locals>.<genexpr>~   s5       .
 .
DJ.
 .
 .
 .
 .
 .
r   c              3   2   K   | ]}|j         k    |V  d S rI   name)rK   traversabletargets     r   rL   z'Traversable.joinpath.<locals>.<genexpr>   s:       
 
'[=MQW=W=WK=W=W=W=W
 
r   z"Target not found during traversal.)	itertoolschainfrom_iterablemappathlibPurePosixPathnextr5   StopIterationr2   listjoinpath)r   rF   namesmatchesmatchrQ   s        @r   r[   zTraversable.joinpatht   s      	K-- .
 .
#&w'<k#J#J.
 .
 .
 
 
 e
 
 
 
+/<<>>
 
 
	MMEE 	 	 	 4fd5kk  	 u~u%%s   7B )B0childc                 ,    |                      |          S )z2
        Return Traversable child in self
        )r[   )r   r_   s     r   __truediv__zTraversable.__truediv__   s     }}U###r   rmodeargskwargsc                     d S rI   r/   r   rc   rd   re   s       r   r:   zTraversable.open   s    SVSVr   r8   c                     d S rI   r/   rg   s       r   r:   zTraversable.open   s    PSPSr   c                     dS )z
        mode may be 'r' or 'rb' to open as text or binary. Return a handle
        suitable for reading (same as pathlib.Path.open).

        When opening as text, accepts encoding parameters such as those
        accepted by io.TextIOWrapper.
        Nr/   rg   s       r   r:   zTraversable.open   r6   r   c                     dS )zM
        The base name of this object without any parent references.
        Nr/   r%   s    r   rO   zTraversable.name   r6   r   )NN)rb   )r'   r(   r)   r*   r+   r,   r   r5   bytesr=   r	   r.   rA   r-   rC   rE   StrPathr[   ra   r   r   r   r   r:   r   r   propertyrO   r/   r   r   r   r   H   s-         	-0    
E     GK  6>sm	    	    
 	    
&W & & & & &2$ $] $ $ $ $ VVVCV3V6VVV XVSSsScShSSS XS	 		&)	58		vx	 	 	 	 	 c     X  r   r   c                   |    e Zd ZdZej        dd            ZdedefdZ	de
defdZdedefd	Zdee         fd
ZdS )r   zI
    The required interface for providing traversable
    resources.
    r   r   c                     dS )z3Return a Traversable object for the loaded package.Nr/   r%   s    r   fileszTraversableResources.files   r6   r   r   c                 v    |                                                      |                              d          S )Nr8   )rp   r[   r:   r   s     r   r   z"TraversableResources.open_resource   s,    zz||$$X..33D999r   c                      t          |          rI   r   r   s     r   r   z"TraversableResources.resource_path   s    )))r   r    c                 t    |                                                      |                                          S rI   )rp   r[   rE   r"   s     r   r#   z TraversableResources.is_resource   s*    zz||$$T**22444r   c                 b    d |                                                                  D             S )Nc              3   $   K   | ]}|j         V  d S rI   rN   )rK   items     r   rL   z0TraversableResources.contents.<locals>.<genexpr>   s$      ==d	======r   )rp   r5   r%   s    r   r&   zTraversableResources.contents   s*    ==djjll&:&:&<&<====r   N)r   r   )r'   r(   r)   r*   r+   r,   rp   rl   r   r   r   r   r   r-   r#   r   r.   r&   r/   r   r   r   r      s         
 	B B B B:g :( : : : :*c *h * * * *5 5D 5 5 5 5>(3- > > > > > >r   r   )r+   rR   osrV   typingr   r   r   r   r   r   r	   r
   r   r   r   r   r   r.   PathLikerl   __all__ABCMetar   	Exceptionr2   r   r   r/   r   r   <module>r}      s   



     				                                R[%%
&
C
C
C'  '  '  '  ' s{ '  '  '  ' T	 	 	 	 	Y 	 	 	 a a a a a( a a aH> > > > >> > > > > >r   