o
    gF                     @   sN   d dl mZ ddlmZ G dd dZG dd dZG dd	 d	Zd
d ZdS )    )suppress   )abcc                   @   s&   e Zd Z	 dd fddZdd ZdS )SpecLoaderAdapterc                 C   s   | j S N)loaderspec r
   I/Users/admin/.pyenv/versions/3.10.0/lib/python3.10/importlib/_adapters.py<lambda>   s    zSpecLoaderAdapter.<lambda>c                 C   s   || _ ||| _d S r   )r	   r   )selfr	   Zadapterr
   r
   r   __init__   s   zSpecLoaderAdapter.__init__c                 C      t | j|S r   )getattrr	   r   namer
   r
   r   __getattr__      zSpecLoaderAdapter.__getattr__N)__name__
__module____qualname__r   r   r
   r
   r
   r   r      s    r   c                   @   s   e Zd Z	 dd Zdd ZdS )TraversableResourcesLoaderc                 C   
   || _ d S r   r   r   r	   r
   r
   r   r         
z#TraversableResourcesLoader.__init__c                 C   s   t | j S r   )DegenerateFilesr	   _nativer   r
   r
   r   get_resource_reader   s   z.TraversableResourcesLoader.get_resource_readerN)r   r   r   r   r   r
   r
   r
   r   r      s    r   c                   @   sL   e Zd Z	 G dd dejZdd Zedd Zdd Z	d	d
 Z
dd ZdS )r   c                   @   s<   e Zd Zdd Zdd Ze ZZdd Zdd Zd	d
 Z	dS )zDegenerateFiles.Pathc                 C   s   t dS )Nr
   )iterr   r
   r
   r   iterdir&      zDegenerateFiles.Path.iterdirc                 C      dS )NFr
   r    r
   r
   r   is_dir)      zDegenerateFiles.Path.is_dirc                 C      t  S r   r   Path)r   otherr
   r
   r   joinpath.   r"   zDegenerateFiles.Path.joinpathc                 C   r#   )N r
   r    r
   r
   r   r   1   r%   zDegenerateFiles.Path.namec                 C   s   t  r   )
ValueErrorr    r
   r
   r   open4   s   zDegenerateFiles.Path.openN)
r   r   r   r!   r$   is_fileexistsr*   r   r-   r
   r
   r
   r   r(   %   s    r(   c                 C   r   r   r   r   r
   r
   r   r   7   r   zDegenerateFiles.__init__c                 C   s>   t t | jj| jjW  d    S 1 sw   Y  d S r   )r   AttributeErrorr	   r   r   r   r    r
   r
   r   _reader:   s   
$zDegenerateFiles._readerc                 C   s   	 | j }t|dr|S | S )Nfiles)r1   hasattr)r   readerr
   r
   r   r   ?   s   zDegenerateFiles._nativec                 C   r   r   )r   r1   )r   attrr
   r
   r   r   F   r   zDegenerateFiles.__getattr__c                 C   r&   r   r'   r    r
   r
   r   r2   I   r"   zDegenerateFiles.filesN)r   r   r   r   ZTraversabler(   r   propertyr1   r   r   r2   r
   r
   r
   r   r      s    
r   c                 C   s   	 t | jtS r   )r   __spec__r   )packager
   r
   r   	wrap_specM   s   r9   N)
contextlibr   r+   r   r   r   r   r9   r
   r
   r
   r   <module>   s    .