
    Ύi                     v    d dl Z d dlZd dlmZ d dlmZ ddlmZmZ d Z	d Z
 G d d	ej                  Zd
 ZdS )    N)suppress)SimpleNamespace   )	_adaptersreadersc                 F     t          j                    fd            }|S )zw
    Wrap _adapters.TraversableResourcesLoader.get_resource_reader
    and intercept any standard library readers.
    c                     	  | i |}n6# t           $ r Y dS t          $ r}dt          |          vr Y d}~dS d}~ww xY w|j        j        }|                    d          r|                    d          rdS t          |t          j	                  rT|j
        j        j        j                            d          s)|j
        j        j        j                            d          rdS |S )z
        If the reader is from the standard library, return None to allow
        allow likely newer implementations in this library to take precedence.
        Nznot enough values to unpackz
importlib.r   	zipimport_frozen_importlib_external)NotADirectoryError
ValueErrorstr	__class__
__module__
startswithendswith
isinstancer   CompatibilityFilesspecloader)argskwargsreaderexcmod_namereader_getters        V/var/www/icac/venv/lib/python3.11/site-packages/importlib_resources/future/adapters.pywrapperz _block_standard.<locals>.wrapper   s   	"]D3F33FF! 	 	 	FF 	 	 	 -CHH<<FFFFF	 #.|,, 	1B1B91M1M 	Ffi:;; 	K(3>>{KK	{!+6AA, 	 Fs    
?	?:?)	functoolswraps)r   r   s   ` r   _block_standardr!   	   s:     _]##    $#> N    c                 R    t          | t          j                  o| j         }|s| ndS )z/
    Mask any degenerate reader. Ref #298.
    N)r   r   r   _reader)r   is_degenerates     r   _skip_degenerater&   2   s4    
 	69788O=O  '066D0r"   c                   :     e Zd ZdZ fdZd Zd Zd Zd Z xZ	S )TraversableResourcesLoaderz
    Adapt loaders to provide TraversableResources and other
    compatibility.

    Ensures the readers from importlib_resources are preferred
    over stdlib readers.
    c                     t           t          t                      j                  |                    p4|                                 p t                                          |          S N)r&   r!   superget_resource_reader_standard_reader)selfnamer   s     r   r,   z.TraversableResourcesLoader.get_resource_readerE   s[    I_UWW-HII$OOPP 1$$&&1ww**400	
r"   c                 z    |                                  p'|                                 p|                                 S r*   )_zip_reader_namespace_reader_file_readerr.   s    r   r-   z+TraversableResourcesLoader._standard_readerL   s6    !!TT%;%;%=%=TARARATATTr"   c                     t          t                    5  t          j        | j        j        | j        j                  cd d d            S # 1 swxY w Y   d S r*   )r   AttributeErrorr   	ZipReaderr   r   r/   r4   s    r   r1   z&TraversableResourcesLoader._zip_readerO   s    n%% 	G 	G$TY%5ty~FF	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	Gs   )AAAc                     t          t          t                    5  t          j        | j        j                  cd d d            S # 1 swxY w Y   d S r*   )r   r6   r   r   NamespaceReaderr   submodule_search_locationsr4   s    r   r2   z,TraversableResourcesLoader._namespace_readerS   s    nj11 	Q 	Q*49+OPP	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Qs   AA
A
c                     	 t          j        | j        j                  }n# t          $ r Y d S w xY w|                                r"t          j        t          |                    S d S )N)path)	pathlibPathr   origin	TypeErrorexistsr   
FileReaderr   )r.   r<   s     r   r3   z'TraversableResourcesLoader._file_readerW   sx    	<	 011DD 	 	 	44	;;== 	B%o4&@&@&@AAA	B 	Bs   ! 
//)
__name__r   __qualname____doc__r,   r-   r1   r2   r3   __classcell__)r   s   @r   r(   r(   <   s         
 
 
 
 
U U UG G GQ Q QB B B B B B Br"   r(   c                 @    t          j        | j        t                    S )z
    Override _adapters.wrap_spec to use TraversableResourcesLoader
    from above. Ensures that future behavior is always available on older
    Pythons.
    )r   SpecLoaderAdapter__spec__r(   )packages    r   	wrap_specrK   `   s     &w'79STTTr"   )r   r=   
contextlibr   typesr    r   r   r!   r&   r(   rK    r"   r   <module>rP      s               ! ! ! ! ! ! ! ! ! ! ! ! ! !& & &R1 1 1!B !B !B !B !B!E !B !B !BHU U U U Ur"   