+
    =i"                    h   ^ RI Ht . ROt^ RIt^ RI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 ]'       d	   ^ RIHtHt ]	P4                  ! R	]	P6                  4      tR
t]P<                  ! R4      t ! R R] 4      t!R R lt"R R lt#RR R llt$ ! R R]4      t%R# )    )annotations	WheelFile
WheelErrorN)StringIOTextIOWrapper)IOTYPE_CHECKINGLiteral)ZIP_DEFLATEDZipFileZipInfo)SizedBufferStrPathz^(?P<namever>(?P<name>[^\s-]+?)-(?P<ver>[^\s-]+?))(-(?P<build>\d[^\s-]*))?
     -(?P<pyver>[^\s-]+?)-(?P<abi>[^\s-]+?)-(?P<plat>\S+)\.whl$i wheelc                      ] tR t^!tRtR# )r    N)__name__
__module____qualname____firstlineno____static_attributes__r       Blib/python3.14/site-packages/setuptools/_vendor/wheel/wheelfile.pyr   r   !   s    r   c                    V ^8  d   QhRRRR/#    databytesreturnr   )formats   "r   __annotate__r!   %   s     7 7E 7e 7r   c                L    \         P                  ! V 4      P                  R4      # )z!urlsafe_b64encode without padding   =)base64urlsafe_b64encoderstrip)r   s   &r   r%   r%   %   s    ##D)0066r   c                    V ^8  d   QhRRRR/# r   r   )r    s   "r   r!   r!   *   s     0 0E 0e 0r   c                z    R^\        V 4      ^,          ,
          ,          p\        P                  ! W,           4      # )z!urlsafe_b64decode without paddingr#   )lenr$   urlsafe_b64decode)r   pads   & r   r*   r*   *   s,    
!s4y1}%
&C##DJ//r   c                    V ^8  d   QhRRRR/# )r   	timestampzfloat | Noner   ztuple[int, int, int, int, int]r   )r    s   "r   r!   r!   0   s     ' ''#'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_datetimer9   0   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 R ltRtR# )r   zzA 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   filer   modezLiteral['r', 'w', 'x', 'a']compressionr1   r   )r    s   "r   r!   WheelFile.__annotate__A   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)r?   
allowZip64z{}.dist-infonameverz/RECORDr;   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)r2   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)selfr=   r>   r?   rN   recordlinerM   hash_sumsize	algorithms   &&&&       r   rS   WheelFile.__init__A   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 | ZipInfor>   zLiteral['r', 'w']pwdzbytes | Noner   z	IO[bytes]r   )r    s   "r   r!   r@   {   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   newdatar   r   Noner   )r    s   "r   r!   $WheelFile.open.<locals>.__annotate__   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   )rp   eofefef_nameexpected_hashrunning_hashupdate_crc_origs   & r   _update_crc#WheelFile.open.<locals>._update_crc   sQ    ''CG$(|**,= #;G9A!FGG >sr   r;   /zNo hash found for file 'rt   )
isinstancer   filenamerR   rW   r   r   rY   r^   r_   r~   )rc   rk   r>   rm   r~   rh   ry   rz   r{   r|   r}   s   &&&&  @@@@@r   rY   WheelFile.open{   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R/# )r   base_dirstrr   rq   r   )r    s   "r   r!   r@      s     & &C &D &r   c                	   \         P                  R V P                  V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 %r and adding %r to itr   z
.dist-infoN)loginfor   r2   walksortsortedrM   normpathjoinisfilerelpathreplaceseprV   rR   appendwrite)	rc   r   deferredrootdirnames	filenamesnamerM   arcnames	   &&       r   write_filesWheelFile.write_files   s   2DMM8L*,)+):%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 | Noner   rq   r   )r    s   "r   r!   r@      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)rY   r2   fstatfilenoreadr   r9   st_mtimestatS_IMODEst_modeS_IFMTexternal_attrr?   r   writestr)rc   r   r   r   fstr   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R/# )	r   zinfo_or_arcnamerl   r   zSizedBuffer | strr   r   r   rq   r   )r    s   "r   r!   r@      s2     0 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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  rE   z	adding %rrI   N)r   r   r   r9   r?   r   r   S_IFREGr   rb   r   r   r   r   r   rV   _default_algorithmr   r%   rw   decoderW   r)   rX   )rc   r   r   r   fnamehash_s   &&&&  r   r   WheelFile.writestr   s    &,,& ,@,B  .2-=-=*.3dll.Br-I*dC  ;;w'DE *G44 %%! 	
 	e$$$$++D1E

!%,,.188A(De$ '*$iDU# %r   c                   V ^8  d   QhRR/# )r   r   rq   r   )r    s   "r   r!   r@      s      t 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)rH   N)rX   ).0r   rh   r   rc   s   &   r   	<genexpr>"WheelFile.close.<locals>.<genexpr>   s9      5N11	 Oe3T5E5Ee5LM5Ns   58rD   )fpr>   rW   r   r[   writer	writerowsitemswriterowr    rV   r   getvaluer   close)rc   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   )rW   rX   rU   rQ   rV   )r;   NrJ   N)r   r   r   r   __doc__r^   sha256r   r   rS   rY   r   r   r   r   r   r   r   r   r   r   :   s@     !
 -0'	8t D&,2"0> r   )rO   r   r   r   )&
__future__r   __all__r$   r[   r^   loggingos.pathr2   rer   r5   ior   r   typingr   r	   r
   zipfiler   r   r   	_typeshedr   r   compileVERBOSErO   r7   	getLoggerr   	Exceptionr   r%   r*   r9   r   r   r   r   <module>r      s    "
6  
    	   & - - 2 2.
 

CJJ
   	 	7
0'w wr   