
    VGh!                        d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlZ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mZmZ ddlmZmZmZmZmZmZ dZdZ ee       jB                  Z"g d	Z#ejH                   G d
 d             Z% G d dejL                  jN                        Z(ejR                  d        Z*d Z+d Z, G d dejL                  jZ                        Z.d Z/d Z0d Z1de%fdZ2d Z3de%fdZ4y)    N)Path)ZipFile   )Indirectplugin_dirsall_plugins_loadedplugin_specs)get_executable_pathget_system_config_dirsget_user_config_dirsmerge_dicts
orderedSetwrite_stringyt_dlp_pluginsytdlp_plugins)COMPAT_PACKAGE_NAMEPACKAGE_NAME
PluginSpecdirectoriesload_all_pluginsload_pluginsregister_plugin_specc                   6    e Zd ZU eed<   eed<   eed<   eed<   y)r   module_namesuffixdestinationplugin_destinationN)__name__
__module____qualname__str__annotations__r        W/var/www/it7/html/youtubeDownloader/venv/lib/python3.12/site-packages/yt_dlp/plugins.pyr   r   6   s    K  r$   r   c                       e Zd ZdZd Zy)PluginLoaderz+Dummy loader for virtual namespace packagesc                      y Nr#   )selfmodules     r%   exec_modulezPluginLoader.exec_moduleA   s    r$   N)r   r   r    __doc__r,   r#   r$   r%   r'   r'   >   s
    5r$   r'   c                 $   	 t        |       5 }t        t        j                  j	                  d |j                         D                    cd d d        S # 1 sw Y   yxY w# t        $ r Y yt        $ r}t        d|  d| d       Y d }~yd }~ww xY w)Nc              3   F   K   | ]  }t        |      j                    y wr)   )r   parents).0files     r%   	<genexpr>zdirs_in_zip.<locals>.<genexpr>I   s!      5@'+T
""5@s   !z!WARNING: Could not read zip file z: 
r#   )	r   set	itertoolschainfrom_iterablenamelistFileNotFoundError	Exceptionr   )archivezip_es      r%   dirs_in_zipr?   E   s    KW 	Ay44 5@/3}}5@ @ A	A 	A 	A 	     K8	A3bIJJKs:   A  =A
	A  AA  A   	B+B3B

Bc               #   &  K   d }  | g t        d      t        d      ddiE d {     | t               gt        d      t        d      ddiE d {    d t        t        t
        j                        D        E d {    y 7 b7 47 	w)Nc              7      K   t        t        t        |      d      D ]I  }|t        k(  rt	        j
                  t              5  || z  j                         E d {    d d d        K y 7 # 1 sw Y   XxY ww)NTlazy)r   mapr   _BASE_PACKAGE_PATH
contextlibsuppressOSErroriterdir)containing_folder
root_paths
config_dirs      r%   _get_package_pathsz0default_plugin_paths.<locals>._get_package_pathsS   s|     $Sz%:F 	FJ//$$W- F&)::CCEEEF F		F
 FF Fs0   AA9A-A+A- A9+A--A6	2A9zyt-dlprJ   plugins zyt-dlp-pluginsc              3   4   K   | ]  }|t         k7  s|  y wr)   )rE   )r1   paths     r%   r3   z'default_plugin_paths.<locals>.<genexpr>k   s     S@R8RSs   )r   r   r
   rD   r   sysrQ   )rM   s    r%   default_plugin_pathsrS   R   s     F " 	h	'		) $   "	b	! 
 	# +	   TT388!4SSS Ts3   &BB/BB,BBBBBc              #      K   t        |       }|j                         st        d|       |j                         E d {    y 7 w)NzInvalid plugin directory: )r   is_dir
ValueErrorrI   )	candidatecandidate_paths     r%   candidate_plugin_pathsrY   n   sA     )_N  "5n5EFGG%%'''s   =AA Ac                   *    e Zd ZdZd Zd ZddZd Zy)PluginFinderz
    This class provides one or multiple namespace packages.
    It searches in sys.path and yt-dlp config folders for
    the existing subdirectories from which the modules can be imported
    c                 z    i | _         t        t        j                  j	                  d |D                    | _        y )Nc              3   h   K   | ]*  }t        j                  |j                  d       d        , yw).c                 (    dj                  | |f      S )Nr^   )join)abs     r%   <lambda>z1PluginFinder.__init__.<locals>.<genexpr>.<lambda>   s    388QPQFCS r$   N)r6   
accumulatesplit)r1   names     r%   r3   z(PluginFinder.__init__.<locals>.<genexpr>   s.      *& $$TZZ_6ST*&s   02)_zip_content_cacher5   r6   r7   r8   packages)r*   rh   s     r%   __init__zPluginFinder.__init__|   s5    "$OO)) *&$*& &'r$   c              #     K   t         j                  j                  d t        j                  D              }t        |j                  d       }t        |d      D ]L  }||z  }	 |j                         r| n/|j                  dv r!|j                         r|t        |      v r| N y # t        $ r#}t        d|j                   d       Y d }~wd }~ww xY ww)Nc              3   P   K   | ]  }|d k(  r
t               n
t        |         yw)defaultN)rS   rY   )r1   rW   s     r%   r3   z0PluginFinder.search_locations.<locals>.<genexpr>   s/      <
 '09&< "BXYbBcc<
s   $&r^   TrB   )z.zipz.eggz.whlz-Permission error while accessing modules in "z"
)r6   r7   r8   r   valuer   re   r   rU   r   is_filer?   PermissionErrorr   filename)r*   fullnamecandidate_locationspartsrQ   rW   r>   s          r%   search_locationszPluginFinder.search_locations   s     'oo;; <
(..<
 

 hnnS)*2> 		^DuI^##%#O[[$<<D 11'		^ # ^LQZZLX[\]]^s1   A!C$AB+(C+	C4CCCCNc                     || j                   vry t        t        t        | j	                  |                  }|st        |      t        j                  j                  |t               d      }||_
        |S )NT)
is_package)rh   listrD   r!   rt   ModuleNotFoundError	importlib	machinery
ModuleSpecr'   submodule_search_locations)r*   rq   rQ   targetrt   specs         r%   	find_speczPluginFinder.find_spec   si    4==(C)>)>x)H IJ%h//""--hSW-X*:'r$   c                     t         j                          | j                  D ]&  }|t        j                  v st        j                  |= ( y r)   )r?   cache_clearrh   rR   modules)r*   packages     r%   invalidate_cacheszPluginFinder.invalidate_caches   s9    !}} 	)G#++%KK(	)r$   )NN)r   r   r    r-   ri   rt   r   r   r#   r$   r%   r[   r[   u   s    '^$)r$   r[   c                      t        j                  t              5  t        j                  j                  t              x} rt        | j                        cd d d        S 	 d d d        g S # 1 sw Y   g S xY wr)   )	rF   rG   rx   ry   utilr   r   rw   r|   )r~   s    r%   r   r      sd    			0	1 9>>++L99497789 999 I9 Is   :A))A3c              #     K   t          d|  }t        j                  t              5  t	        j
                  |      }t        j                  |j                  | d      E d {    d d d        y 7 # 1 sw Y   y xY ww)Nr^   )rQ   prefix)	r   rF   rG   rx   ry   import_modulepkgutiliter_modules__path__)
subpackagerq   pkgs      r%   r   r      sw     q-H			0	1 R%%h/''S\\XJa.QQQR RQR Rs.   %B =A4$A2%A4)	B 2A44A=9B c                 >     t        j                    fd      S )Nc                 L   t        j                  |       xr | j                  j                        xrp | j                  j                        xrS | j                  j                  d       xr5 | j                  t        d| j                  g      v xr t        | dd       d u S )N___all__PLUGIN_NAME)inspectisclassr   endswithr   
startswithgetattr)objr+   r   r   s    r%   rc   z%get_regular_classes.<locals>.<lambda>   s     	6LL!!&)	6NN%%k2	6 '',,	6 LLGFI~FF		6
 C-5 r$   )r   
getmembers)r+   r   r   s   ```r%   get_regular_classesr      s    f '  r$   plugin_specc           
      P   | j                   | j                  }}i }t        j                  j	                  d      st
        j                  s|S t        |      D ]  \  }}}t        d |j                  d      D              r)	 t        j                  dk  r,t        |t        j                        r|j                  |      }n^|j!                  |      }t"        j$                  j'                  |      }|t        j(                  |<   |j*                  j-                  |       |j7                  t9        |||              d	t
        j                  v rt;        j<                  t>              5  t"        j$                  jA                  |tC        tE               tF        |d
            }t"        j$                  j'                  |      }	|	t        j(                  |jH                  <   |j*                  j-                  |	       |j7                  t9        |	|jH                  |             d d d        || jJ                  _        tM        || jN                  j                        | jN                  _        |S # t.        $ r) t1        d|dt3        j4                  d              Y Aw xY w# 1 sw Y   xY w)NYTDLP_NO_PLUGINSc              3   >   K   | ]  }|j                  d         yw)r   N)r   )r1   xs     r%   r3   zload_plugins.<locals>.<genexpr>   s     AQq||C As   r^   )   
   zError while importing module r4   )limitrl   z__init__.py)(r   r   osenvirongetr   rm   r   anyre   rR   version_info
isinstance	zipimportzipimporterload_moduler   ry   r   module_from_specr   loaderr,   r;   r   	traceback
format_excupdater   rF   rG   r:   spec_from_file_locationr   r
   r   rf   r   r   r   )
r   rf   r   regular_classesfinderr   r   r+   r~   rN   s
             r%   r   r      s0   **K,>,>&DO	zz~~()1B1B".t"4 QQA+*;*;C*@AA	')jAVAV.W  ++K8''4"88>+1K(''/ 	26;OP'Q0 K%%%  !23 	T>>99(*,?}UD  nn55d;G%,CKK		"KK##G,""#6w		6#RS	T ,;K""($/AXAXA^A^$_K!5  	/bAUAU\^A_@`a 			T 	Ts    BI''B6J'.JJJ%c                  v    t         j                  j                         D ]  } t        |         dt        _        y )NT)r	   rm   valuesr   r   r   s    r%   r   r      s1    #))002 "[!"#r$   c                     | j                   t        j                  vrZ| t        j                  | j                   <   t        j                  j                  dt        t         d| j                                 y y )Nr   r^   )r   r	   rm   rR   	meta_pathinsertr[   r   r   s    r%   r   r      s\    l&8&886A;223Q~Q{?V?V>W-X YZ 9r$   )5rF   dataclasses	functoolsry   importlib.abcimportlib.machineryimportlib.utilr   r6   r   r   rR   r   r   pathlibr   zipfiler   globalsr   r   r   r	   utilsr
   r   r   r   r   r   r   r   __file__parentrE   r   	dataclassr   abcLoaderr'   cacher?   rS   rY   MetaPathFinderr[   r   r   r   r   r   r   r#   r$   r%   <module>r      s            	  
        % (^**  ! ! !9==''  	 	T8(1)9==// 1)hR	.j .b$[j [r$   