
    Ği                         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          j         Z!g d	Z"ej#         G d
 d                      Z$ G d dej%        j&                  Z'ej(        d             Z)d Z*d Z+ G d dej%        j,                  Z-d Z.d Z/d Z0de$fdZ1d Z2de$fdZ3dS )    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                   8    e Zd ZU eed<   eed<   eed<   eed<   dS )r   module_namesuffixdestinationplugin_destinationN)__name__
__module____qualname__str__annotations__r        SC:\Users\betacode\Desktop\descargarYoutube\venv\Lib\site-packages\yt_dlp/plugins.pyr   r   5   s?         KKK      r$   r   c                       e Zd ZdZd ZdS )PluginLoaderz+Dummy loader for virtual namespace packagesc                     d S Nr#   )selfmodules     r%   exec_modulezPluginLoader.exec_module@   s    tr$   N)r   r   r    __doc__r,   r#   r$   r%   r'   r'   =   s)        55    r$   r'   c                 X   	 t          |           5 }t          t          j                            d |                                D                                 cd d d            S # 1 swxY w Y   n8# t          $ r Y n,t          $ r }t          d|  d| d           Y d }~nd }~ww xY wdS )Nc              3   >   K   | ]}t          |          j        V  d S r)   )r   parents).0files     r%   	<genexpr>zdirs_in_zip.<locals>.<genexpr>H   sD       5@ 5@'+T

"5@ 5@ 5@ 5@ 5@ 5@r$   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?   D   sD   KW 	Ay44 5@ 5@/3}}5@ 5@ 5@ @ @ A A	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A     K K KIIIAIIIJJJJJJJJK2sA   A2 AA&A2 &A**A2 -A*.A2 2
B'>	B'B""B'c               #   <  K   d }  | g t          d          t          d          R ddiE d {V   | t                      gt          d          t          d          R ddiE d {V  d t          t          t
          j                  D             E d {V  d S )Nc              7     K   t          t          t          |          d          D ]\}|t          k    rt	          j        t                    5  || z                                  E d {V  d d d            n# 1 swxY w Y   ]d S )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_pathsR   s      $Sz%:%:FFF 	F 	FJ///$W-- F F&)::CCEEEEEEEEEF F F F F F F F F F F F F F F		F 	Fs   A88A<	?A<	zyt-dlprJ   plugins zyt-dlp-pluginsc              3   0   K   | ]}|t           k    |V  d S r)   )rE   )r1   paths     r%   r3   z'default_plugin_paths.<locals>.<genexpr>j   s-      SS@R8R8R8R8R8R8RSSr$   )r   r   r
   rD   r   sysrQ   )rM   s    r%   default_plugin_pathsrS   Q   s0     F F F "! 	h	'	'		)	)   $         "!	b	!	! 
 	#	#   +	         TST38!4!4SSSSSSSSSSSSr$   c              #      K   t          |           }|                                st          d|           |                                E d {V  d S )NzInvalid plugin directory: )r   is_dir
ValueErrorrI   )	candidatecandidate_paths     r%   candidate_plugin_pathsrY   m   sg      )__N  "" HFnFFGGG%%'''''''''''r$   c                   ,    e Zd ZdZd Zd ZddZd ZdS )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                     i | _         t          t          j                            d |D                                 | _        d S )Nc              3   h   K   | ]-}t          j        |                    d           d           V  .dS ).c                 0    d                     | |f          S )Nr^   )join)abs     r%   <lambda>z1PluginFinder.__init__.<locals>.<genexpr>.<lambda>   s    388QPQFCSCS r$   N)r6   
accumulatesplit)r1   names     r%   r3   z(PluginFinder.__init__.<locals>.<genexpr>~   sQ       *& *& $TZZ__6S6STT*& *& *& *& *& *&r$   )_zip_content_cacher5   r6   r7   r8   packages)r*   rh   s     r%   __init__zPluginFinder.__init__{   sP    "$O)) *& *&$*& *& *& & &' 'r$   c              #     K   t           j                            d t          j        D                       }t          |                    d           }t          |d          D ]}||z  }	 |                                r|V  n2|j	        dv r)|
                                r|t          |          v r|V  T# t          $ r"}t          d|j         d           Y d }~{d }~ww xY wd S )Nc              3   \   K   | ]'}|d k    rt                      nt          |          V  (dS )defaultN)rS   rY   )r1   rW   s     r%   r3   z0PluginFinder.search_locations.<locals>.<genexpr>   sV       <
 <
 '09&<&< """BXYbBcBc<
 <
 <
 <
 <
 <
r$   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   s4     'o;; <
 <
(.<
 <
 <
 
 

 hnnS))*2>>> 		^ 		^DuI^##%% (#OOOO[$<<<<D 1 111'" ^ ^ ^\QZ\\\]]]]]]]]^		^ 		^s   +AB77
C#CC#Nc                    || j         vrd S t          t          t          |                     |                              }|st          |          t          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   s    4=((4C)>)>x)H)H I IJJ 	0%h///"--hSW-XX*:'r$   c                     t                                            | j        D ]}|t          j        v rt          j        |= d S r)   )r?   cache_clearrh   rR   modules)r*   packages     r%   invalidate_cacheszPluginFinder.invalidate_caches   sG    !!!} 	) 	)G#+%%K(	) 	)r$   )NN)r   r   r    r-   ri   rt   r   r   r#   r$   r%   r[   r[   t   sb         ' ' '^ ^ ^$   ) ) ) ) )r$   r[   c                      t          j        t                    5  t          j                            t                    x} r t          | j                  cd d d            S 	 d d d            n# 1 swxY w Y   g S r)   )	rF   rG   rx   ry   utilr   r   rw   r|   )r~   s    r%   r   r      s    		0	1	1 9 9>++L9994 	97889 9 9 9 9 9 9 9	99 9 9 9 9 9 9 9 9 9 9 9 9 9 9 Is   :A..A25A2c              #      K   t            d|  }t          j        t                    5  t	          j        |          }t          j        |j        | d          E d {V  d d d            d S # 1 swxY w Y   d S )Nr^   )rQ   prefix)	r   rF   rG   rx   ry   import_modulepkgutiliter_modules__path__)
subpackagerq   pkgs      r%   r   r      s      ----H		0	1	1 R R%h//'S\X...QQQQQQQQQQR R R R R R R R R R R R R R R R R Rs   9A..A25A2c                 <     t          j          fd          S )Nc                 ,   t          j        |           o| j                                      oe| j                                      oK| j                            d           o0| j        t          d| j        g          v o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L!!&))	6N%%k22	6 '',,,	6 LGFI~FFF		6
 C--5 r$   )r   
getmembers)r+   r   r   s   ```r%   get_regular_classesr      s:    f ' ' ' ' ' '   r$   plugin_specc           
         | j         | j        }}i }t          j                            d          st
          j        s|S t          |          D ]\  }}}t          d |	                    d          D                       r3	 |
                    |          }t          j                            |          }|t          j        |<   |j                            |           n8# t$          $ r+ t'          d|dt)          j        d                      Y w xY w|                    t/          |||                     dt
          j        v rt1          j        t4                    5  t          j                            |t9          t;                      t<          |d	                    }t          j                            |          }	|	t          j        |j        <   |j                            |	           |                    t/          |	|j        |                     d d d            n# 1 swxY w Y   || j         _        tC          || j"        j                  | j"        _        |S )
NYTDLP_NO_PLUGINSc              3   @   K   | ]}|                     d           V  dS )r   N)r   )r1   xs     r%   r3   zload_plugins.<locals>.<genexpr>   s.      AAQq||C  AAAAAAr$   r^   zError while importing module r4   )limitrl   z__init__.py)#r   r   osenvirongetr   rm   r   anyre   r   ry   r   module_from_specrR   r   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      s   *K,>&DO	z~~()) 1B ".t"4"4 Q QQAA+*;*;C*@*@AAAAA 			##K00D^44T::F'-CK$K##F++++ 	 	 	aaaAU\^A_A_A_aa   H		
 	26;OOPPPP
 K%%% !233 	T 	T>99(**,?}UU D  n55d;;G%,CK	"K##G,,,""#6w	6#R#RSSS	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T ,;K"($/AXA^$_$_K!s&   AC2DD#B8H''H+.H+c                  ~    t           j                                        D ]} t          |            dt          _        d S )NT)r	   rm   valuesr   r   r   s    r%   r   r      s@    #)0022 " "[!!!!#r$   c                     | j         t          j        vrR| t          j        | j         <   t          j                            dt          t           d| j                               d S d S )Nr   r^   )r   r	   rm   rR   	meta_pathinsertr[   r   r   s    r%   r   r      sb    l&8886A;23Q-X-X{?V-X-X Y YZZZZZ 98r$   )4rF   dataclasses	functoolsry   importlib.abcimportlib.machineryimportlib.utilr   r6   r   r   rR   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                                    				  



                                            % T(^^*    ! ! ! ! ! ! ! !    9='    	 	 	T T T8( ( (1) 1) 1) 1) 1)9=/ 1) 1) 1)h  R R R	 	 	(j ( ( ( (V$ $ $[j [ [ [ [ [ [r$   