\bgddlmZddlZddlZddlZddlZddlZddlZddl m Z m Z ddl m Z mZmZddlmZddlmZmZmZejdejZdZd d ZGd d eZdS) ) annotationsN)StringIO TextIOWrapper) ZIP_DEFLATEDZipFileZipInfo) WheelError)logurlsafe_b64decodeurlsafe_b64encodez^(?P(?P[^\s-]+?)-(?P[^\s-]+?))(-(?P\d[^\s-]*))? -(?P[^\s-]+?)-(?P[^\s-]+?)-(?P\S+)\.whl$icttjd|pt j}t |t }t j|ddS)NSOURCE_DATE_EPOCHr)intosenvirongettimemaxMINIMUM_TIMESTAMPgmtime) timestamps s/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/setuptools/_vendor/wheel/wheelfile.pyget_zipinfo_datetimersVBJNN#6 8PTY[[QQRRII011I ;y ! !!A# &&cPeZdZdZejZdefdZd dZ dZ d dZ d dZ d Z dS) WheelFilezA ZipFile derivative class that also reads SHA-256 hashes from .dist-info/RECORD and checks any read files against those. rctj|}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) compression allowZip64z {}.dist-infonameverz/RECORDrNNz.jwsz.p7szMissing z fileutf-8)newlineencoding=zUnsupported hash algorithm: >md5sha1zWeak hash algorithm (z) is not permitted by PEP 427ascii)rpathbasename WHEEL_INFO_REmatchparsed_filenameendswithr r__init__formatgroupdist_info_path record_path _file_hashes _file_sizesopenKeyErrorcsvreaderrsplithashlibnew ValueErrorlowerr encode) selffilemoder r-recordliner,hash_sumsize algorithms rr2zWheelFile.__init__(s7##D)),228<<  (( AD,@,H?8??@@ @tT{tTTTT,33  & &y 1 1   .: 3;;2H;Nc  fd}t|tr|jn||dkr1ds|jvrt ddt j|||||dkrJds5|j\}#tj | j |c _ S)Ncj}|||r+krtdddSdS)NzHash mismatch for file '')_eofupdatedigestr )newdataeofefef_name expected_hash running_hashupdate_crc_origs r _update_crcz#WheelFile.open.._update_crc^sy'C OG $ $ $    ( ( ( H|**,, == !FG!F!F!FGGG H H==rr/zNo hash found for file 'rM) isinstancerfilenamer1r7r rr9r>r?rX) rC name_or_inforEpwdrXrJrSrTrUrVrWs @@@@@rr9zWheelFile.open]s 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.+/ rctjd|jd|dg}tj|D]\}}}|t |D]}tjtj ||}tj |rtj || tjj d}||jkr|dr|||f|||||D]\}}|||dS)Nz creating 'z' and adding 'z' to itrYz .dist-info)r infor[rwalksortsortedr,normpathjoinisfilerelpathreplacesepr6r1appendwrite) rCbase_dirdeferredrootdirnames filenamesnamer,arcnames r write_fileszWheelFile.write_fileszss LdmLL8LLLMMM)+):): 2 2 %D(I MMOOOy)) 2 2w'' T4(@(@AA7>>$''2 goodH==EEbgkSVWWG$"222|442 w8888 4111 2  % & &MD' JJtW % % % % & &rct|d5}tj|}|}dddn #1swxYwYt |p|t |j}tj |j tj |j zdz|_ |p|j |_||||dS)Nrb date_time)r9rfstatfilenoreadrrst_mtimestatS_IMODEst_modeS_IFMT external_attrr compress_typewritestr)rCr[rqrfstdatazinfos rrjzWheelFile.writes  (D ! ! Q!((**%%B6688D                 x+? +L+L    $|BJ77$+bj:Q:QQVXX+?t/? eT=11111s;AAAct|tr@t|t}|j|_dt jzdz|_t|tr| d}tj ||||t|tr|j n|}tjd|d||jkrq||}|jt%|df|j|<t-||j|<dSdS)Nruirwr%zadding 'rMr+)rZstrrrr rr|S_IFREGrrBrrr[r r_r6_default_algorithmrpr rPdecoder7lenr8)rCzinfo_or_arcnamerrfnamehash_s rrzWheelFile.writestrsR & , , 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)r8).0rrJrrCs r z"WheelFile.close..sX11 5IOe3T5Ee5LMrr$)fprEr7rr;writer writerowsitemswriterowr3r6rgetvaluerclose)rCrrs` rrzWheelFile.closes 7 49#3#38I#3::DZsSWXXXF   595F5L5L5N5N    OOVD$455r2> ? ? ? MM$*DMMOO < < < dr)rNr#N)__name__ __module__ __qualname____doc__r>sha256rrr2r9rrrjrrrrrr!s!"%<3333j:&&&, 2 2 2 200004rrr) __future__rr;r>os.pathrrer|riorrzipfilerrr wheel.clir wheel.utilr r r compileVERBOSEr.rrrrrrrs-""""""  &&&&&&&&2222222222 @@@@@@@@@@ CJ ''''ccccccccccr