o
    }¨Êh  ã                   @   sÞ  d dl mZ d dlZejdkrd dlmZmZ nd dlmZmZ ejdkr,d dlm	Z	 nd dl
m	Z	 zd dlmZ W n eyI   d dlmZ Y nw zd dlmZ W n eyi   d d	lmZ G d
d„ deƒZY nw zeZW n eyy   eZY nw zd dlmZ W n ey�   d dlZY nw zd dlmZ W n ey§   d dlmZ Y nw zd dlmZ W n ey½   dd„ ZY nw zd dlmZ W n eyÑ   eZY nw eZG dd„ dƒZ G dd„ dƒZ!G dd„ dƒZ"dd„ Z#dS )é    )Úabsolute_importN)é   é   )ÚPathÚPurePath)r   )Úsuppress)Úsingledispatch)ÚABC)ÚABCMetac                   @   s   e Zd ZeZdS )r	   N)Ú__name__Ú
__module__Ú__qualname__r
   Ú__metaclass__© r   r   úM/var/www/html/env/lib/python3.10/site-packages/importlib_resources/_compat.pyr	      s    r	   )Úmetadata)r   )Úruntime_checkablec                 C   s   | S ©Nr   )Úclsr   r   r   r   6   s   r   )ÚProtocolc                   @   s   e Zd Zdd„ ZdS )ÚPackageSpecc                 K   s   t | ƒ |¡ d S r   )ÚvarsÚupdate)ÚselfÚkwargsr   r   r   Ú__init__D   s   zPackageSpec.__init__N)r   r   r   r   r   r   r   r   r   C   s    r   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTraversableResourcesAdapterc                 C   s   || _ t|ƒ| _d S r   )ÚspecÚLoaderAdapterÚloader©r   r   r   r   r   r   I   s   z$TraversableResourcesAdapter.__init__c                 C   s   t | j|ƒS r   )Úgetattrr   )r   Únamer   r   r   Ú__getattr__M   s   z'TraversableResourcesAdapter.__getattr__N)r   r   r   r   r#   r   r   r   r   r   H   s    r   c                   @   s,   e Zd ZdZdd„ Zedd„ ƒZdd„ ZdS )	r   zT
    Adapt loaders to provide TraversableResources and other
    compatibility.
    c                 C   s
   || _ d S r   ©r   r    r   r   r   r   V   s   
zLoaderAdapter.__init__c                 C   s   | j jS r   )r   Úorigin)r   r   r   r   ÚpathY   s   zLoaderAdapter.pathc                    sJ   ddl m‰ ‡fdd„}dd„ ‰ ‡ fdd„}|| jƒp$|| jƒp$ˆ | ¡S )	Né   ©Úreadersc                    s<   t tƒ� ˆ  | j| j¡W  d   ƒ S 1 sw   Y  d S r   )r   ÚAttributeErrorÚ	ZipReaderr   r"   r$   r(   r   r   Ú_zip_readerb   s   
$ÿz6LoaderAdapter.get_resource_reader.<locals>._zip_readerc                 S   s:   t tƒ� | j | j¡W  d   ƒ S 1 sw   Y  d S r   )r   r*   r   Úget_resource_readerr"   r$   r   r   r   Ú_available_readerf   s   
$ÿz<LoaderAdapter.get_resource_reader.<locals>._available_readerc                    s   ˆ | ƒ}t |dƒr|S d S )NÚfiles)Úhasattr)r   Úreader)r.   r   r   Ú_native_readerj   s   z9LoaderAdapter.get_resource_reader.<locals>._native_reader)Ú r)   r   Ú
FileReader)r   r"   r,   r2   r   )r.   r)   r   r-   ^   s   
þúz!LoaderAdapter.get_resource_readerN)r   r   r   Ú__doc__r   Úpropertyr&   r-   r   r   r   r   r   Q   s    
r   c                 C   s8   t | ddƒpt| jt | ddƒ| jt | ddƒd�}t|ƒS )zŠ
    Construct a minimal package spec suitable for
    matching the interfaces this library relies upon
    in later Python versions.
    Ú__spec__NÚ
__loader__Ú__path__)r%   r   r"   Úsubmodule_search_locations)r!   r   Ú__file__r   r   )Úpackager   r   r   r   Úpackage_specx   s   

üÿr=   )$Ú
__future__r   ÚsysÚversion_infoÚpathlibr   r   Úpathlib2Ú
contextlibr   Úcontextlib2Ú	functoolsr   ÚImportErrorÚabcr	   r
   ÚobjectÚFileNotFoundErrorÚ	NameErrorÚOSErrorÚ	importlibr   Úimportlib_metadataÚzipfileÚZipPathÚzippÚtypingr   r   Útyper   r   r   r   r=   r   r   r   r   Ú<module>   sb    

ÿýÿÿÿÿÿ	'