i^ddlmZddlZddlZddlZddlZddlZddlZddl m Z m Z ddl m Z mZmZddlmZmZmZddlmZddlmZmZmZer5ddl mZmZmZdd lmZeeej efZ!Gd d eeeZ"ej#d ej$Z%d Z&dddZ'GddeZ(dS)) annotationsN)StringIO TextIOWrapper)IO TYPE_CHECKINGLiteral) ZIP_DEFLATEDZipFileZipInfo) WheelError)logurlsafe_b64decodeurlsafe_b64encode)ProtocolSizedUnion)BufferceZdZdS) SizedBufferN)__name__ __module__ __qualname__t/builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib/python3.11/site-packages/setuptools/_vendor/wheel/wheelfile.pyrrsrrz^(?P(?P[^\s-]+?)-(?P[^\s-]+?))(-(?P\d[^\s-]*))? -(?P[^\s-]+?)-(?P[^\s-]+?)-(?P\S+)\.whl$i timestamp float | Nonecttjd|pt j}t |t }t j|ddS)NSOURCE_DATE_EPOCHr)intosenvirongettimemaxMINIMUM_TIMESTAMPgmtime)rs rget_zipinfo_datetimer)$sVBJNN#6 8PTY[[QQRRII011I ;y ! !!A# &&rcdeZdZdZejZdefd"d Z d#d$dZ d%dZ d&d'dZ d(d)d Z d!Z d S)* WheelFilezA ZipFile derivative class that also reads SHA-256 hashes from .dist-info/RECORD and checks any read files against those. rfileStrPathmodeLiteral['r', 'w', 'x', 'a'] compressionr!ctj|}t||_|dr|jtd|tj ||||dd |j d|_ |j dz|_ i|_i|_|dkrhd |j|j <d |j|j d z<d |j|j d z< ||j }n'#t"$rtd |j d dwxYw|5t%jt)|ddD]}|\}}} |s |d\} } t-j| n!#t0$rtd| dwxYw| dvrtd| d| t5|df|j|< ddddS#1swxYwYdSdS)Nz.whlzBad wheel filename T)r1 allowZip64z {}.dist-infonameverz/RECORDr,NNz.jwsz.p7szMissing z fileutf-8)newlineencoding=zUnsupported hash algorithm: >md5sha1zWeak hash algorithm (z) is not permitted by PEP 427ascii)r"pathbasename WHEEL_INFO_REmatchparsed_filenameendswithr r __init__formatgroupdist_info_path record_path _file_hashes _file_sizesopenKeyErrorcsvreaderrsplithashlibnew ValueErrorlowerrencode) selfr-r/r1r?recordliner>hash_sumsize algorithms rrDzWheelFile.__init__3s 7##D)),228<<  (( AD,@,H?8??@@ @tT{tTTTT,33  & &y 1 1   .:NP 3;;2H;N name_or_info str | ZipInfoLiteral['r', 'w']pwd bytes | Nonereturn IO[bytes]c d  fd }t|tr|jn||dkr1ds|jvrt dd t j|||||dkrJds5|j\}#tj | j |c _ S) Nnewdatabytesr`Nonecj}|||r+krtdddSdS)NzHash mismatch for file '')_eofupdatedigestr )rceofefef_name expected_hash running_hashupdate_crc_origs r _update_crcz#WheelFile.open.._update_crcssy'C OG $ $ $    ( ( ( H|**,, == !FG!F!F!FGGG H H==rr,/zNo hash found for file 'rg)rcrdr`re) isinstancer filenamerCrIr r rKrPrQrq) rUr[r/r^rqrZrlrmrnrorps @@@@@rrKzWheelFile.openms  H H H H H H H H H H&0 g%F%F XL ! !L  CKK$$S)) t000BBBBCC C \$ dC 8 8 3;;w//44;'+'8'A $I}( '{955 24.+/ rbase_dirstrctjd|jd|dg}tj|D]\}}}|t |D]}tjtj ||}tj |rtj || tjj d}||jkr|dr|||f|||||D]\}}|||dS)Nz creating 'z' and adding 'z' to itrrz .dist-info)r infortr"walksortsortedr>normpathjoinisfilerelpathreplaceseprHrCappendwrite) rUrudeferredrootdirnames filenamesnamer>arcnames r write_fileszWheelFile.write_filesss LdmLL8LLLMMM*,)+):): 2 2 %D(I MMOOOy)) 2 2w'' T4(@(@AA7>>$''2 goodH==EEbgkSVWWG$"222|442 w8888 4111 2  % & &MD' JJtW % % % % & &rrtr str | None compress_type int | Nonerect|d5}tj|}|}dddn #1swxYwYt |p|t |j}tj |j tj |j zdz|_ |p|j |_||||dS)Nrb date_time)rKr"fstatfilenoreadr r)st_mtimestatS_IMODEst_modeS_IFMT external_attrr1rwritestr)rUrtrrfstdatazinfos rrzWheelFile.writes (D ! ! Q!((**%%B6688D                 x+? +L+L    $|BJ77$+bj:Q:QQVXX+?t/? eT=11111s;AAAzinfo_or_arcnamerSizedBuffer | strct|tr@t|t}|j|_dt jzdz|_t|tr| d}tj ||||t|tr|j n|}tjd|d||jkrq||}|jt%|df|j|<t-||j|<dSdS)Nrirr7zadding 'rgr=)rsrvr r)r1rrS_IFREGrrTr rrtr rxrH_default_algorithmrrrjdecoderIlenrJ)rUrrrfnamehash_s rrzWheelFile.writestrsT & , , J& ,@,B,B    .2-=  *.3dl.Br-I  * dC  (;;w''D/}EEE*G44 "  % %!  $E$$$%%% D$ $ $++D11E !%,,..1188AA(D e $'*$iiD U # # # % $rcjljjdkrjrt}t j|ddd}|fdjD|tj ddf j | tjdS)Nw," ) delimiter quotecharlineterminatorc3PK|] \}\}}||dz|zj|fV!dS)r:N)rJ).0rrZrrUs r z"WheelFile.close..sX11 5IOe3T5Ee5LMrr6)fpr/rIrrMwriter writerowsitemswriterowrErHrgetvaluer close)rUrrs` rrzWheelFile.closes 7 49#3#38I#3::DZsSWXXXF   595F5L5L5N5N    OOVD$455r2> ? ? ? MM$*DMMOO < < < dr)r-r.r/r0r1r!)r,N)r[r\r/r]r^r_r`ra)rurvr5)rtrvrrrrr`reN)rr\rrrr)rrr__doc__rPsha256rr rDrKrrrrrrrr+r+,s! -0' 88888z#&     D&&&&2#$( 22222*%) 00000>rr+r)rr)) __future__rrMrPos.pathr"rerr%iorrtypingrrrzipfiler r r wheel.clir wheel.utilr rrrrrtyping_extensionsrrvPathLiker.rcompileVERBOSEr@r'r)r+rrrrs""""""  &&&&&&&&----------2222222222 @@@@@@@@@@4----------((((((CS))*G33333eVX333  CJ '''''wwwwwwwwwwr