
    XIg|                     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   )readers	_adaptersc                 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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
importlib.r   	zipimport_frozen_importlib_external)
NotADirectoryError	__class__
__module__
startswithendswith
isinstancer   CompatibilityFilesspecloader)argskwargsreadermod_namereader_getters       `/var/www/html/answerous/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,  " 		s   C 	CC)	functoolswraps)r   r   s   ` r   _block_standardr   	   s'     __]# $0 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#   +   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_reader>   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_readerE   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,   r1   s    r   r.   z&TraversableResourcesLoader._zip_readerH   sE    n% 	G$$TYY%5%5tyy~~F	G 	G 	G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   r3   
ValueErrorr   NamespaceReaderr   submodule_search_locationsr1   s    r   r/   z,TraversableResourcesLoader._namespace_readerL   s=    nj1 	Q**499+O+OP	Q 	Q 	Qs   )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   r0   z'TraversableResourcesLoader._file_readerP   sY    	<<		 0 01D ;;=%%o4&@AA   		s   )A 	A'&A')
__name__r   __qualname____doc__r)   r*   r.   r/   r0   __classcell__)r   s   @r   r%   r%   5   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_specrI   Y   s     &&w'7'79STTr   )r   r;   
contextlibr   typesr    r   r   r   r#   r%   rI    r   r   <module>rN      s:       ! !D1!B!E!E !BHUr   