bg9dZddlZddlZddlZddlZddlZddlmZmZddlm Z ddl m Z ddl m Z ddlmZmZddlmZdd lmZdd lmZdd lmZdd lmZdd lmZddlmZddlm Z edZ!edZ"edZ#edZ$dZ%dZ&dZ'dZ(dZ)dZ*GddZ+GddZ,d Z-d!Z.d"Z/d#Z0d$Z1iZ2d%Z3d&Z4d'Z5d(Z6gd)Z7dS)*z' Periodically update bundled versions. N)datetime timedelta)groupby)Path)copy2)PIPEPopen)dedent)Thread)URLError)urlopen)AppDataDiskFolder)CREATE_NO_WINDOW)BUNDLE_SUPPORT)Wheel)hours)daysc(|rt|||||tjfd}t||} |t | jdD]\} } t| } tfd| D} | D]Q}|(t|j j |j kr|ccS| | r||ccSRn'| jD]}|j j|kr ||cS |S)Ncttj|jz }tjd|rdnd||S)Nzusing %supdated wheel %sz periodically )rhousefilenameloggingdebug)ver updated_wheelapp_datas w/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/virtualenv/seed/wheels/periodic_update.py _update_wheelz&periodic_update.._update_wheel's?hns|;<<  0]2Z//XZ\ijjjc*|jjddS)Nrr)wheel version_tuple)vs r"z!periodic_update...sag>STUVWTW>Xr$)keyc3FK|]}||VdSN)use).0versionnows r" z"periodic_update..1s8+c+cRYR]R]^aRbRb+cG+c+c+c+c+c+cr$)handle_auto_updaterr0 UpdateLog from_app_datarversionslistanyrrnamer-r&r/) distribution of_versionfor_py_versionr& search_dirsr!do_periodic_updateenvr#u_log_group all_patchesignore_grace_period_minorr/r0s ` @r"periodic_updaterD!s\< XWZ[[[ ,..C  # #HlN K KE4X4XYYY 2 2HAuu++K(++c+c+c+c;+c+c+c(c(c %& 2 2$g.>)?)?)D )R)R LLLLL;;s$=>>2(=11111112 2  2~ . .G}$ 22$}W-----3 Lr$c T|||}t|}|jr^d|_t j|_| | t|||||d|dSdS)NT)periodicr>) embed_update_logr3 from_dictread needs_updaterFrr0startedwriteto_dicttrigger_update)r9r;r&r<r!r>rGr?s r"r2r2?s00~NN    0 5 5 7 7 8 8E k  u}}///|^UK\`fijjjjjj kkr$c,|j|}tjdj|jt |}tfd|j Dr"tj dj|jdStjtjdd}|j |||dS)Nzadding %s information to %sc38K|]}|jjkVdSr,)rr8)r.r/r&s r"r1z*add_wheel_to_update_log..Ms- H Hg7 uz ) H H H H H Hr$z%s already present in %sdownload)rGr9rrr8filer3rHrIr7r5warning NewVersionrr0appendrLrM)r&r;r!rGr?r/s` r"add_wheel_to_update_logrVIs001C^TT M/=M=RSSS    0 5 5 7 7 8 8E H H H H H H HHH2EJ@P@UVVVX\^^T:FFG N'"""5==??+++++r$z%Y-%m-%dT%H:%M:%S.%fZc>|dn|tSr,)strftime DATETIME_FMTvalues r" dump_datetimer\Ys=44enn\&B&BBr$c>|dntj|tSr,)rstrptimerYrZs r" load_datetimer_]s=44h&7|&L&LLr$c`eZdZdZedZdZd dZdZdZ dZ e d Z d S) rTc>||_||_||_||_dSr,r found_date release_datesource)selfrrcrdres r"__init__zNewVersion.__init__bs#  $( r$c||dt|dt|d|dS)Nrrcrdrerb)r_cls dictionarys r"rHzNewVersion.from_dicthsKs +$Z %=>>&z.'ABBh'     r$cl|jt|jt|j|jdS)Nrrdrcre)rr\rdrcrerfs r"rMzNewVersion.to_dictqs6 )$*;<<'88k    r$Fc|jdkrdS|jdkr5|j|tz ks|r |s|jp|j}||z tkSdSdS)NmanualTrFF)rercGRACE_PERIOD_CIrdGRACE_PERIOD_MINOR)rfr0rCignore_grace_period_ci compare_froms r"r-zNewVersion.useysl ;( " "4 [J & &!666:P60D#'#4#GL-1CCCtur$c `|jjd|jd|jd|jd|jd S)Nz (filename=z), found_date=z, release_date=z , source=)) __class____name__rrcrdrerns r"__repr__zNewVersion.__repr__sd~& G G$- G Gt G G - G G8<  G G G r$c~ttkotfddDS)Nc3\K|]&}t|t|kV'dSr,)getattr)r.kotherrfs r"r1z$NewVersion.__eq__..sM1 1 67GD!  q 1 1 11 1 1 1 1 1 r$rm)typeallrfr~s``r"__eq__zNewVersion.__eq__sYDzzT%[[( S1 1 1 1 1 ;o1 1 1 . .  r$c||k Sr,rs r"__ne__zNewVersion.__ne__sEM""r$cDtt|jSr,)rrrrns r"r&zNewVersion.wheelsT$-(()))r$N)FF) rx __module__ __qualname__rg classmethodrHrMr-ryrrpropertyr&rr$r"rTrTas   [              ###**X***r$rTcbeZdZdZedZedZdZedZ dZ dS)r3c>||_||_||_||_dSr,)rK completedr5rF)rfrKrr5rFs r"rgzUpdateLog.__init__s" "    r$c |i}|t|dt|dd|dgD|dS)NrKrcBg|]}t|Sr)rTrHr.r(s r" z'UpdateLog.from_dict..s& M M MZ ! !! $ $ M M Mr$r5rF)r_getris r"rHzUpdateLog.from_dicts}  Js *..33 4 4 *..55 6 6 M MjnnZ.L.L M M M NN: & &    r$c||||}||Sr,)rGrIrH)rjr!r9r;raw_jsons r"r4zUpdateLog.from_app_datas5,,\>JJOOQQ}}X&&&r$ct|jt|j|jd|jDdS)Nc6g|]}|Sr)rM)r.rs r"rz%UpdateLog.to_dict..s <<<<< !$$S)) )T^#}44u$$S)) )r$c:|jdup||jz tkSr,)rKUPDATE_ABORTED_DELAYrs r"rzUpdateLog._check_starts!|t#PsT\'9.sIfIfIfUV#a&&IfIfIfr$"_VIRTUALENV_PERIODIC_UPDATE_INLINE1)stdoutstderrwin32 creationflagszWtriggered periodic upgrade of %s%s (for python %s) via background process having PID %drz==)rpathsys executabler stripformatrrplatformrr rinfor/pid communicate) r9r;r&r<r!r>rF wheel_pathcmdrpipekwargsprocesss r"rNrNs<C OOJ        nj#h--IfIfZeIfIfIfhp q q C GG8 9 9S @E "44dD - -F 3S\W,,"2C""6""G Lam!5em!5!5  r$cd} t||||||}tjd|||n#tjd|||wxYw|S)Nzdone %s %s with %s)_run_do_updaterr)r9r;embed_filenamer!r<rFr5s r" do_updatersbHT!(L..Zbdopp *L.(SSSS *L.(SSSS Os 0A c Bddlm}|dnt|}|dnt|j}t |t rt|n|}d|D}|j} | ||} t | } tj} gg}} | jD]6}|jdvr| |!||7|rd}nd}| r || d_|H| |jz }|s*t)t |t | ddgt+f\}}}||| dstj}|||dnd ||||| t0j }|| r| dj|jkrnt7|j}t;|jj||| }t=jd |tj|z || |j|j!}|j"}| ||jkrn||| d|| _#| j#s| | _$fd |D}|| z|z| _tj| _%| &| '|S)Nr)acquirecZg|](}t|trt|n|)Sr) isinstancerrrs r"rz"_run_do_update..s1MMMAjC0074777aMMMr$>rprFrFrpT)rs<)r9 version_specr;r<r! to_folderr>rmzdetected %s in %sc&g|] }|jv |Sr)r)r.r/ filenamess r"rz"_run_do_update..)s'aaa'w?OW`?`?`g?`?`?`r$)(virtualenv.seed.wheelsrrrr'rrrrrGr3rHrIrr0r5rerUr8existsrsetr-download_wheelosenvironrrelease_date_for_wheel_pathrrTrraddr&r/rFrKrrLrM)r!r9rr;rFr<rwheel_filename embed_version wheelhouserGr?r0update_versionsother_versionsr/redestlast last_versionr5 download_timerd last_wheelrs @r"rrsI......+3TTn9M9MN*2DDn8M8M8[M.83.G.GU ***XHMMMMMKJ00~NN    0 5 5 7 7 8 8E ,..C&("^O>++ >3 3 3  " "7 + + + +  ! !' * * * */  /(.OA  %!N//{{}} 8 #n%%s: 7 7 7.2D"cee.C+D,) ,dhhs4hHH,  %%%!-!5;M|;M;M)#  &    Yfouvvv ($ 0NOOO dm$$$Z !)  $ 888- ,dhhs4hHH,.EN > aaaa^aaaN/.@ENlnnEO5==??+++ Or$ct|}t|j}|b |d|jdd}t j|dS#t $r }tjd||Yd}~nd}~wwxYwdS)Nreleasesr upload_timez%Y-%m-%dT%H:%M:%Sz)could not load release date %s because %r) r"_pypi_get_distribution_info_cachedr9r/rr^ Exceptionrerror)rr&contentr exceptions r"rr0s $KKE11CDDG [!*-ems* JJJ ( * ******r$c\|tvrt|t|<t|Sr,) _PYPI_CACHE_pypi_get_distribution_info)r9s r"rrGs*;&&$? $M$M L! | $$r$cndd|d}} tD]n} t||5}tj|}dddn #1swxYwYn-#t$r }t jd||Yd}~gd}~wwxYwn-#t$r }t jd||Yd}~nd}~wwxYw|S)Nzhttps://pypi.org/pypi/z/json)contextzfailed to access %s because %r)rr jsonloadr rrr)r9rurlr file_handlerrs r"rrMsGE,EEESG H')) P PG PS'2226l"i 55G666666666666666 P P P >YOOOOOOOO P HHH 6YGGGGGGGGH NscBAA  A A AA AB B$A?:B?BB B2B--B2c "g}tjD]_\}}|D]E}tt||||f}|||F`|D]}|dS)N)targetargs)ritemskeysr _run_manual_upgradestartrUjoin)r!r>threadsr;distribution_to_packager9threads r"manual_upgrader\sG3A3G3I3I##//388:: # #L#6h Vdfi=jkkkF LLNNN NN6 " " " " #  r$c tj}ddlm}||d|g|d|}t jd|||dn|jt|||j|gd}||tj|z g}|r2| d d |D|rd nd } t jd | g|RdS) Nr) from_bundleF)r9r/r;r<r!r=r>z(upgrade %s for python %s with current %sr)r9r;rr!r<rF c3 K|] }d|V dS) Nrrs r"r1z&_run_manual_upgrade..s(991h1hh999999r$znew entries found: %szno new versions foundz upgraded %s for python %s in %s ) rr0bundlerrrSr8rrrUr) r!r9r;r>rrcurrentr5r ver_updates r"rrjs, LNNE######k!% G O2o7<  !%| H   D ; DII9999999:::-5R));RJ OCzCCKdKKKKKKr$) rVrDrrrTr3r_r\rNr)8__doc__rrrrrrr itertoolsrpathlibrshutilr subprocessrr textwrapr threadingr urllib.errorr urllib.requestr virtualenv.app_datarvirtualenv.util.subprocessr wheels.embedr wheels.utilrrqrrrrrDr2rVrYr\r_rTr3rNrrrrrrrrr__all__rr$r"r s   ((((((((""""""""!!!!!!""""""111111777777)))))))!$$$YB''' r"""  yq)))<kkk , , ,' CCCMMM3*3*3*3*3*3*3*3*l*Q*Q*Q*Q*Q*Q*Q*QZB???D   +++  %%%      $L$L$LN   r$