a
    h
                     @   s   d dl Z d dlZd dlZd dlZd dlZd dlZe Ze ddZ	dd Z
dd Zdd	 ZG d
d dejZddd dddZdS )    NPackagenameversionc              	      s4   t t d jtttd  fdddD d dS )NZ_yt_dlp__identifierc                 3   s   | ]}t  |d V  qd S N)getattr).0attrmodule O/mnt/pikpak/tmp/myenv/lib/python3.9/site-packages/yt_dlp/compat/compat_utils.py	<genexpr>   s   z#get_package_info.<locals>.<genexpr>)Z_yt_dlp__version__version__version_stringr   r   )_Packager   __name__strnextfilterr
   r   r
   r   get_package_info   s    r   c                 C   s   dt | v S )N__path__)varsr
   r   r   r   _is_package   s    r   c                 C   s   |  do| dS )N__)
startswithendswith)r   r   r   r   
_is_dunder   s    r   c                       s$   e Zd Zdd Z fddZ  ZS )EnhancedModulec                 C   s   t | ddd  S )N__bool__c                   S   s   dS )NTr   r   r   r   r   <lambda>        z)EnhancedModule.__bool__.<locals>.<lambda>)r   get)selfr   r   r   r      s    zEnhancedModule.__bool__c                    s^   zt  |}W n6 tyF   t|r( t| dd }|s: ||}Y n0 t|trZ| S |S )N__getattr__)super__getattribute__AttributeErrorr   r   
isinstancepropertyfget)r#   r	   retgetter	__class__r   r   r&   "   s    zEnhancedModule.__getattribute__)r   
__module____qualname__r   r&   __classcell__r   r   r-   r   r      s   r   .c                 C   s   d S r   r   )_r   r   r   r    /   r!   r    )callbackc                   sJ   fdd}t j fddtjtt_|_	S )zOPassthrough parent module into a child module, creating the parent if necessaryc                    sx   t rFtt$ td|  jW  d    S 1 s<0    Y  | }|tu rltdj d|   |  |S )N.zmodule z has no attribute )	r   
contextlibsuppressModuleNotFoundError	importlibimport_moduler   _NO_ATTRIBUTEr'   )r	   r+   )r4   
from_childparentr   r   r$   1   s    2z'passthrough_module.<locals>.__getattr__c                    s   |  vrd vst | rtS ttr4tjtrt	t
6 tj d|  td|  jW  d    S 1 s0    Y  t	t t| W  d    S 1 s0    Y  tS )N.r5   )r   r;   r(   r   r9   r:   r   r   r6   r7   ImportErrorpassthrough_moduler'   r   )r	   )allowed_attributeschildr=   r   r   r<   <   s    
"(z&passthrough_module.<locals>.from_child)
	functoolscachesysmodulesr"   types
ModuleTyper   r.   r$   )r=   rA   r@   r4   r$   r   )r@   r4   rA   r<   r=   r   r?   /   s    r?   )r2   )collectionsr6   rB   r9   rD   rF   objectr;   
namedtupler   r   r   r   rG   r   r?   r   r   r   r   <module>   s   	