U n a@sddlmZddlZddlZddlZddlZddlZddlmZddl m Z ddl m Z e rddl mZddlmZmZmZmZmZmZddlmZdd lmZeeZejd d Zejd d ZGddde Z!dS))absolute_importN) contextlib2) TempDirectory)MYPY_CHECK_RUNNING) TracebackType)DictIteratorOptionalSetTypeUnion)InstallRequirement)Linkc kstj}t}i}|D]>\}}z||||<Wntk rL|||<YnX|||<qz dVW5|D].\}}||kr||=qlt|tst|||<qlXdSN)osenvironobjectitemsKeyError isinstancestrAssertionError)changestargetnon_existent_marker saved_valuesname new_valueoriginal_valuer^C:\Users\vtejo\AppData\Local\Temp\pip-unpacked-wheel-6mt8ur68\pip\_internal\req\req_tracker.pyupdate_env_context_managers   r!c csttjd}tV}|dkrL|tddj}|t|dt d|t | }|VW5QRXW5QRXdS)NPIP_REQ_TRACKERz req-tracker)kind)r"z Initialized build tracking at %s) rrgetr ExitStack enter_contextrpathr!loggerdebugRequirementTracker)rootctxtrackerrrr get_requirement_tracker5s    r.c@sReZdZddZddZddZddZd d Zd d Zd dZ e j ddZ dS)r*cCs ||_t|_td|jdS)NzCreated build tracker: %s)_rootset_entriesr(r))selfr+rrr __init__GszRequirementTracker.__init__cCstd|j|S)NzEntered build tracker: %s)r(r)r/)r2rrr __enter__MszRequirementTracker.__enter__cCs |dSr)cleanup)r2exc_typeexc_valexc_tbrrr __exit__RszRequirementTracker.__exit__cCs$t|j}tj|j|Sr) hashlibsha224url_without_fragmentencode hexdigestrr'joinr/)r2linkhashedrrr _entry_path[szRequirementTracker._entry_pathc Cs||j}z t|}|}W5QRXWn0tk r\}z|jtjkrLW5d}~XYnXd|j|}t|||j kst t|d}| t |W5QRX|j |td||jdS)z5Add an InstallRequirement to build tracking. Nz{} is already being built: {}wzAdded %s to build tracker %r)rBr@openreadIOErrorerrnoENOENTformat LookupErrorr1rwriteraddr(r)r/)r2req entry_pathfpcontentsemessagerrr rL`s"     zRequirementTracker.addcCs2t||j|j|td||jdS)z:Remove an InstallRequirement from build tracking. z Removed %s from build tracker %rN) runlinkrBr@r1remover(r)r/r2rMrrr rTs zRequirementTracker.removecCs,t|jD]}||q td|jdS)NzRemoved build tracker: %r)r0r1rTr(r)r/rUrrr r5s zRequirementTracker.cleanupccs||dV||dSr)rLrTrUrrr tracks zRequirementTracker.trackN) __name__ __module__ __qualname__r3r4r9rBrLrTr5 contextlibcontextmanagerrVrrrr r*Es   r*)" __future__rrZrGr:loggingr pip._vendorrpip._internal.utils.temp_dirrpip._internal.utils.typingrtypesrtypingrrr r r r Zpip._internal.req.req_installr pip._internal.models.linkr getLoggerrWr(r[r!r.rr*rrrr s&