
    m&ph                     j   S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKrS SK	J
r
Jr  S SKJrJrJr  S SKJrJrJr  S SKJr  S SKJrJrJr  \(       a1  S SKJrJrJr  S S	KJr  \\\R@                  \   4   r! " S
 S\\\5      r"\RF                  " S\RH                  5      r%Sr&SSS jjr' " S S\5      r(g)    )annotationsN)StringIOTextIOWrapper)IOTYPE_CHECKINGLiteral)ZIP_DEFLATEDZipFileZipInfo)
WheelError)logurlsafe_b64decodeurlsafe_b64encode)ProtocolSizedUnion)Bufferc                      \ rS rSrSrg)SizedBuffer    N)__name__
__module____qualname____firstlineno____static_attributes__r       B/var/www/html/venv/lib/python3.13/site-packages/wheel/wheelfile.pyr   r      s    r   r   z^(?P<namever>(?P<name>[^\s-]+?)-(?P<ver>[^\s-]+?))(-(?P<build>\d[^\s-]*))?
     -(?P<pyver>[^\s-]+?)-(?P<abi>[^\s-]+?)-(?P<plat>\S+)\.whl$i c                    [        [        R                  R                  SU =(       d    [        R                  " 5       5      5      n [        U [        5      n [        R                  " U 5      SS $ )NSOURCE_DATE_EPOCHr      )intosenvirongettimemaxMINIMUM_TIMESTAMPgmtime)	timestamps    r   get_zipinfo_datetimer+   $   sL     BJJNN#6	8PTYY[QRII01I;;y!!A&&r   c                      \ rS rSrSr\R                  rS\4     SS jjr	  S       SS jjr
SS jr  S       SS jjr S     SS	 jjrS
 rSrg)	WheelFile,   zzA ZipFile derivative class that also reads SHA-256 hashes from
.dist-info/RECORD and checks any read files against those.
rc           	        [         R                  R                  U5      n[        R	                  U5      U l        UR                  S5      (       a  U R
                  c  [        SU< 35      e[        R                  " XX#SS9  SR                  U R
                  R                  S5      5      U l        U R                  S-   U l        0 U l        0 U l        US:X  Ga#  S	U R                  U R                  '   S	U R                  U R                  S
-   '   S	U R                  U R                  S-   '    U R!                  U R                  5      nU   [$        R&                  " [)        USSS95       H  nUu  pxn	U(       d  M  UR+                  S5      u  p [,        R.                  " U
5        U
R3                  5       S;   a  [        SU
 S35      eU
[5        UR7                  S5      5      4U R                  U'   M     S S S 5        g g ! ["         a    [        SU R                   S35      S ef = f! [0         a    [        SU
 35      S ef = f! , (       d  f       g = f)Nz.whlzBad wheel filename T)compression
allowZip64z{}.dist-infonameverz/RECORDr/   NNz.jwsz.p7szMissing z file utf-8)newlineencoding=zUnsupported hash algorithm: >   md5sha1zWeak hash algorithm (z) is not permitted by PEP 427ascii)r#   pathbasenameWHEEL_INFO_REmatchparsed_filenameendswithr   r
   __init__formatgroupdist_info_pathrecord_path_file_hashes_file_sizesopenKeyErrorcsvreaderr   splithashlibnew
ValueErrorlowerr   encode)selffilemoder1   r>   recordliner=   hash_sumsize	algorithms              r   rC   WheelFile.__init__3   sB    77##D),228<  ((D,@,@,H28,?@@TtT,33  &&y1
  ..:NP3;2<Dd../;EDd..78;EDd..78O4#3#34 JJ!&"wGD ,0(DD# *2..*='I$I. !(O;(3I; ?& '  ")(//'*BC/D%%d++    O 8D,<,<+=U!CD$NO & $(:9+F#$$ s2   ,G> 	AIH&$AI>%H#&I  I
INc                  ^^^^	^
 SUUUU	U
4S jjn[        U[        5      (       a  UR                  OUmUS:X  a5  TR                  S5      (       d  TU R                  ;  a  [        ST S35      e[        R                  " XX#5      mUS:X  aU  TR                  S5      (       d?  U R                  T   u  nmTb*  [        R                  " U5      m	TR                  Usm
Tl
        T$ )Nc                   > TR                   nT" U 5        TR                  U 5        U(       a$  TR                  5       T:w  a  [        ST S35      eg g )NzHash mismatch for file '')_eofupdatedigestr   )newdataeofefef_nameexpected_hashrunning_hashupdate_crc_origs     r   _update_crc#WheelFile.open.<locals>._update_crcs   sQ    ''CG$(|**,= #;G9A!FGG >sr   r/   /zNo hash found for file 'r_   )rc   bytesreturnNone)
isinstancer   filenamerB   rH   r   r
   rJ   rO   rP   rj   )rT   name_or_inforV   pwdrj   r[   re   rf   rg   rh   ri   s         @@@@@r   rJ   WheelFile.openm   s    	H 	H &0g%F%FL!!L 	 CK$$S))t0007yBCC\\$d83;w//44'+'8'8'A$I}(  '{{9524..+/	r   c                    [         R                  " SU R                   SU S35        / n[        R                  " U5       GH  u  p4nUR                  5         [        U5       H  n[        R                  R                  [        R                  R                  X65      5      n[        R                  R                  U5      (       d  Me  [        R                  R                  Xq5      R                  [        R                  R                  S5      nXR                  :X  a  M  UR                  S5      (       a  UR!                  Xx45        M  U R#                  Xx5        M     GM!     UR                  5         U H  u  pxU R#                  Xx5        M     g )Nz
creating 'z' and adding 'z' to itrl   z
.dist-info)r   inforq   r#   walksortsortedr=   normpathjoinisfilerelpathreplaceseprG   rB   appendwrite)	rT   base_dirdeferredrootdirnames	filenamesnamer=   arcnames	            r   write_filesWheelFile.write_files   s   :dmm_N8*GLM*,)+):%DI MMOy)ww''T(@A77>>$'' ggood=EEbggkkSVWG"2"22|44 8

41 *	 *; 	%MDJJt% &r   c                   [        US5       n[        R                  " UR                  5       5      nUR	                  5       nS S S 5        [        U=(       d    U[        WR                  5      S9n[        R                  " UR                  5      [        R                  " UR                  5      -  S-  Ul        U=(       d    U R                  Ul        U R                  UWU5        g ! , (       d  f       N= f)Nrb	date_time   )rJ   r#   fstatfilenoreadr   r+   st_mtimestatS_IMODEst_modeS_IFMTexternal_attrr1   compress_typewritestr)rT   rq   r   r   fstdatazinfos           r   r   WheelFile.write   s     (D!Q!((*%B668D " x+?+L
  $||BJJ7$++bjj:QQVXX+?t/?/?eT=1 "!s   5C''
C5c                   [        U[        5      (       a>  [        U[        5       S9nU R                  Ul        S[        R                  -  S-  Ul        [        U[        5      (       a  UR                  S5      n[        R                  " XX#5        [        U[        5      (       a  UR                  OUn[        R                  " SU S35        X@R                  :w  ak  U R!                  U5      nUR"                  [%        UR'                  5       5      R)                  S5      4U R*                  U'   [-        U5      U R.                  U'   g g )Nr   i  r   r6   zadding 'r_   r<   )rp   strr   r+   r1   r   r   S_IFREGr   rS   r
   r   rq   r   rv   rG   _default_algorithmr   r   rb   decoderH   lenrI   )rT   zinfo_or_arcnamer   r   fnamehash_s         r   r   WheelFile.writestr   s    &,,& ,@,B  .2-=-=*.3dll.Br-I*dC  ;;w'DE *G44 %%! 	
 	8E7!$%$$$++D1E

!%,,.188A(De$ '*$iDU# %r   c                  ^  T R                   b  T R                  S:X  a  T R                  (       a  [        5       n[        R
                  " USSSS9nUR                  U 4S jT R                  R                  5        5       5        UR                  [        T R                  5      SS45        T R                  T R                  UR                  5       5        [        R                  " T 5        g )Nw,"
)	delimiter	quotecharlineterminatorc              3  \   >#    U  H!  u  nu  p#XS -   U-   TR                   U   4v   M#     g7f)r9   N)rI   ).0r   r[   r   rT   s       r   	<genexpr>"WheelFile.close.<locals>.<genexpr>   s9      5N11	 Oe3T5E5Ee5LM5Ns   ),r5   )fprV   rH   r   rL   writer	writerowsitemswriterowrD   rG   r   getvaluer
   close)rT   r   r   s   `  r   r   WheelFile.close   s    77499#38I8I:DZZsSWXF595F5F5L5L5N OOVD$4$45r2>?MM$**DMMO<dr   )rH   rI   rF   rA   rG   )rU   StrPathrV   zLiteral['r', 'w', 'x', 'a']r1   r"   )r/   N)rr   str | ZipInforV   zLiteral['r', 'w']rs   zbytes | Nonern   z	IO[bytes])r   r   r4   )rq   r   r   z
str | Noner   
int | Nonern   ro   N)r   r   r   zSizedBuffer | strr   r   )r   r   r   r   __doc__rO   sha256r   r	   rC   rJ   r   r   r   r   r   r   r   r   r-   r-   ,   s     !
 -0'	88 *8 	8z #& 	 #     	 
 
 D&2 #$(	22 2 "	2
 
2* %)	0'0  0 "	0>r   r-   r   )r*   zfloat | None))
__future__r   rL   rO   os.pathr#   rer   r&   ior   r   typingr   r   r   zipfiler	   r
   r   	wheel.clir   
wheel.utilr   r   r   r   r   r   typing_extensionsr   r   PathLiker   r   compileVERBOSEr?   r(   r+   r-   r   r   r   <module>r      s    " 
   	   & - - 2 2   @ @--(CS))*G3eVX3
 

CJJ
  'w wr   