Ë
    Kêj£  ã                  óú   — d dl mZ d dlZd dlZd dlZd dlZd dlmZ d dlm	Z	 d dl
mZ d dlmZ  ej                  e«      Zej"                  dd„«       Zej"                  dd„«       Z G d	„ d
e«      Z G d„ d«      Zy)é    )ÚannotationsN)Ú	Generator)ÚTracebackType)ÚInstallRequirement)ÚTempDirectoryc               +  ó¨  K  — t         j                  }t        «       }i }| j                  «       D ]  \  }}	 ||   ||<   |||<   Œ 	 d –— |j                  «       D ]$  \  }}||u r||= Œt        |t        «      sJ ‚|||<   Œ& y # t        $ r |||<   Y ŒTw xY w# |j                  «       D ]$  \  }}||u r||= Œt        |t        «      sJ ‚|||<   Œ& w xY w­w©N)ÚosÚenvironÚobjectÚitemsÚKeyErrorÚ
isinstanceÚstr)ÚchangesÚtargetÚnon_existent_markerÚsaved_valuesÚnameÚ	new_valueÚoriginal_values          úq/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/pip/_internal/operations/build/build_tracker.pyÚupdate_env_context_managerr      s  è ø€ ä�Z‰Z€Fô !›(ÐØ,.€LØ"Ÿ=™=›?ò !‰ˆˆið	5Ø!'¨¡ˆL˜Ñð !ˆˆtŠð!ð	.Ûð %1×$6Ñ$6Ó$8ò 	.Ñ ˆD�.ØÐ!4Ñ4Ø˜4‘Lä! .´#Ô6Ð6Ð6Ø-��t’ñ	.øô ò 	5Ø!4ˆL˜Óð	5ûð %1×$6Ñ$6Ó$8ò 	.Ñ ˆD�.ØÐ!4Ñ4Ø˜4‘Lä! .´#Ô6Ð6Ð6Ø-��t’ñ	.üs?   ‚3C¶B¾CÁB Á
8CÂBÂCÂBÂCÂ9CÃCc               #  ó”  K  — t         j                  j                  d«      } t        j                  «       5 }| €V|j                  t        d¬«      «      j                  } |j                  t        | ¬«      «       t        j                  d| «       t        | «      5 }|–— d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w­w)NÚPIP_BUILD_TRACKERzbuild-tracker)Úkind)r   z Initialized build tracking at %s)r
   r   ÚgetÚ
contextlibÚ	ExitStackÚenter_contextr   Úpathr   ÚloggerÚdebugÚBuildTracker)ÚrootÚctxÚtrackers      r   Úget_build_trackerr(   *   s§   è ø€ ä�:‰:�>‰>Ð-Ó.€DÜ	×	Ñ	Ó	ð  3Øˆ<Ø×$Ñ$¤]¸Ô%HÓI×NÑNˆDØ×ÑÔ8È4ÔPÔQÜ�L‰LÐ;¸TÔBä˜$Óð 	 7ØŠM÷	÷ð ÷	ð 	ú÷ð üs5   ‚4C¶A$B<ÂB0ÂB<Â'	CÂ0B9	Â5B<Â<CÃCc                  ó   — e Zd ZdZy)Ú	TrackerIdz:Uniquely identifying string provided to the build tracker.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    r   r*   r*   7   s   „ ÚDr0   r*   c                  ó~   — e Zd ZdZdd„Zdd„Z	 	 	 	 	 	 	 	 dd„Zdd„Zdd„Zdd„Z	dd„Z
ej                  dd	„«       Zy
)r$   a7  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                ó`   — || _         i | _        t        j                  d| j                   «       y )NzCreated build tracker: %s)Ú_rootÚ_entriesr"   r#   )Úselfr%   s     r   Ú__init__zBuildTracker.__init__D   s#   € ØˆŒ
Ø=?ˆŒÜ�‰Ð0°$·*±*Õ=r0   c                óF   — t         j                  d| j                  «       | S )NzEntered build tracker: %s)r"   r#   r3   )r5   s    r   Ú	__enter__zBuildTracker.__enter__I   s   € Ü�‰Ð0°$·*±*Ô=Øˆr0   c                ó$   — | j                  «        y r	   )Úcleanup)r5   Úexc_typeÚexc_valÚexc_tbs       r   Ú__exit__zBuildTracker.__exit__M   s   € ð 	�‰�r0   c                ó¸   — t        j                  |j                  «       «      j                  «       }t        j
                  j                  | j                  |«      S r	   )ÚhashlibÚsha224ÚencodeÚ	hexdigestr
   r!   Újoinr3   )r5   ÚkeyÚhasheds      r   Ú_entry_pathzBuildTracker._entry_pathU   s8   € Ü—‘ §
¡
£Ó-×7Ñ7Ó9ˆÜ�w‰w�|‰|˜DŸJ™J¨Ó/Ð/r0   c                óÚ  — | j                  |«      }	 t        |«      5 }|j                  «       }ddd«       |j                  › d› �}t	        |«      ‚# 1 sw Y   Œ%xY w# t
        $ r Y nw xY w|| j                  vsJ ‚t        |dd¬«      5 }|j                  t        |«      «       ddd«       n# 1 sw Y   nxY w|| j                  |<   t        j                  d|| j                  «       y)z,Add an InstallRequirement to build tracking.Nz is already being built: Úwzutf-8)ÚencodingzAdded %s to build tracker %r)rG   ÚopenÚreadÚlinkÚLookupErrorÚFileNotFoundErrorr4   Úwriter   r"   r#   r3   )r5   ÚreqrE   Ú
entry_pathÚfpÚcontentsÚmessages          r   ÚaddzBuildTracker.addY   sâ   € ð ×%Ñ% cÓ*ˆ
ð	'Ü�jÓ!ð % RØŸ7™7›9�÷%ð
 Ÿ™˜
Ð";¸H¸:ÐFˆGÜ˜gÓ&Ð&÷%ð %ûä ò 	Ùð	úð ˜$Ÿ-™-Ñ'Ð'Ð'ô �*˜c¨GÔ4ð 	¸Ø�H‰H”S˜“XÔ÷	÷ 	ñ 	úà ˆ�‰�cÑä�‰Ð3°S¸$¿*¹*ÕEs3   “A žA¯A ÁAÁA Á	A+Á*A+ÂB0Â0B9c                ó¨   — t        j                  | j                  |«      «       | j                  |= t        j                  d|| j                  «       y)z1Remove an InstallRequirement from build tracking.z Removed %s from build tracker %rN)r
   ÚunlinkrG   r4   r"   r#   r3   )r5   rQ   rE   s      r   ÚremovezBuildTracker.removet   s<   € ô 	�	‰	�$×"Ñ" 3Ó'Ô(Ø�M‰M˜#Ðä�‰Ð7¸¸d¿j¹jÕIr0   c                ó¾   — t        | j                  j                  «       «      D ]  \  }}| j                  ||«       Œ t        j                  d| j                  «       y )NzRemoved build tracker: %r)Úlistr4   r   rY   r"   r#   r3   )r5   rE   rQ   s      r   r:   zBuildTracker.cleanup}   sJ   € Ü˜TŸ]™]×0Ñ0Ó2Ó3ò 	"‰HˆC�Ø�K‰K˜˜SÕ!ð	"ô 	�‰Ð0°$·*±*Õ=r0   c              #  ór   K  — t        |«      }| j                  ||«       d–— | j                  ||«       y­w)zÙEnsure 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*   rV   rY   )r5   rQ   rE   Ú
tracker_ids       r   ÚtrackzBuildTracker.trackƒ   s0   è ø€ ô ˜s“^ˆ
Ø�‰��jÔ!ÛØ�‰�C˜Õ$ùs   ‚57N)r%   r   ÚreturnÚNone)r_   r$   )r;   ztype[BaseException] | Noner<   zBaseException | Noner=   zTracebackType | Noner_   r`   )rE   r*   r_   r   )rQ   r   rE   r*   r_   r`   )r_   r`   )rQ   r   rE   r   r_   úGenerator[None, None, None])r+   r,   r-   r.   r6   r8   r>   rG   rV   rY   r:   r   Úcontextmanagerr^   r/   r0   r   r$   r$   ;   sl   „ ñ=ó>ó
ðà,ðð &ðð %ð	ð
 
óó0óFó6Jó>ð ×Ñò%ó ñ%r0   r$   )r   r   r_   ra   )r_   z#Generator[BuildTracker, None, None])Ú
__future__r   r   r@   Úloggingr
   Úcollections.abcr   Útypesr   Úpip._internal.req.req_installr   Úpip._internal.utils.temp_dirr   Ú	getLoggerr+   r"   rb   r   r(   r   r*   r$   r/   r0   r   ú<module>rj      s€   ðÝ "ã Û Û Û 	Ý %Ý å <Ý 6à	ˆ×	Ñ	˜8Ó	$€ð ×Ñò.ó ð.ð2 ×Ñò	ó ð	ôE�ô E÷Q%ò Q%r0   