
    Ui
                         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 j                  dd      Z	d Z
d Zd Z G d dej                        Zdd	 d
dZy)    NPackagenameversionc                      t        t         d j                        t        t	        t        d  fddD              d                   S )N_yt_dlp__identifierc              3   8   K   | ]  }t        |d         y wN)getattr).0attrmodules     P/mnt/pikpak/tmp/myenv/lib/python3.12/site-packages/yt_dlp/compat/compat_utils.py	<genexpr>z#get_package_info.<locals>.<genexpr>   s"      '
X FD$'Xs   )_yt_dlp__version__version__version_stringr   r   )_Packager   __name__strnextfilterr   s   `r   get_package_infor      sK    V2FOODD '
X'
        c                     dt        |       v S )N__path__)varsr   s    r   _is_packager      s    f%%r   c                 J    | j                  d      xr | j                  d      S )N__)
startswithendswith)r   s    r   
_is_dunderr$      s    ??4 8T]]4%88r   c                   $     e Zd Zd Z fdZ xZS )EnhancedModulec                 D     t        |       j                  dd              S )N__bool__c                       y)NT r*   r   r   <lambda>z)EnhancedModule.__bool__.<locals>.<lambda>    s    $r   )r   get)selfs    r   r(   zEnhancedModule.__bool__   s    7tDz~~j,799r   c                     	 t         |   |      }t        |t              r|j                         S |S # t        $ r' t        |      r t	        | dd       }|s  ||      }Y Qw xY w)N__getattr__)super__getattribute__AttributeErrorr$   r   
isinstancepropertyfget)r-   r   retgetter	__class__s       r   r1   zEnhancedModule.__getattribute__"   sl    	'*40C (X6sxxz?C?  	$T=$7F,C	s   4 -A$#A$)r   
__module____qualname__r(   r1   __classcell__)r8   s   @r   r&   r&      s    :
@ 
@r   r&   c                      y r
   r*   )_s    r   r+   r+   /   s    X\r   )callbackc                      fd}t         j                   fd       t        j                  j	                   t        j                                t         _        | _	         S )zOPassthrough parent module into a child module, creating the parent if necessaryc                 (   t              rFt        j                  t              5  t	        j
                  d|  j                        cd d d        S  |       }|t        u rt        dj                   d|         |        |S # 1 sw Y   >xY w)N.zmodule z has no attribute )	r   
contextlibsuppressModuleNotFoundError	importlibimport_moduler   _NO_ATTRIBUTEr2   )r   r6   r>   
from_childparents     r   r/   z'passthrough_module.<locals>.__getattr__1   s    v$$%89 ..4&z6??K :9 - 76??*;;MdV!TUU
 :9s   #BBc                    | vrdvst        |       rt        S t        t              r t	        j
                  j                        t              r_t        j                  t              5  t        j                   d|  t	        j
                  d|  j                              cd d d        S t        j                  t              5  t        |       cd d d        S # 1 sw Y   8xY w# 1 sw Y   t        S xY w)N.rA   )r$   rG   r3   r   rE   rF   r   r   rB   rC   ImportErrorpassthrough_moduler2   r   )r   allowed_attributeschildrI   s    r   rH   z&passthrough_module.<locals>.from_child<   s     )),,
40@$$eS!++E6??CEu$$[1)V__,=Qtf*E*3*A*AAdV*enn*]_ 21   05$' 10	 21 1 s   /<C$C0$C-0C>)
	functoolscachesysmodulesr,   types
ModuleTyper&   r8   r/   )rI   rN   rM   r>   r/   rH   s   ```` @r   rL   rL   /   sV    	 __ & [[__VU%5%5f%=>F%F$FMr   )).)collectionsrB   rO   rE   rQ   rS   objectrG   
namedtupler   r   r   r$   rT   r&   rL   r*   r   r   <module>rX      sb        
 !;!!)-@A&9@U%% @"$n $r   