Ë
    ��h¦  ã                   ó  — 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mZm	Z	m
Z
mZ d dlmZ d dlmZ  ej                   e«      Ze j&                  deded   fd	„«       Ze j&                  ded
   fd„«       Z G d„ de«      Z G d„ d«      Zy)é    N)ÚTracebackType)ÚDictÚ	GeneratorÚOptionalÚTypeÚUnion)ÚInstallRequirement)ÚTempDirectoryÚchangesÚreturn©NNNc               +   ó¨  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)r   ÚtargetÚnon_existent_markerÚsaved_valuesÚnameÚ	new_valueÚoriginal_values          új/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pip/_internal/operations/build/build_tracker.pyÚupdate_env_context_managerr      s  è ø€ ä�Z‰Z€Fô !›(ÐØ24€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)ÚBuildTrackerNNc               #   ó”  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Údebugr   )Ú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/   5   s   „ ÚDr5   r/   c                   óÐ   — e Zd ZdZdeddfd„Zdd„Zdeee	      dee	   d	ee
   ddfd
„Zdedefd„Zdededdfd„Zdededdfd„Zdd„Zej&                  dededed   f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.r*   r   Nc                 ó`   — || _         i | _        t        j                  d| j                   «       y )NzCreated build tracker: %s)Ú_rootÚ_entriesr(   r)   )Úselfr*   s     r   Ú__init__zBuildTracker.__init__B   s#   € ØˆŒ
Ø=?ˆŒÜ�‰Ð0°$·*±*Õ=r5   c                 óF   — t         j                  d| j                  «       | S )NzEntered build tracker: %s)r(   r)   r8   )r:   s    r   Ú	__enter__zBuildTracker.__enter__G   s   € Ü�‰Ð0°$·*±*Ô=Øˆr5   Úexc_typeÚexc_valÚexc_tbc                 ó$   — | j                  «        y r   )Úcleanup)r:   r>   r?   r@   s       r   Ú__exit__zBuildTracker.__exit__K   s   € ð 	�‰�r5   Úkeyc                 ó¸   — t        j                  |j                  «       «      j                  «       }t        j
                  j                  | j                  |«      S r   )ÚhashlibÚsha224ÚencodeÚ	hexdigestr   r'   Újoinr8   )r:   rD   Úhasheds      r   Ú_entry_pathzBuildTracker._entry_pathS   s8   € Ü—‘ §
¡
£Ó-×7Ñ7Ó9ˆÜ�w‰w�|‰|˜DŸJ™J¨Ó/Ð/r5   Úreqc                 óÚ  — | 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)rL   ÚopenÚreadÚlinkÚLookupErrorÚFileNotFoundErrorr9   Úwriter   r(   r)   r8   )r:   rM   rD   Ú
entry_pathÚfpÚcontentsÚmessages          r   ÚaddzBuildTracker.addW   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   ÚunlinkrL   r9   r(   r)   r8   )r:   rM   rD   s      r   ÚremovezBuildTracker.remover   s<   € ô 	�	‰	�$×"Ñ" 3Ó'Ô(Ø�M‰M˜#Ðä�‰Ð7¸¸d¿j¹jÕIr5   c                 ó¾   — t        | j                  j                  «       «      D ]  \  }}| j                  ||«       Œ t        j                  d| j                  «       y )NzRemoved build tracker: %r)Úlistr9   r   r^   r(   r)   r8   )r:   rD   rM   s      r   rB   zBuildTracker.cleanup{   sJ   € Ü˜TŸ]™]×0Ñ0Ó2Ó3ò 	"‰HˆC�Ø�K‰K˜˜SÕ!ð	"ô 	�‰Ð0°$·*±*Õ=r5   r   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/   r[   r^   )r:   rM   rD   Ú
tracker_ids       r   ÚtrackzBuildTracker.track�   s0   è ø€ ô ˜s“^ˆ
Ø�‰��jÔ!ÛØ�‰�C˜Õ$ùs   ‚57)r   r   )r   N)r0   r1   r2   r3   r   r;   r=   r   r   ÚBaseExceptionr   rC   r/   rL   r	   r[   r^   rB   r$   Úcontextmanagerr   rc   r4   r5   r   r   r   9   sê   „ ñ=ð>˜Sð > Tó >ó
ðà˜4 Ñ.Ñ/ðð ˜-Ñ(ðð ˜Ñ'ð	ð
 
óð0˜yð 0¨Só 0ðFÐ)ð F°	ð F¸dó Fð6JÐ,ð J°9ð JÀó Jó>ð ×Ñð%Ð+ð %°#ð %¸)ÐDTÑ:Uò %ó ñ%r5   r   )r$   rF   Úloggingr   Útypesr   Útypingr   r   r   r   r   Úpip._internal.req.req_installr	   Úpip._internal.utils.temp_dirr
   Ú	getLoggerr0   r(   re   r   r   r-   r/   r   r4   r5   r   ú<module>rl      s¡   ðÛ Û Û Û 	Ý ß 9Õ 9å <Ý 6à	ˆ×	Ñ	˜8Ó	$€ð ×Ñð.¨#ð .°)Ð<LÑ2Mò .ó ð.ð2 ×Ñð	˜9Ð%?Ñ@ò 	ó ð	ôE�ô E÷Q%ò Q%r5   