§
    
 hà  ã                   ó4  — 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mZ d dl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dS )é    N)ÚTracebackType)ÚDictÚ	GeneratorÚOptionalÚSetÚTypeÚUnion)ÚLink)ÚInstallRequirement)ÚTempDirectoryÚchangesÚreturn©NNNc               +   óÐ  K  — t           j        }t          ¦   «         }i }|                      ¦   «         D ],\  }}	 ||         ||<   n# t          $ r |||<   Y nw xY w|||<   Œ-	 d V — |                     ¦   «         D ])\  }}||u r||= Œt          |t          ¦  «        sJ ‚|||<   Œ*d S # |                     ¦   «         D ])\  }}||u r||= Œt          |t          ¦  «        sJ ‚|||<   Œ*w xY w©N)ÚosÚenvironÚobjectÚitemsÚKeyErrorÚ
isinstanceÚstr)r   ÚtargetÚnon_existent_markerÚsaved_valuesÚnameÚ	new_valueÚoriginal_values          úfc:\xampp_lite_8_4\www\timesheet\venv\Lib\site-packages\pip/_internal/operations/build/build_tracker.pyÚupdate_env_context_managerr       sS  è è € åŒZ€Fõ !™(œ(ÐØ24€LØ"Ÿ=š=™?œ?ð !ð !‰ˆˆið	5Ø!'¨¤ˆL˜ÑÐøÝð 	5ð 	5ð 	5Ø!4ˆL˜ÑÐÐð	5øøøà ˆˆt‰ˆð	.Øˆˆˆð %1×$6Ò$6Ñ$8Ô$8ð 	.ð 	.Ñ ˆD�.ØÐ!4Ð4Ð4Ø˜4�L�Lå! .µ#Ñ6Ô6Ð6Ð6Ð6Ø-��t‘�ð	.ð 	.ø L×$6Ò$6Ñ$8Ô$8ð 	.ð 	.Ñ ˆD�.ØÐ!4Ð4Ð4Ø˜4�L�Lå! .µ#Ñ6Ô6Ð6Ð6Ð6Ø-��t‘�ð	.øøøs   ¹AÁAÁAÁ!B% Â%A C%)ÚBuildTrackerNNc               #   óÆ  K  — t           j                             d¦  «        } t          j        ¦   «         5 }| €f|                     t          d¬¦  «        ¦  «        j        } |                     t          | ¬¦  «        ¦  «         t           
                    d| ¦  «         t          | ¦  «        5 }|V — d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )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/   )   sN  è è € åŒ:�>Š>Ð-Ñ.Ô.€DÝ	Ô	Ñ	Ô	ð  3Øˆ<Ø×$Ò$¥]¸Ð%HÑ%HÔ%HÑIÔIÔNˆDØ×ÒÕ8È4ÐPÑPÔPÑQÔQÐQÝ�LŠLÐ;¸TÑBÔBÐBå˜$ÑÔð 	 7ØˆMˆMˆMð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s6   µA8CÂ-B>Â2CÂ>C	ÃCÃC	ÃCÃCÃCc                   ó   — e Zd ZdZdS )Ú	TrackerIdz:Uniquely identifying string provided to the build tracker.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    r   r1   r1   6   s   € € € € € ØDÐDÐDÐDr7   r1   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dS )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                 ób   — || _         i | _        t                               d| j         ¦  «         d S )NzCreated build tracker: %s)Ú_rootÚ_entriesr*   r+   )Úselfr,   s     r   Ú__init__zBuildTracker.__init__C   s-   € ØˆŒ
Ø=?ˆŒÝ�ŠÐ0°$´*Ñ=Ô=Ð=Ð=Ð=r7   c                 óF   — t                                d| j        ¦  «         | S )NzEntered build tracker: %s)r*   r+   r:   )r<   s    r   Ú	__enter__zBuildTracker.__enter__H   s   € Ý�ŠÐ0°$´*Ñ=Ô=Ð=Øˆr7   Úexc_typeÚexc_valÚexc_tbc                 ó.   — |                       ¦   «          d S r   )Úcleanup)r<   r@   rA   rB   s       r   Ú__exit__zBuildTracker.__exit__L   s   € ð 	�Š‰Œˆˆˆr7   Úkeyc                 ó¼   — t          j        |                     ¦   «         ¦  «                             ¦   «         }t          j                             | j        |¦  «        S r   )ÚhashlibÚsha224ÚencodeÚ	hexdigestr   r)   Újoinr:   )r<   rF   Úhasheds      r   Ú_entry_pathzBuildTracker._entry_pathT   s=   € Ý” §
¢
¡¤Ñ-Ô-×7Ò7Ñ9Ô9ˆÝŒw�|Š|˜DœJ¨Ñ/Ô/Ð/r7   Úreqc                 ó   — |                       |¦  «        }	 t          |¦  «        5 }|                     ¦   «         }ddd¦  «         n# 1 swxY w Y   d                     |j        |¦  «        }t          |¦  «        ‚# t          $ r Y nw xY w|| j        vsJ ‚t          |dd¬¦  «        5 }|                     t          |¦  «        ¦  «         ddd¦  «         n# 1 swxY w Y   || j        |<   t                               d|| j        ¦  «         dS )z,Add an InstallRequirement to build tracking.Nz{} is already being built: {}Úwzutf-8)ÚencodingzAdded %s to build tracker %r)rN   ÚopenÚreadÚformatÚlinkÚLookupErrorÚFileNotFoundErrorr;   Úwriter   r*   r+   r:   )r<   rO   rF   Ú
entry_pathÚfpÚcontentsÚmessages          r   ÚaddzBuildTracker.addX   s“  € ð ×%Ò% cÑ*Ô*ˆ
ð	'Ý�jÑ!Ô!ð % RØŸ7š7™9œ9�ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %ð
 6×<Ò<¸S¼XÀxÑPÔPˆGÝ˜gÑ&Ô&Ð&øõ	 !ð 	ð 	ð 	ØˆDð	øøøð ˜$œ-Ð'Ð'Ð'Ð'õ �*˜c¨GÐ4Ñ4Ô4ð 	¸Ø�HŠH•S˜‘X”XÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à ˆŒ�cÑå�ŠÐ3°S¸$¼*ÑEÔEÐEÐEÐEsE   —A< ¦A»A< ÁAÁA< ÁAÁA< Á<
B	ÂB	Â)#CÃCÃCc                 ó¦   — t          j        |                      |¦  «        ¦  «         | j        |= t                               d|| j        ¦  «         dS )z1Remove an InstallRequirement from build tracking.z Removed %s from build tracker %rN)r   ÚunlinkrN   r;   r*   r+   r:   )r<   rO   rF   s      r   ÚremovezBuildTracker.removes   sK   € õ 	Œ	�$×"Ò" 3Ñ'Ô'Ñ(Ô(Ð(ØŒM˜#Ðå�ŠÐ7¸¸d¼jÑIÔIÐIÐIÐIr7   c                 óÊ   — t          | j                             ¦   «         ¦  «        D ]\  }}|                      ||¦  «         Œt                               d| j        ¦  «         d S )NzRemoved build tracker: %r)Úlistr;   r   ra   r*   r+   r:   )r<   rF   rO   s      r   rD   zBuildTracker.cleanup|   s_   € Ý˜Tœ]×0Ò0Ñ2Ô2Ñ3Ô3ð 	"ð 	"‰HˆC�Ø�KŠK˜˜SÑ!Ô!Ð!Ð!å�ŠÐ0°$´*Ñ=Ô=Ð=Ð=Ð=r7   r   c              #   óˆ   K  — t          |¦  «        }|                      ||¦  «         dV — |                      ||¦  «         dS )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)r1   r^   ra   )r<   rO   rF   Ú
tracker_ids       r   ÚtrackzBuildTracker.track‚   sJ   è è € õ ˜s‘^”^ˆ
Ø�Š��jÑ!Ô!Ð!ØˆˆˆØ�Š�C˜Ñ$Ô$Ð$Ð$Ð$r7   )r   r!   )r   N)r2   r3   r4   r5   r   r=   r?   r   r   ÚBaseExceptionr   rE   r1   rN   r   r^   ra   rD   r&   Úcontextmanagerr   rf   r6   r7   r   r!   r!   :   sz  € € € € € ð=ð =ð>˜Sð > Tð >ð >ð >ð >ð
ð ð ð ðà˜4 Ô.Ô/ðð ˜-Ô(ðð ˜Ô'ð	ð
 
ðð ð ð ð0˜yð 0¨Sð 0ð 0ð 0ð 0ðFÐ)ð F°	ð F¸dð Fð Fð Fð Fð6JÐ,ð J°9ð JÀð Jð Jð Jð Jð>ð >ð >ð >ð Ôð%Ð+ð %°#ð %¸)ÐDTÔ:Uð %ð %ð %ñ Ôð%ð %ð %r7   r!   )r&   rH   Úloggingr   Útypesr   Útypingr   r   r   r   r   r	   Úpip._internal.models.linkr
   Úpip._internal.req.req_installr   Úpip._internal.utils.temp_dirr   Ú	getLoggerr2   r*   rh   r   r    r/   r1   r!   r6   r7   r   ú<module>rp      s�  ðØ Ð Ð Ð Ø €€€Ø €€€Ø 	€	€	€	Ø Ð Ð Ð Ð Ð Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >à *Ð *Ð *Ð *Ð *Ð *Ø <Ð <Ð <Ð <Ð <Ð <Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6à	ˆÔ	˜8Ñ	$Ô	$€ð Ôð.¨#ð .°)Ð<LÔ2Mð .ð .ð .ñ Ôð.ð2 Ôð	˜9Ð%?Ô@ð 	ð 	ð 	ñ Ôð	ðEð Eð Eð Eð E�ñ Eô Eð EðQ%ð Q%ð Q%ð Q%ð Q%ñ Q%ô Q%ð Q%ð Q%ð Q%r7   