Ë
    —šãj–  ã                   ó0  — d dl m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 d dlmZ d dlmZmZmZmZmZmZ ej8                  dk\  r
d d	lmZ d
„ Znd„ Z ej@                  dejB                  «      Z"dd„Z# G d„ de«      Z$y)é    )Úprint_functionN)ÚOrderedDict)Úlog)ÚZIP_DEFLATEDÚZipInfoÚZipFile)Ú
WheelError)Úurlsafe_b64decodeÚ
as_unicodeÚnativeÚurlsafe_b64encodeÚas_bytesÚStringIO)é   )ÚTextIOWrapperc                 óD   — t        j                  t        | dd¬«      «      S )NÚ úutf-8)ÚnewlineÚencoding)ÚcsvÚreaderr   )Úfps    úZ/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/wheel/wheelfile.pyÚread_csvr      s   € Ü�z‰zœ-¨°BÀÔIÓJÐJó    c              #   óŒ   K  — t        j                  | «      D ]#  }|D �cg c]  }|j                  d«      ‘Œ c}–— Œ% y c c}w ­w)Nr   )r   r   Údecode)r   ÚlineÚcolumns      r   r   r      s:   è ø€ Ü—J‘J˜r“Nò 	>ˆDØ8<Ö=¨f�6—=‘= Õ)Ò=Ó=ñ	>ùÚ=ùs   ‚AŸ?·Azt^(?P<namever>(?P<name>.+?)-(?P<ver>.+?))(-(?P<build>\d[^-]*))?
     -(?P<pyver>.+?)-(?P<abi>.+?)-(?P<plat>.+?)\.whl$c                 ó°   — t        t        j                  j                  d| xs t	        j                  «       «      «      } t	        j
                  | «      dd S )NÚSOURCE_DATE_EPOCHr   é   )ÚintÚosÚenvironÚgetÚtimeÚgmtime)Ú	timestamps    r   Úget_zipinfo_datetimer+   #   s?   € ô ”B—J‘J—N‘NÐ#6¸	Ò8PÄTÇYÁYÃ[ÓQÓR€IÜ�;‰;�yÓ! ! AÐ&Ð&r   c                   óX   — e Zd ZdZej
                  Zdefd„Zd
d„Z	d„ Z
dd„Zdd„Zd	„ Zy)Ú	WheelFilez‚A ZipFile derivative class that also reads SHA-256 hashes from
    .dist-info/RECORD and checks any read files against those.
    Úrc                 óÂ  — t         j                  j                  |«      }t        j	                  |«      | _        |j                  d«      r| j
                  €t        dj                  |«      «      ‚t        j                  | |||d¬«       dj                  | j
                  j                  d«      «      | _        | j                  dz   | _        t        «       | _        i | _        |dk(  �rd	| j                  | j                  <   d	| j                  | j                  d
z   <   d	| j                  | j                  dz   <   	 | j#                  | j                  «      }|5  t'        |«      D ]Š  }|\  }}}	|sŒ|j)                  d«      \  }
}	 t+        j,                  |
«       |
j1                  «       dv rt        dj                  |
«      «      ‚|
t3        |j5                  d«      «      f| j                  |<   ŒŒ 	 d d d «       y y # t$        $ r% t        dj                  | j                  «      «      ‚w xY w# t.        $ r t        dj                  |
«      «      ‚w xY w# 1 sw Y   y xY w)Nz.whlzBad wheel filename {!r}T)ÚcompressionÚ
allowZip64z{}.dist-infoÚnameverz/RECORDr.   ©NNz.jwsz.p7szMissing {} fileú=zUnsupported hash algorithm: {}>   Úmd5Úsha1z4Weak hash algorithm ({}) is not permitted by PEP 427Úascii)r%   ÚpathÚbasenameÚWHEEL_INFO_REÚmatchÚparsed_filenameÚendswithr	   Úformatr   Ú__init__ÚgroupÚdist_info_pathÚrecord_pathr   Ú_file_hashesÚ_file_sizesÚopenÚKeyErrorr   ÚsplitÚhashlibÚnewÚ
ValueErrorÚlowerr
   Úencode)ÚselfÚfileÚmoder0   r9   Úrecordr   r8   Úhash_sumÚsizeÚ	algorithms              r   r?   zWheelFile.__init__1   sI  € Ü—7‘7×#Ñ# DÓ)ˆÜ,×2Ñ2°8Ó<ˆÔØ× Ñ  Ô(¨D×,@Ñ,@Ð,HÜÐ6×=Ñ=¸hÓGÓHÐHä×Ñ˜˜t T°{ÈtÕTà,×3Ñ3°D×4HÑ4H×4NÑ4NÈyÓ4YÓZˆÔØ×.Ñ.°Ñ:ˆÔÜ'›MˆÔØˆÔØ�3‹;à2<ˆD×Ñ˜d×.Ñ.Ñ/Ø;EˆD×Ñ˜d×.Ñ.°Ñ7Ñ8Ø;EˆD×Ñ˜d×.Ñ.°Ñ7Ñ8ðMØŸ™ 4×#3Ñ#3Ó4�ð ñ PÜ$ VÓ,ò P�DØ+/Ñ(�D˜( DÙ#Ø à*2¯.©.¸Ó*>Ñ'�I˜xð]ÜŸ™ IÔ.ð !—‘Ó(¨OÑ;Ü(ØRß#™V IÓ.ó0ð 0ð
 "Ô#4°X·_±_ÀWÓ5MÓ#Nð/P�D×%Ñ% dÒ+ñ!P÷Pð Pð øô ò MÜ Ð!2×!9Ñ!9¸$×:JÑ:JÓ!KÓLÐLðMûô &ò ]Ü(Ð)I×)PÑ)PÐQZÓ)[Ó\Ð\ð]ú÷Pð Pús1   Ä<G= Å,IÆH.ÆAIÇ=.H+È.$IÉIÉINc                 óÖ  ‡‡‡‡	‡
— dˆˆˆˆ	ˆ
fd„	}t        t        |t        «      r|j                  n|«      Š|dk(  rB‰j	                  d«      s1‰| j
                  vr#t        dj                  t        ‰«      «      «      ‚t        j                  | |||«      Š|dk(  rN‰j	                  d«      s=| j
                  ‰   \  }Š‰�)t        j                  |«      Š	‰j                  |cŠ
‰_        ‰S )Nc                 óÚ   •— |€‰j                   } ‰| «       n	 ‰| |«       ‰j                  | «       |r7‰j                  «       ‰k7  r#t        dj	                  t        ‰«      «      «      ‚y y )NzHash mismatch for file '{}')Ú_eofÚupdateÚdigestr	   r>   r   )ÚnewdataÚeofÚefÚef_nameÚexpected_hashÚrunning_hashÚupdate_crc_origs     €€€€€r   Ú_update_crcz#WheelFile.open.<locals>._update_crc^   sf   ø€ Øˆ{Ø—g‘g�Ù Õ(á ¨Ô-à×Ñ Ô(Ù�|×*Ñ*Ó,°Ò=Ü Ð!>×!EÑ!EÄfÈWÃoÓ!VÓWÐWð >ˆsr   r.   ú/zNo hash found for file '{}'©N)r   Ú
isinstancer   Úfilenamer=   rC   r	   r>   r   r   rE   rH   rI   r`   )rM   Úname_or_inforO   Úpwdr`   rS   r[   r\   r]   r^   r_   s         @@@@@r   rE   zWheelFile.open]   sÓ   ü€ ÷		Xñ 		Xô ´jÀÌwÔ6W˜\×2Ò2Ø".ó0ˆà�3Š;˜w×/Ñ/°Ô4¸È×HYÑHYÑ9YÜÐ:×AÑAÄ&ÈÃ/ÓRÓSÐSä�\‰\˜$ ¨d°CÓ8ˆØ�3Š;˜w×/Ñ/°Ô4Ø'+×'8Ñ'8¸Ñ'AÑ$ˆI�}ØÐ(ä&Ÿ{™{¨9Ó5�Ø24·.±.À+Ð/� ¤àˆ	r   c                 óú  — t        j                  d| j                  |«       g }t        j                  |«      D �]  \  }}}|j                  «        t        |«      D ]î  }t        j                  j                  t        j                  j                  ||«      «      }t        j                  j                  |«      sŒ`t        j                  j                  ||«      j                  t        j                  j                  d«      }|| j                  k(  rŒ¸|j                  d«      r|j!                  ||f«       ŒÝ| j#                  ||«       Œð �Œ |j                  «        |D ]  \  }}| j#                  ||«       Œ y )Nz#creating '%s' and adding '%s' to itra   z
.dist-info)ÚloggerÚinford   r%   ÚwalkÚsortÚsortedr8   ÚnormpathÚjoinÚisfileÚrelpathÚreplaceÚseprB   r=   ÚappendÚwrite)	rM   Úbase_dirÚdeferredÚrootÚdirnamesÚ	filenamesÚnamer8   Úarcnames	            r   Úwrite_fileszWheelFile.write_filesx   s  € Ü�‰Ð9¸4¿=¹=È(ÔSØˆÜ)+¯©°Ó):ó 	2Ñ%ˆD�(˜Ið �M‰MŒOÜ˜yÓ)ò 	2�Ü—w‘w×'Ñ'¬¯©¯©°T¸4Ó(@ÓA�Ü—7‘7—>‘> $Õ'Ü Ÿg™gŸo™o¨d°HÓ=×EÑEÄbÇgÁgÇkÁkÐSVÓW�GØ $×"2Ñ"2Ò2ØØŸ™ |Ô4Ø Ÿ™¨¨w¨Õ8àŸ
™
 4¨Õ1ò	2ð		2ð 	�‰ŒØ%ò 	&‰MˆD�'Ø�J‰J�t˜WÕ%ñ	&r   c                 óÒ  — t        |d«      5 }t        j                  |j                  «       «      }|j	                  «       }d d d «       t        |xs |t        j                  «      ¬«      }t        j                  |j                  «      t        j                  |j                  «      z  dz  |_        |xs | j                  |_        | j                  ||«       y # 1 sw Y   Œ�xY w)NÚrb©Ú	date_timeé   )rE   r%   ÚfstatÚfilenoÚreadr   r+   Úst_mtimeÚstatÚS_IMODEÚst_modeÚS_IFMTÚexternal_attrr0   Úcompress_typeÚwritestr)rM   rd   r{   r‹   ÚfÚstÚdataÚzinfos           r   rt   zWheelFile.writeŽ   s¯   € Ü�(˜DÓ!ð 	 QÜ—‘˜!Ÿ(™(›*Ó%ˆBØ—6‘6“8ˆD÷	ô ˜Ò+ 8Ô7KÈBÏKÉKÓ7XÔYˆÜ#Ÿ|™|¨B¯J©JÓ7¼$¿+¹+ÀbÇjÁjÓ:QÑQÐVXÑXˆÔØ+Ò?¨t×/?Ñ/?ˆÔØ�‰�e˜T =Õ1÷	ð 	ús   �4CÃC&c                 ó„  — t        j                  | |||«       t        |t        «      r|j                  n|}t        j                  d|«       || j                  k7  re| j                  |«      }|j                  t        t        |j                  «       «      «      f| j                  |<   t        |«      | j                  |<   y y )Nzadding '%s')r   rŒ   rc   r   rd   rh   ri   rB   Ú_default_algorithmrz   r   r   rX   rC   ÚlenrD   )rM   Úzinfo_or_arcnameÚbytesr‹   ÚfnameÚhash_s         r   rŒ   zWheelFile.writestr˜   s¢   € Ü×Ñ˜Ð/°¸ÔFÜ.8Ð9IÌ7Ô.SÐ!×*Ò*Ø&ð 	ä�‰�M 5Ô)Ø�D×$Ñ$Ò$Ø×+Ñ+¨EÓ2ˆEØ',§z¡z´6Ô:KÈEÏLÉLËNÓ:[Ó3\Ð'\ˆD×Ñ˜eÑ$Ü&)¨%£jˆD×Ñ˜UÒ#ð %r   c                 óJ  ‡ — ‰ j                   �� ‰ j                  dk(  rñ‰ j                  råt        «       }t	        j
                  |ddd¬«      }|j                  ˆ fd„‰ j                  j                  «       D «       «       |j                  t        ‰ j                  «      ddf«       t        t        ‰ j                  «      t        «       ¬«      }‰ j                  |_        d	|_        ‰ j#                  |t%        |j'                  «       «      «       t)        j*                  ‰ «       y )
NÚwú,ú"ú
)Ú	delimiterÚ	quotecharÚlineterminatorc              3   óZ   •K  — | ]"  \  }\  }}||d z   |z   ‰j                   |   f–— Œ$ y­w)r4   N)rD   )Ú.0r–   rS   r—   rM   s       €r   ú	<genexpr>z"WheelFile.close.<locals>.<genexpr>§   sC   øè ø€ ò ñ .�EÑ-˜I uð	 Ø ‘O eÑ+Ø×$Ñ$ UÑ+ôñùs   ƒ(+r   r   i  ´)r   rO   rC   r   r   ÚwriterÚ	writerowsÚitemsÚwriterowr>   rB   r   r   r+   r0   r‹   rŠ   rŒ   r   Úgetvaluer   Úclose)rM   r�   r£   r�   s   `   r   r¨   zWheelFile.close¢   sÞ   ø€ à�7‰7Ñ 4§9¡9°Ò#3¸×8IÒ8IÜ“:ˆDÜ—Z‘Z °¸sÐSWÔXˆFØ×Ñó ð 26×1BÑ1B×1HÑ1HÓ1Jôô ð �O‰OœV D×$4Ñ$4Ó5°r¸2Ð>Ô?ÜœF 4×#3Ñ#3Ó4Ô@TÓ@VÔWˆEØ"&×"2Ñ"2ˆEÔØ"-ˆEÔØ�M‰M˜%¤¨$¯-©-«/Ó!:Ô;ä�‰�dÕr   )r.   Nr3   rb   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__rH   Úsha256r’   r   r?   rE   r|   rt   rŒ   r¨   © r   r   r-   r-   *   s8   „ ñð !Ÿ™Ðà"%°<ó *PóXò6&ó,2ó1ór   r-   rb   )%Ú
__future__r   r   rH   Úos.pathr%   Úrer†   Úsysr(   Úcollectionsr   Ú	distutilsr   rh   Úzipfiler   r   r   Ú	wheel.clir	   Ú
wheel.utilr
   r   r   r   r   r   Úversion_infoÚior   r   ÚcompileÚVERBOSEr:   r+   r-   r®   r   r   ú<module>r¼      s   ðÝ %ã 
Û Û Û 	Û Û 
Û Ý #Ý #ß 2Ñ 2å  ß c× cà×Ñ�tÒÝ óKò>ð �—
‘
ð9à‡J�Jó€ó'ôK�õ Kr   