+
    SBi                        ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	H
t
Ht ^ RIHtHtHt ^ RIHtHtHt ^ RIHt ^ RIHtHtHt ]'       d:   ^ RIHtHtHt ^ R	IHt ]]]P@                  ],          3,          t! ! R
 R]]]4      t"]PF                  ! R]PH                  4      t%Rt&RR R llt' ! R R]4      t(R# )    )annotationsN)StringIOTextIOWrapper)IOTYPE_CHECKINGLiteral)ZIP_DEFLATEDZipFileZipInfo)
WheelError)logurlsafe_b64decodeurlsafe_b64encode)ProtocolSizedUnion)Bufferc                      ] tR t^tRtR# )SizedBuffer N)__name__
__module____qualname____firstlineno____static_attributes__r       4/usr/lib/python3.14/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                   V ^8  d   QhRR/# )   	timestampzfloat | Noner   )formats   "r   __annotate__r"   $   s     ' 'L 'r   c                    \        \        P                  P                  R T ;'       g    \        P                  ! 4       4      4      p \        V \        4      p \        P                  ! V 4      R,          # )SOURCE_DATE_EPOCH:r      N)intosenvirongettimemaxMINIMUM_TIMESTAMPgmtime)r    s   &r   get_zipinfo_datetimer.   $   sM     BJJNN#6	8P8PTYY[QRII01I;;y!#&&r   c                      ] tR t^,tRt]P                  tR]3R R llt	RR R llt
R R	 ltRR
 R lltRR R lltR tRtR# )	WheelFilezzA ZipFile derivative class that also reads SHA-256 hashes from
.dist-info/RECORD and checks any read files against those.
rc               $    V ^8  d   QhRRRRRR/# )r   fileStrPathmodezLiteral['r', 'w', 'x', 'a']compressionr&   r   )r!   s   "r   r"   WheelFile.__annotate__3   s(     8 88 *8 	8r   c           
     	   \         P                  P                  V4      p\        P	                  V4      V n        VP                  R 4      '       d   V P
                  f   \        RV: 24      h\        P                  ! WW#RR7       RP                  V P
                  P                  R4      4      V n        V P                  R,           V n        / V n        / V n        VR8X  Ed:   RV P                  V P                  &   RV P                  V P                  R	,           &   RV P                  V P                  R
,           &    V P!                  V P                  4      pT;_uu_ 4        \$        P&                  ! \)        TRRR7      4       F  pTw  rxp	T'       g   K  TP+                  R4      w  r \,        P.                  ! T
4       T
P3                  4       R9   d   \        RT
 R24      hT
\5        TP7                  R4      4      3T P                  T&   K  	  RRR4       R# R#   \"         d    \        RT P                   R24      Rhi ; i  \0         d    \        RT
 24      Rhi ; i  + '       g   i     R# ; i)z.whlNzBad wheel filename T)r6   
allowZip64z{}.dist-infonameverz/RECORDr1   z.jwsz.p7szMissing z file utf-8)newlineencoding=zUnsupported hash algorithm: zWeak hash algorithm (z) is not permitted by PEP 427asciiNN>   md5sha1)r'   pathbasenameWHEEL_INFO_REmatchparsed_filenameendswithr   r
   __init__r!   groupdist_info_pathrecord_path_file_hashes_file_sizesopenKeyErrorcsvreaderr   splithashlibnew
ValueErrorlowerr   encode)selfr3   r5   r6   rE   recordlinerD   hash_sumsize	algorithms   &&&&       r   rJ   WheelFile.__init__3   sF    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   >H #AI&,IAI&&II#	#I&&I7	Nc               (    V ^8  d   QhRRRRRRRR/# )	r   name_or_infostr | ZipInfor5   zLiteral['r', 'w']pwdzbytes | Nonereturnz	IO[bytes]r   )r!   s   "r   r"   r7   m   s2        #     	 
 
 r   c                	  aaaa	a
 R  VVVV	V
3R llp\        V\        4      '       d   VP                  MToVR8X  d8   SP                  R4      '       g!   SV P                  9  d   \        RS R24      h\        P                  ! WW#4      oVR8X  d\   SP                  R4      '       gE   V P                  S,          w  poSe+   \        P                  ! V4      o	SP                  Vuo
Sn
        S# )c                    V ^8  d   QhRRRR/# )r   newdatabytesre   Noner   )r!   s   "r   r"   $WheelFile.open.<locals>.__annotate__s   s     	H 	H 	H4 	Hr   c                   < SP                   pS! V 4       SP                  V 4       V'       d'   SP                  4       S8w  d   \        R S R24      hR# R# )zHash mismatch for file ''N)_eofupdatedigestr   )rh   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   r1   /zNo hash found for file 'rm   )
isinstancer   filenamerI   rN   r   r
   rP   rU   rV   rw   )rZ   rb   r5   rd   rw   r_   rr   rs   rt   ru   rv   s   &&&&  @@@@@r   rP   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                   V ^8  d   QhRR/# )r   base_dirstrr   )r!   s   "r   r"   r7      s     & &C &r   c                	(   \         P                  ! R V P                   RV R24       . p\        P                  ! V4       EF!  w  r4pVP                  4        \        V4       F  p\        P                  P                  \        P                  P                  W64      4      p\        P                  P                  V4      '       g   Kf  \        P                  P                  Wq4      P                  \        P                  P                  R4      pWP                  8X  d   K  VP                  R4      '       d   VP!                  Wx34       K  V P#                  Wx4       K  	  EK$  	  VP                  4        V F  w  rxV P#                  Wx4       K  	  R# )z
creating 'z' and adding 'z' to itry   z
.dist-infoN)r   infor{   r'   walksortsortedrD   normpathjoinisfilerelpathreplaceseprM   rI   appendwrite)	rZ   r~   deferredrootdirnames	filenamesnamerD   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               (    V ^8  d   QhRRRRRRRR/# )	r   r{   r   r   z
str | Nonecompress_type
int | Nonere   rj   r   )r!   s   "r   r"   r7      s2     2 22 2 "	2
 
2r   c                	    \        VR 4      ;_uu_ 4       p\        P                  ! VP                  4       4      pVP	                  4       pRRR4       \        T;'       g    T\        XP                  4      R7      p\        P                  ! VP                  4      \        P                  ! VP                  4      ,          ^,          Vn        T;'       g    V P                  Vn        V P                  VXV4       R#   + '       g   i     L; i)rbN	date_time)rP   r'   fstatfilenoreadr   r.   st_mtimestatS_IMODEst_modeS_IFMTexternal_attrr6   r   writestr)rZ   r{   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==D	c               $    V ^8  d   QhRRRRRR/# )r   zinfo_or_arcnamerc   r   zSizedBuffer | strr   r   r   )r!   s   "r   r"   r7      s(     0 0'0  0 "	0r   c                	   \        V\        4      '       dJ   \        V\        4       R 7      pV P                  Vn        R\        P                  ,          ^,          Vn        \        V\        4      '       d   VP                  R4      p\        P                  ! WW#4       \        V\        4      '       d   VP                  MTp\        P                  ! RV R24       W@P                  8w  dm   V P!                  V4      pVP"                  \%        VP'                  4       4      P)                  R4      3V P*                  V&   \-        V4      V P.                  V&   R# R# )r   i  r<   zadding 'rm   r@   N)rz   r   r   r.   r6   r   r   S_IFREGr   rY   r
   r   r{   r   r   rM   _default_algorithmr   r   rp   decoderN   lenrO   )rZ   r   r   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                	  a  S P                   e   S P                  R8X  d   S P                  '       d   \        4       p\        P
                  ! VRRRR7      pVP                  V 3R lS P                  P                  4        4       4       VP                  \        S P                  4      RR34       S P                  S P                  VP                  4       4       \        P                  ! S 4       R # )Nw,"
)	delimiter	quotecharlineterminatorc              3  t   <"   T F-  w  pw  r#WR ,           V,           SP                   V,          3x  K/  	  R# 5i)r?   N)rO   ).0r   r_   r   rZ   s   &   r   	<genexpr>"WheelFile.close.<locals>.<genexpr>   s9      5N11	 Oe3T5E5Ee5LM5Ns   58r;   )fpr5   rN   r   rR   writer	writerowsitemswriterowr!   rM   r   getvaluer
   close)rZ   r   r   s   f  r   r   WheelFile.close   s    77499#38I8I8I:DZZsSWXF595F5F5L5L5N OOVD$4$45r2>?MM$**DMMO<dr   )rN   rO   rL   rH   rM   )r1   NrA   N)r   r   r   r   __doc__rU   sha256r   r	   rJ   rP   r   r   r   r   r   r   r   r   r0   r0   ,   s;     !
 -0'	8t D&,2"0>r   r0   r   ))
__future__r   rR   rU   os.pathr'   rer   r*   ior   r   typingr   r   r   zipfiler	   r
   r   	wheel.clir   
wheel.utilr   r   r   r   r   r   typing_extensionsr   r   PathLiker4   r   compileVERBOSErF   r,   r.   r0   r   r   r   <module>r      s    " 
   	   & - - 2 2   @ @--(CS))*G3eVX3
 

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