h$ddlZddlZddlZddlZddlmZddlmZmZm Z m Z m Z ddl m Z ddlmZejeZejdededfd Zejded fd ZGd d eZGddZdS)N) TracebackType)Dict GeneratorOptionalTypeUnion)InstallRequirement) TempDirectorychangesreturnNNNc+Ktj}t}i}|D],\}} ||||<n#t$r|||<YnwxYw|||<- dV|D])\}}||ur||= t |t sJ|||<*dS#|D])\}}||ur||= t |t sJ|||<*wxYwN)osenvironobjectitemsKeyError isinstancestr)r targetnon_existent_marker saved_valuesname new_valueoriginal_values /builddir/build/BUILD/imunify360-venv-2.5.2/opt/imunify360/venv/lib/python3.11/site-packages/pip/_internal/operations/build/build_tracker.pyupdate_env_context_managerrsS ZF!((24L"==??!!i 5!'L   5 5 5!4L    5 t  . %1$6$6$8$8 . . D.!4444LL!.#66666-t  . .L$6$6$8$8 . . D.!4444LL!.#66666-t  .s AAA!B%%AC%) BuildTrackerNNc#Ktjd}tj5}|f|t dj}|t|t d|t|5}|Vdddn #1swxYwYddddS#1swxYwYdS)NPIP_BUILD_TRACKERz build-tracker)kind)r!z Initialized build tracking at %s) rrget contextlib ExitStack enter_contextr pathrloggerdebugr)rootctxtrackers rget_build_trackerr-(sN :>>- . .D    3 <$$]%H%H%HIIND   84PPP Q Q Q LL;T B B B $   7MMM                s6A8C-B>2 C>C CC CCCceZdZdZdS) TrackerIdz:Uniquely identifying string provided to the build tracker.N)__name__ __module__ __qualname____doc__rr/r/5sDDDDr5r/ceZdZdZdeddfdZddZdeee dee d ee ddfd Z d e defd Z d ed e ddfdZd ed e ddfdZddZejd ed ededfdZdS)ra7Ensure that an sdist cannot request itself as a setup requirement. When an sdist is prepared, it identifies its setup requirements in the context of ``BuildTracker.track()``. If a requirement shows up recursively, this raises an exception. This stops fork bombs embedded in malicious packages.r*r Ncb||_i|_td|jdS)NzCreated build tracker: %s)_root_entriesr(r))selfr*s r__init__zBuildTracker.__init__Bs- =?  0$*=====r5cFtd|j|S)NzEntered build tracker: %s)r(r)r8)r:s r __enter__zBuildTracker.__enter__Gs 0$*=== r5exc_typeexc_valexc_tbc.|dSr)cleanup)r:r>r?r@s r__exit__zBuildTracker.__exit__Ks r5keyctj|}tj|j|Sr)hashlibsha224encode hexdigestrr'joinr8)r:rDhasheds r _entry_pathzBuildTracker._entry_pathSs= --7799w||DJ///r5reqc||} t|5}|}dddn #1swxYwY|jd|}t |#t $rYnwxYw||jvsJt|dd5}|t|dddn #1swxYwY||j|<t d||j dS)z,Add an InstallRequirement to build tracking.Nz is already being built: wzutf-8)encodingzAdded %s to build tracker %r) rLopenreadlink LookupErrorFileNotFoundErrorr9writerr(r)r8)r:rMrD entry_pathfpcontentsmessages raddzBuildTracker.addWs%%c**  'j!! %R7799 % % % % % % % % % % % % % % % FFHFFGg&& & !    D $-''''*cG 4 4 4  HHSXX                    c 3S$*EEEEEsEA-A A-A  A-A A-- A:9A:#C  C C ctj|||j|=td||jdS)z1Remove an InstallRequirement from build tracking.z Removed %s from build tracker %rN)runlinkrLr9r(r)r8)r:rMrDs rremovezBuildTracker.removersK $""3''((( M#  7djIIIIIr5ct|jD]\}}|||td|jdS)NzRemoved build tracker: %r)listr9rr^r(r)r8)r:rDrMs rrBzBuildTracker.cleanup{s_T]002233 " "HC KKS ! ! ! ! 0$*=====r5r c#Kt|}|||dV|||dS)zEnsure that `key` cannot install itself as a setup requirement. :raises LookupError: If `key` was already provided in a parent invocation of the context introduced by this method.N)r/r[r^)r:rMrD tracker_ids rtrackzBuildTracker.tracksJ s^^  j!!!  C$$$$$r5)r r)r N)r0r1r2r3rr;r=rr BaseExceptionrrCr/rLr r[r^rBr$contextmanagerrrcr4r5rrr9sz==>S>T>>>> 4 ./-('   0y0S0000F)F FdFFFF6J,J9JJJJJ>>>> %+%#%)DT:U%%%%%%r5r)r$rFloggingrtypesrtypingrrrrrpip._internal.req.req_installr pip._internal.utils.temp_dirr getLoggerr0r(rerrr-r/rr4r5rrlsu 99999999999999<<<<<<666666  8 $ $ .#.)