
    @g                     x    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y)    N)suppress)SimpleNamespace   )	_adaptersreadersc                 B     t        j                          fd       }|S )zw
    Wrap _adapters.TraversableResourcesLoader.get_resource_reader
    and intercept any standard library readers.
    c                     	  | i |}|j                  j                  }|j                  d      r|j                  d      ryt        |t        j                        rs|j                  j                  j                  j                  j                  d      s9|j                  j                  j                  j                  j                  d      ry|S # t         $ r Y yt        $ r}dt        |      vr Y d}~yd}~ww xY w)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        X/var/www/openai/venv/lib/python3.12/site-packages/importlib_resources/future/adapters.pywrapperz _block_standard.<locals>.wrapper   s    	"D3F3F ##..|,1B1B91Mfi::;KK((33>>{K{{!!++66AA, - " 	 	 -CH<	s   C 	C>C>&C99C>)	functoolswraps)r   r   s   ` r   _block_standardr!   	   s'     __]# $> N    c                 `    t        | t        j                        xr | j                   }|s| S dS )z/
    Mask any degenerate reader. Ref #298.
    N)r   r   r   _reader)r   is_degenerates     r   _skip_degenerater&   2   s4    
 	69778O=O  '60D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        |         |            xs! | j	                         xs t        |   |      S N)r&   r!   superget_resource_reader_standard_reader)selfnamer   s     r   r,   z.TraversableResourcesLoader.get_resource_readerE   sE    I_UW-HI$OP 1$$&1w*40	
r"   c                 j    | j                         xs" | j                         xs | j                         S r*   )_zip_reader_namespace_reader_file_readerr.   s    r   r-   z+TraversableResourcesLoader._standard_readerL   s-    !TT%;%;%=TARARATTr"   c                     t        t              5  t        j                  | j                  j
                  | j                  j                        cd d d        S # 1 sw Y   y xY wr*   )r   AttributeErrorr   	ZipReaderr   r   r/   r4   s    r   r1   z&TraversableResourcesLoader._zip_readerO   s8    n%$$TYY%5%5tyy~~F &%%s   >AA!c                     t        t        t              5  t        j                  | j
                  j                        cd d d        S # 1 sw Y   y xY wr*   )r   r6   r   r   NamespaceReaderr   submodule_search_locationsr4   s    r   r2   z,TraversableResourcesLoader._namespace_readerS   s0    nj1**499+O+OP 211s   )AAc                     	 t        j                  | j                  j                        }|j                         rt        j                  t        |            S y # t        $ r Y y w xY w)N)path)	pathlibPathr   origin	TypeErrorexistsr   
FileReaderr   )r.   r<   s     r   r3   z'TraversableResourcesLoader._file_readerW   sY    	<<		 0 01D ;;=%%o4&@AA   		s   )A 	A'&A')
__name__r   __qualname____doc__r,   r-   r1   r2   r3   __classcell__)r   s   @r   r(   r(   <   s%    
UGQBr"   r(   c                 J    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'7'79STTr"   )r   r=   
contextlibr   typesr    r   r   r!   r&   r(   rK    r"   r   <module>rP      s:       ! !&R1!B!E!E !BHUr"   