\h&ddlZddlZddlZddlZddlmZddlmZmZm Z m Z m Z m Z ddl mZddlmZddlmZej&eZej,deded fd Zej,ded fd ZGd deZGddZy)N) TracebackType)Dict GeneratorOptionalSetTypeUnion)Link)InstallRequirement) TempDirectorychangesreturnNNNc+Ktj}t}i}|jD]\}} ||||<|||< d|jD]$\}}||ur||=t |t sJ|||<&y#t$r|||<YTwxYw#|jD]$\}}||ur||=t |t sJ|||<&wxYwwN)osenvironobjectitemsKeyError isinstancestr)r targetnon_existent_marker saved_valuesname new_valueoriginal_values o/root/niggaflix-v3/playground/venv/lib/python3.12/site-packages/pip/_internal/operations/build/build_tracker.pyupdate_env_context_managerr s ZZF!(24L"==?!i 5!'L !t ! . %1$6$6$8 . D.!444L!.#666-t  . 5!4L  5%1$6$6$8 . D.!444L!.#666-t  .s?3CBCB 8CBCBC9CC) BuildTrackerNNc#Ktjjd}tj5}|V|j t dj}|j t|tjd|t|5}|ddddddy#1swYxYw#1swYyxYww)NPIP_BUILD_TRACKERz build-tracker)kind)r#z Initialized build tracking at %s) rrget contextlib ExitStack enter_contextr pathr loggerdebugr!)rootctxtrackers rget_build_trackerr/)s ::>>- .D    3 <$$]%HINND   84P Q LL;T B $  7M      s54CA$B<B0B<' C0B9 5B<<CCceZdZdZy) TrackerIdz:Uniquely identifying string provided to the build tracker.N)__name__ __module__ __qualname____doc__rr1r16sDr7r1ceZdZdZdeddfdZddZdeee dee d ee ddfd Z d e defd Z d ed e ddfdZd ed e ddfdZddZej&d ed ededfdZy)r!a7Ensure 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,rNc`||_i|_tjd|jy)NzCreated build tracker: %s)_root_entriesr*r+)selfr,s r__init__zBuildTracker.__init__Cs# =?  0$**=r7cFtjd|j|S)NzEntered build tracker: %s)r*r+r:)r<s r __enter__zBuildTracker.__enter__Hs 0$**= r7exc_typeexc_valexc_tbc$|jyr)cleanup)r<r@rArBs r__exit__zBuildTracker.__exit__Ls r7keyctj|jj}tj j |j|Sr)hashlibsha224encode hexdigestrr)joinr:)r<rFhasheds r _entry_pathzBuildTracker._entry_pathTs8 -779ww||DJJ//r7reqc|j|} t|5}|j}ddddj|j}t |#1swY0xYw#t $rYnwxYw||jvsJt|dd5}|jt|dddn #1swYnxYw||j|<tjd||jy)z,Add an InstallRequirement to build tracking.Nz{} is already being built: {}wzutf-8)encodingzAdded %s to build tracker %r) rNopenreadformatlink LookupErrorFileNotFoundErrorr;writerr*r+r:)r<rOrF entry_pathfpcontentsmessages raddzBuildTracker.addXs%%c*  'j! %R779 % 6<S>T> 4 ./-('   0y0S0F)F FdF6J,J9JJ> %+%#%)DT:U%%r7r!)r&rHloggingrtypesrtypingrrrrrr pip._internal.models.linkr pip._internal.req.req_installr pip._internal.utils.temp_dirr getLoggerr2r*rhrr r/r1r!r6r7rrps >>*<6   8 $ .#.)