
     d                         d Z 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 )z+
Interface adapters for low-level readers.
    N)BinaryIOList   )TraversableTraversableResourcesc                       e Zd ZdZej        d             Zej        d             Zej        d             Z	ej        d             Z
ed             ZdS )SimpleReaderzQ
    The minimum, low-level interface required from a resource
    provider.
    c                     dS )zP
        The name of the package for which this reader loads resources.
        N selfs    vC:\Users\ChattiNader\Documents\MyHotelMatch\api\dev\Lib\site-packages\setuptools/_vendor/importlib_resources/simple.pypackagezSimpleReader.package             c                     dS )zo
        Obtain an iterable of SimpleReader for available
        child containers (e.g. directories).
        Nr   r   s    r   childrenzSimpleReader.children   r   r   c                     dS )zL
        Obtain available named resources for this virtual package.
        Nr   r   s    r   	resourceszSimpleReader.resources"   r   r   c                     dS )z:
        Obtain a File-like for a named resource.
        Nr   )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____doc__abcabstractpropertyr   abstractmethodr   r   r   propertyr   r   r   r   r	   r	      s         
 	   	   	   	   + + X+ + +r   r	   c                   2    e Zd ZdZd Zd Zd Zd	dZd ZdS )
ResourceHandlez9
    Handle to a named resource in a ResourceReader.
    c                 "    || _         || _        d S N)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)r4   )	r   r   r    r!   r+   r.   r2   r>   rB   r   r   r   r'   r'   5   sn           
       > > > > >r   r'   c                   6    e Zd ZdZd Zd Zd Zd Zd Zd Z	dS )	ResourceContainerzI
    Traversable container for a package's resources via its reader.
    c                     || _         d S r)   )r7   )r   r7   s     r   r+   zResourceContainer.__init__T   s    r   c                     dS r-   r   r   s    r   r2   zResourceContainer.is_dirX   r/   r   c                     dS r1   r   r   s    r   r.   zResourceContainer.is_file[   r3   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   )r7   r   maprD   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                 ^    t          fd|                                 D                       S )Nc              3   2   K   | ]}|j         k    |V  d S r)   )r   )rJ   traversabler   s     r   rK   z-ResourceContainer.joinpath.<locals>.<genexpr>g   s:       
 
'[=MQU=U=UK=U=U=U=U
 
r   )nextrQ   rA   s    `r   rB   zResourceContainer.joinpathf   sC     
 
 
 
+/<<>>
 
 
 
 
 	
r   N)
r   r   r    r!   r+   r2   r.   rQ   r>   rB   r   r   r   rD   rD   O   sx               , , ,
" " "
 
 
 
 
r   rD   c                       e Zd ZdZd ZdS )TraversableReaderz
    A TraversableResources based on SimpleReader. Resource providers
    may derive from this class to provide the TraversableResources
    interface by supplying the SimpleReader interface.
    c                      t          |           S r)   )rD   r   s    r   rO   zTraversableReader.filess   s     &&&r   N)r   r   r    r!   rO   r   r   r   rY   rY   l   s-         ' ' ' ' 'r   rY   )r!   r"   r8   rM   typingr   r   r   r   ABCr	   r'   rD   rY   r   r   r   <module>r]      s    


 				     ! ! ! ! ! ! ! ! 2 2 2 2 2 2 2 2%+ %+ %+ %+ %+37 %+ %+ %+P> > > > >[ > > >4
 
 
 
 
 
 
 
:' ' ' ' ',l ' ' ' ' 'r   