+hgpddlmZddlZddlZddlZddlZddlZddlZddl m Z ddl m Z m Z ddlmZmZmZddlmZddlmZmZmZejdejZd Zd d ZGd d eZdS)) annotationsN) OrderedDict)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 _/home/jenkins/workspace/simtester-sanitize/venv/lib/python3.11/site-packages/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|_ t|_i|_|dkrud |j|j <d |j|j d z<d |j|j d z< ||j }n&#t$$rtd |j d wxYw|5t'jt+|ddD]}|\}}} |s |d\} } t/j| n #t2$rtd| wxYw| dvr"td | | t7|df|j|< ddddS#1swxYwYdSdS)Nz.whlzBad wheel filename T) compression allowZip64z {}.dist-infonameverz/RECORDrNNz.jwsz.p7szMissing z fileutf-8)newlineencoding=zUnsupported hash algorithm: >md5sha1z4Weak hash algorithm ({}) is not permitted by PEP 427ascii)rpathbasename WHEEL_INFO_REmatchparsed_filenameendswithr r__init__formatgroupdist_info_path record_pathr _file_hashes _file_sizesopenKeyErrorcsvreaderrsplithashlibnew ValueErrorlowerr encode) selffilemoder!r.recordliner-hash_sumsize algorithms rr3zWheelFile.__init__)s7##D)),228<<  (( AD,@,H?8??@@ @tT{tTTTT,33  & &y 1 1   .:'MM 3;;2._update_crc]sy'C OG $ $ $    ( ( ( H|**,, == !FG!F!F!FGGG H H==rr/zNo hash found for file 'rN) isinstancer filenamer2r8r rr:r?r@rY) rD name_or_inforFpwdrYrKrTrUrVrWrXs @@@@@rr:zWheelFile.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 itrZz .dist-info)r infor\rwalksortsortedr-normpathjoinisfilerelpathreplacesepr7r2appendwrite) rDbase_dirdeferredrootdirnames filenamesnamer-arcnames r write_fileszWheelFile.write_filesyss 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)r:rfstatfilenoreadr rst_mtimestatS_IMODEst_modeS_IFMT external_attrr! compress_typewritestr)rDr\rrrfstdatazinfos rrkzWheelFile.writes  (D ! ! Q!((**%%B6688D                 x+? +L+L    $|BJ77$+bj:Q:QQVXX+?t/? eT=11111s;AAAct|tr|d}tj||||t|t r|jn|}tjd|d||j krq| |}|j t| df|j|<t!||j|<dSdS)Nr&zadding 'rNr,)r[strrCrrr r\r r`r7_default_algorithmrqr rQdecoder8lenr9)rDzinfo_or_arcnamerrfnamehash_s rrzWheelFile.writestrs dC  (;;w''D/}EEE*G44 "  % %!  $E$$$%%% D$ $ $++D11E !%,,..1188AA(D e $'*$iiD U # # # % $rc,jjdkrjrt}t j|ddd}|fdjD|tj ddftj t}j |_d |_||t%jdS) Nw," ) delimiter quotecharlineterminatorc3PK|] \}\}}||dz|zj|fV!dS)r)N)r9).0rrKrrDs r z"WheelFile.close..sX11 5IOe3T5Ee5LMrr%rvi)fprFr8rr<writer writerowsitemswriterowr4r7r rr!rrrgetvaluerclose)rDrrrs` rrzWheelFile.closes 7 49#3#38I#3::DZsSWXXXF   595F5L5L5N5N    OOVD$455r2> ? ? ?D,8L8N8NOOOE"&"2E "-E  MM% 1 1 1 dr)rNr$N)__name__ __module__ __qualname____doc__r?sha256rrr3r:rsrkrrrrrr"s!"%<1111f:&&&, 2 2 2 20000&rrr) __future__rr<r?os.pathrrer}r collectionsriorrzipfilerrr wheel.clir wheel.utilr r r compileVERBOSEr/rrrrrrrs?""""""  ######&&&&&&&&2222222222 @@@@@@@@@@ CJ '''']]]]]]]]]]r