Ë
    š„j   ã                   óþ  — 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jF                   G d
„ d«      «       Z$ G d„ dejJ                  jL                  «      Z'ejP                  d„ «       Z)d„ Z*d„ Z+ G d„ dejJ                  jX                  «      Z-d„ Z.d„ Z/d„ Z0de$fd„Z1d„ Z2de$fd„Z3y)é    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   © ó    úE/var/www/html/GAP/venv/lib/python3.12/site-packages/yt_dlp/plugins.pyr   r   5   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_module@   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>H   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?   D   s£   € ðKÜ�WÓð 	A Ü”y—‘×4Ñ4ñ 5@Ø/3¯}©}«ô5@ó @ó A÷	A÷ 	Añ 	Að ûô	 ò Øð ô ò KÜÐ8¸¸	ÀÀAÀ3ÀbÐ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_pathsR   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>j   s   è ø€ ÒS˜¸Ô@RÓ8R”ÑSùs   ‚‘)r   r   r
   rD   r   ÚsysrQ   )rM   s    r%   Údefault_plugin_pathsrS   Q   s²   è ø€ òFñ "ð Ü	˜hÓ	'ðä	 Ó	)òð $ñ÷ ð ñ "ÜÓðä	˜bÓ	!ðô 
  Ó	#òð +ñ	÷ ð ñ T¤¤T¬3¯8©8Ó!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   m   sA   è ø€ Ü˜)“_€NØ× Ñ Ô"ÜÐ5°nÐ5EÐ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   € À3Ç8Á8ÈQÐPQÈFÓCS€ r$   N)r6   Ú
accumulateÚsplit)r1   Únames     r%   r3   z(PluginFinder.__init__.<locals>.<genexpr>~   s.   è ø€ ò *&àô ×$Ñ$ T§Z¡Z°£_Ñ6S×Tñ*&ùs   ‚02)Ú_zip_content_cacher5   r6   r7   r8   Úpackages)r*   rh   s     r%   Ú__init__zPluginFinder.__init__{   s5   € Ø"$ˆÔÜÜ�O‰O×)Ñ)ñ *&à$ô*&ó &ó'ˆ�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/   è ø€ ò <
àð '0°9Ò&<Ô Ô"ÔBXÐYbÓBcÓ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Ñ   è ø€ Ü'Ÿo™o×;Ñ;ñ <
ä(×.Ñ.ô<
ó 
Ðô
 �h—n‘n SÓ)Ð*ˆÜÐ2¸Ô>ò 		^ˆDØ˜u™ˆIð^Ø×#Ñ#Ô%Ø#“OØ—[‘[Ð$<Ñ<ÀÇÁÄØ¤¨DÓ 1Ñ1Ø'šøñ		^øô #ò ^ÜÐLÈQÏZÉZÈLÐX[Ð\×]Ñ]ûð^ü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Øœ#Ÿ+™+Ò%Ü—K‘K Ñ(ñ	)r$   )NN)r   r   r    r-   ri   rt   r   r„   r#   r$   r%   r[   r[   t   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Ð9ˆ4Ð9Ü˜×7Ñ7Ó8÷9ñ 9Ø9÷9ð €I÷9ð €Iús   š: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¯\©\ÀXÀJÈaÀ.Ô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Ø�L‰L×!Ñ! &Ó)ò	6à�N‰N×%Ñ% kÓ2ò	6ð —‘×'Ñ'¨Ó,Ð,ò	6ð �L‰LœG F¨I¸¿¹°~Ó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                  j	                  d«      st
        j                  s|S t        |«      D ]£  \  }}}t        d„ |j                  d«      D «       «      rŒ)	 |j                  |«      }t        j                  j                  |«      }|t        j                  |<   |j                   j#                  |«       |j-                  t/        |||«      «       Œ¥ dt
        j                  v r×t1        j2                  t4        «      5  t        j                  j7                  |t9        t;        «       t<        |d	«      «      }t        j                  j                  |«      }	|	t        j                  |j>                  <   |j                   j#                  |	«       |j-                  t/        |	|j>                  |«      «       d d d «       || j@                  _        tC        || jD                  j                  «      | jD                  _        |S # t$        $ r) t'        d|›dt)        j*                  d¬«      › �«       Y �Œw 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   è ø€ ÒA Qˆq�|‰|˜C× ÑAùs   ‚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�z‡~�~Ð(Ô)´×1BÒ1BØÐä".¨tÓ"4ò QÑˆ�˜QÜÑA¨+×*;Ñ*;¸CÓ*@ÔAÔAØð		Ø×#Ñ# KÓ0ˆDÜ—^‘^×4Ñ4°TÓ:ˆFØ'-ŒC�K‰K˜Ñ$Ø�K‰K×#Ñ# FÔ+ð 	×ÑÔ2°6¸;ÈÓOÕPðQð$ ”K×%Ñ%Ñ%Ü× Ñ Ô!2Ó3ñ 	TÜ—>‘>×9Ñ9ØÜÔ(Ó*Ô,?ÀÀ}ÓUóˆDô  —n‘n×5Ñ5°dÓ;ˆGØ%,ŒC�K‰K˜Ÿ	™	Ñ"Ø�K‰K×#Ñ# GÔ,Ø×"Ñ"Ô#6°wÀÇ	Á	È6Ó#RÔS÷	Tð ,;€K×"Ñ"Ô(ä$/°À×AXÑAX×A^ÑA^Ó$_€K×ÑÔ!àÐøô5 ò 	ÜØ/°¨¸bÄ×AUÑAUÐ\^ÔA_Ð@`Ðaôò ð		ú÷	Tð 	Tús    ÂAH(Ä(B6IÈ(.IÉIÉI&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Ñ8Ø6AŒ×Ñ˜;×2Ñ2Ñ3Ü�‰×Ñ˜Q¤´¨~¸Q¸{×?VÑ?VÐ>WÐ-XÓ YÕZð 9r$   )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	  ðÛ Û Û Û Û Û Û Û Û Û 	Û Û 
Û Ý Ý ÷ó ÷÷ ð  €Ø%Ð Ù˜(“^×*Ñ*Ð ò€ð ×Ñ÷!ð !ó ð!ô�9—=‘=×'Ñ'ô ð ‡�ñ	ó ð	òTò8(ô1)�9—=‘=×/Ñ/ô 1)òhòRò	ð(˜jó (òV$ð[ jô [r$   