1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
U
H=®dRã@sÚddlmZddlZddlZddlZddlZddlZddlmZddl    m
Z
ddl m Z e r ddl mZddlmZmZmZmZmZmZddlmZdd    lmZe e¡Zejd
d „ƒZejd d „ƒZGdd„de ƒZ!dS)é)Úabsolute_importN)Ú contextlib2)Ú TempDirectory)ÚMYPY_CHECK_RUNNING)Ú TracebackType)ÚDictÚIteratorÚOptionalÚSetÚTypeÚUnion)ÚInstallRequirement)ÚLinkc
ks¢tj}tƒ}i}| ¡D]>\}}z||||<Wntk
rL|||<YnX|||<qz
dVW5| ¡D].\}}||kr„||=qlt|tƒs’t‚|||<qlXdS©N)ÚosÚenvironÚobjectÚitemsÚKeyErrorÚ
isinstanceÚstrÚAssertionError)ÚchangesÚtargetÚnon_existent_markerÚ saved_valuesÚnameÚ    new_valueÚoriginal_value©rúTD:\z\workplace\VsCode\pyvenv\venv\Lib\site-packages\pip/_internal/req/req_tracker.pyÚupdate_env_context_managers 
 
r!c
csttj d¡}t ¡V}|dkrL| tdd¡j}| t|d¡t     
d|¡t |ƒ }|VW5QRXW5QRXdS)NÚPIP_REQ_TRACKERz req-tracker)Úkind)r"z Initialized build tracking at %s) rrÚgetrÚ    ExitStackÚ enter_contextrÚpathr!ÚloggerÚdebugÚRequirementTracker)ÚrootÚctxÚtrackerrrr Úget_requirement_tracker2s 
ÿ 
r.c@sReZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd d„Z    e
j dd„ƒZ dS)r*cCs ||_tƒ|_t d|j¡dS)NzCreated build tracker: %s)Ú_rootÚsetÚ_entriesr(r))Úselfr+rrr Ú__init__DszRequirementTracker.__init__cCst d|j¡|S)NzEntered build tracker: %s)r(r)r/)r2rrr Ú    __enter__JszRequirementTracker.__enter__cCs | ¡dSr)Úcleanup)r2Úexc_typeÚexc_valÚexc_tbrrr Ú__exit__OszRequirementTracker.__exit__cCs$t |j ¡¡ ¡}tj |j|¡Sr)    ÚhashlibÚsha224Úurl_without_fragmentÚencodeÚ    hexdigestrr'Újoinr/)r2ÚlinkÚhashedrrr Ú _entry_pathXszRequirementTracker._entry_pathc
CsÐ|js
t‚| |j¡}z t|ƒ}| ¡}W5QRXWn0tk
rf}z|jtjkrV‚W5d}~XYnXd |j|¡}t    |ƒ‚||j
ksŒt‚t|dƒ}|  t |ƒ¡W5QRX|j
  |¡t d||j¡dS)z5Add an InstallRequirement to build tracking.
        Nz{} is already being built: {}ÚwzAdded %s to build tracker %r)r@rrBÚopenÚreadÚIOErrorÚerrnoÚENOENTÚformatÚ LookupErrorr1ÚwriterÚaddr(r)r/)r2ÚreqÚ
entry_pathÚfpÚcontentsÚeÚmessagerrr rL]s$
 
 ÿ  zRequirementTracker.addcCs<|js
t‚t | |j¡¡|j |¡t d||j    ¡dS)z:Remove an InstallRequirement from build tracking.
        z Removed %s from build tracker %rN)
r@rrÚunlinkrBr1Úremover(r)r/©r2rMrrr rT~s
 zRequirementTracker.removecCs,t|jƒD]}| |¡q
t d|j¡dS)NzRemoved build tracker: %r)r0r1rTr(r)r/rUrrr r5Šs zRequirementTracker.cleanupccs| |¡dV| |¡dSr)rLrTrUrrr Útrack‘s
zRequirementTracker.trackN) Ú__name__Ú
__module__Ú __qualname__r3r4r9rBrLrTr5Ú
contextlibÚcontextmanagerrVrrrr r*Bs    ! r*)"Ú
__future__rrZrGr:ÚloggingrÚ pip._vendorrÚpip._internal.utils.temp_dirrÚpip._internal.utils.typingrÚtypesrÚtypingrrr    r
r r Zpip._internal.req.req_installr Úpip._internal.models.linkrÚ    getLoggerrWr(r[r!r.rr*rrrr Ú<module>s&