+
    <j                        ^ RI t ^ RIt^ RIt^ RIt^ RIHt ^ RIHtHtH	t	H
t
Ht ^ RIHt ^ RIHt ]P                   ! ]4      t] P&                  R R l4       t] P&                  R R	 l4       t ! R
 R]4      t ! R R4      tR# )    N)TracebackType)Dict	GeneratorOptionalTypeUnion)InstallRequirement)TempDirectoryc                >    V ^8  d   QhR\         R\        R,          /# )   changesreturnNNN)strr   )formats   "a/opt/headortail/venv/lib/python3.14/site-packages/pip/_internal/operations/build/build_tracker.py__annotate__r      s      . .# .)<L2M .    c               +     "   \         P                  p\        4       p/ pV P                  4        F  w  rE W,          W4&   WQV&   K  	   R x  VP                  4        F*  w  rFWbJ d   W K  \        V\        4      '       g   Q hWaV&   K,  	  R #   \         d    Y#T&    L^i ; i  TP                  4        F*  w  rFYbJ d   Y K  \        T\        4      '       g   Q hYaT&   K,  	  i ; i5iN)osenvironobjectitemsKeyError
isinstancer   )r   targetnon_existent_markersaved_valuesname	new_valueoriginal_values   ,      r   update_env_context_managerr#      s     ZZF !(24L"==?	5!'L !t +	. %1$6$6$8 D4L!.#6666-t %9  	5!4	5 %1$6$6$8 D4L!.#6666-t %9sA   2C$
BC$B! A C$BC$BC$!A C!!C$c                2    V ^8  d   QhR\         R,          /# )r   r   )BuildTrackerNN)r   )r   s   "r   r   r   )   s     	 	9%?@ 	r   c            	   #     "   \         P                  P                  R 4      p \        P                  ! 4       ;_uu_ 4       pV fW   VP                  \        RR7      4      P                  p VP                  \        V R7      4       \        P                  RV 4       \        V 4      ;_uu_ 4       pVx  RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i5i)PIP_BUILD_TRACKERNzbuild-tracker)kind)r'   z Initialized build tracking at %s)r   r   get
contextlib	ExitStackenter_contextr
   pathr#   loggerdebugr%   )rootctxtrackers      r   get_build_trackerr3   (   s     ::>>-.D					3<$$]%HINND84PQLL;TB$7M   
 	   
 		s5   =C+A.C-C	2C:
C+CCC(	"	C+c                       ] tR t^5tRtRtR# )	TrackerIdz:Uniquely identifying string provided to the build tracker. N)__name__
__module____qualname____firstlineno____doc____static_attributes__r6   r   r   r5   r5   5   s    Dr   r5   c                      a  ] tR t^9t o RtV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR	 ltV 3R
 lR lt	V 3R lR lt
V 3R lR lt]P                  V 3R lR l4       tRtV tR# )r%   a'  Ensure 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.c                $   < V ^8  d   QhRS[ RR/# )r   r0   r   N)r   )r   __classdict__s   "r   r   BuildTracker.__annotate__B   s     > >S >T >r   c                `    Wn         / V n        \        P                  R V P                   4       R# )zCreated build tracker: %sN)_root_entriesr.   r/   )selfr0   s   &&r   __init__BuildTracker.__init__B   s!    
=?0$**=r   c                   < V ^8  d   QhRR/# )r   r   r%   r6   )r   r?   s   "r   r   r@   G   s      > r   c                F    \         P                  R V P                  4       V # )zEntered build tracker: %s)r.   r/   rB   )rD   s   &r   	__enter__BuildTracker.__enter__G   s    0$**=r   c                p   < V ^8  d   QhRS[ S[S[,          ,          RS[ S[,          RS[ S[,          RR/# )r   exc_typeexc_valexc_tbr   N)r   r   BaseExceptionr   )r   r?   s   "r   r   r@   K   sG      4./ -( '	
 
r   c                &    V P                  4        R # r   )cleanup)rD   rL   rM   rN   s   &&&&r   __exit__BuildTracker.__exit__K   s     	r   c                &   < V ^8  d   QhRS[ RS[/# )r   keyr   )r5   r   )r   r?   s   "r   r   r@   S   s     0 0y 0S 0r   c                    \         P                  ! VP                  4       4      P                  4       p\        P
                  P                  V P                  V4      # r   )hashlibsha224encode	hexdigestr   r-   joinrB   )rD   rU   hasheds   && r   _entry_pathBuildTracker._entry_pathS   s8    

-779ww||DJJ//r   c                *   < V ^8  d   QhRS[ RS[RR/# r   reqrU   r   Nr	   r5   )r   r?   s   "r   r   r@   W   s(     F F) F	 Fd Fr   c                   V P                  V4      p \        V4      ;_uu_ 4       pVP                  4       pRRR4       VP                   RX 2p\	        V4      h  + '       g   i     L,; i  \
         d     Mi ; iY P                  9  g   Q h\        TRRR7      ;_uu_ 4       pTP                  \        T4      4       RRR4       M  + '       g   i     M; iYP                  T&   \        P                  RYP                  4       R# )z,Add an InstallRequirement to build tracking.Nz is already being built: wzutf-8)encodingzAdded %s to build tracker %r)r]   openreadlinkLookupErrorFileNotFoundErrorrC   writer   r.   r/   rB   )rD   ra   rU   
entry_pathfpcontentsmessages   &&&    r   addBuildTracker.addW   s     %%c*
	'j!!R779 "
 
";H:FGg&& "!  		 --''' *cG44HHSX 5444 c3S**Es3   A. AA. A+	&A. .A<;A<'CC	c                *   < V ^8  d   QhRS[ RS[RR/# r`   rb   )r   r?   s   "r   r   r@   r   s(     J J, J9 J Jr   c                    \         P                  ! V P                  V4      4       V P                  V \        P                  RWP                  4       R# )z1Remove an InstallRequirement from build tracking.z Removed %s from build tracker %rN)r   unlinkr]   rC   r.   r/   rB   )rD   ra   rU   s   &&&r   removeBuildTracker.remover   s:     			$""3'(MM#7jjIr   c                   < V ^8  d   QhRR/# )r   r   Nr6   )r   r?   s   "r   r   r@   {   s     > > >r   c                    \        V P                  P                  4       4       F  w  rV P                  W!4       K  	  \        P                  R V P                  4       R# )zRemoved build tracker: %rN)listrC   r   ru   r.   r/   rB   )rD   rU   ra   s   &  r   rQ   BuildTracker.cleanup{   sA    T]]0023HCKK! 4 	0$**=r   c                :   < V ^8  d   QhRS[ RS[RS[R,          /# )r   ra   rU   r   r   )r	   r   r   )r   r?   s   "r   r   r@      s)     % %+ %# %)DT:U %r   c              #  p   "   \        V4      pV P                  W4       Rx  V P                  W4       R# 5i)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)r5   rp   ru   )rD   ra   rU   
tracker_ids   &&& r   trackBuildTracker.track   s+      s^
!C$s   46)rC   rB   N)r7   r8   r9   r:   r;   rE   rI   rR   r]   rp   ru   rQ   r*   contextmanagerr~   r<   __classdictcell__)r?   s   @r   r%   r%   9   sn     => >
  0 0F F6J J> > % %r   r%   )r*   rW   loggingr   typesr   typingr   r   r   r   r   pip._internal.req.req_installr	   pip._internal.utils.temp_dirr
   	getLoggerr7   r.   r   r#   r3   r   r5   r%   r6   r   r   <module>r      s~       	  9 9 < 6			8	$ . .2 	 	E EQ% Q%r   