§
    �’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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 d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dl m!Z! d dl"m#Z# d dl$m%Z% d dl&m'Z'm(Z( d dl)m*Z*m+Z+m,Z,m-Z- d dl.m/Z/m0Z0m1Z1  ej2        d¬¦  «        Z3 ej4        e5¦  «        Z6d/d„Z7 G d„ d¦  «        Z8e G d„ d¦  «        ¦   «         Z9d0d#„Z:d1d*„Z;d2d+„Z<d3d.„Z=dS )4é    )ÚannotationsN)Ú	dataclass)ÚVersion)Úparse)ÚGroup)Úescape)ÚText)ÚLinkCollector)ÚPackageFinder)Úget_default_environment)ÚReleaseControl)ÚSelectionPreferences)Ú
PipSession)ÚWINDOWS)Úparse_iso_datetime)Ú get_best_invocation_for_this_pipÚ#get_best_invocation_for_this_python)Úadjacent_tmp_fileÚcheck_path_ownerÚcopy_directory_permissionsÚreplace)ÚExternallyManagedEnvironmentÚcheck_externally_managedÚ
ensure_diré   )ÚdaysÚkeyÚstrÚreturnc                óz   — |                       ¦   «         }t          j        |¦  «                             ¦   «         }|S ©N)ÚencodeÚhashlibÚsha224Ú	hexdigest)r   Ú	key_bytesÚnames      úOC:\Projects\DSCons\.venv\Lib\site-packages\pip\_internal\self_outdated_check.pyÚ_get_statefile_namer)   /   s/   € Ø—
’
‘”€IÝŒ>˜)Ñ$Ô$×.Ò.Ñ0Ô0€DØ€Kó    c                  ó>   — e Zd Zdd„Zedd„¦   «         Zdd
„Zdd„ZdS )ÚSelfCheckStateÚ	cache_dirr   r   ÚNonec                óh  — i | _         d | _        |r¡t          j                             |dt          | j        ¦  «        ¦  «        | _        	 t          | j        d¬¦  «        5 }t          j	        |¦  «        | _         d d d ¦  «         d S # 1 swxY w Y   d S # t          t          t          f$ r Y d S w xY wd S )NÚ	selfcheckzutf-8)Úencoding)Ú_stateÚ_statefile_pathÚosÚpathÚjoinr)   r   ÚopenÚjsonÚloadÚOSErrorÚ
ValueErrorÚKeyError)Úselfr-   Ú	statefiles      r(   Ú__init__zSelfCheckState.__init__6   s  € Ø&(ˆŒØ#ˆÔð ð 
	Ý#%¤7§<¢<Ø˜;Õ(;¸D¼HÑ(EÔ(Eñ$ô $ˆDÔ ðÝ˜$Ô.¸ÐAÑAÔAð 7ÀYÝ"&¤)¨IÑ"6Ô"6�D”Kð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7ð 7ð 7øå�Z­Ð2ð ð ð ð ��ðøøøð
	ð 
	s6   Á
B Á BÁ:B ÂBÂB ÂBÂB ÂB/Â.B/c                ó   — t           j        S r!   )ÚsysÚprefix)r=   s    r(   r   zSelfCheckState.keyG   s
   € åŒzÐr*   Úcurrent_timeúdatetime.datetimeú
str | Nonec                ó²   — | j         sdS d| j         vrdS d| j         vrdS t          | j         d         ¦  «        }||z
  }|t          k    rdS | j         d         S )z7Check if we have a not-outdated version loaded already.NÚ
last_checkÚpypi_version)r2   r   Ú_WEEK)r=   rC   rG   Útime_since_last_checks       r(   ÚgetzSelfCheckState.getK   ss   € àŒ{ð 	Ø�4à˜tœ{Ð*Ð*Ø�4à ¤Ð,Ð,Ø�4õ (¨¬°LÔ(AÑBÔBˆ
Ø ,¨zÑ 9ÐØ ¥5Ò(Ð(Ø�4àŒ{˜>Ô*Ð*r*   rH   c                ó&  — | j         sd S t          j                             | j         ¦  «        }t	          |¦  «        sd S t          |¦  «         | j        |                     ¦   «         |dœ}t          j	        |dd¬¦  «        }t          | j         ¦  «        5 }|                     |                     ¦   «         ¦  «         t          ||¦  «         d d d ¦  «         n# 1 swxY w Y   	 t          |j        | j         ¦  «         d S # t           $ r Y d S w xY w)N)r   rG   rH   T)ú,ú:)Ú	sort_keysÚ
separators)r3   r4   r5   Údirnamer   r   r   Ú	isoformatr8   Údumpsr   Úwriter"   r   r   r'   r:   )r=   rH   rC   Ústatefile_directoryÚstateÚtextÚfs          r(   ÚsetzSelfCheckState.set^   sa  € àÔ#ð 	ØˆFå œgŸošo¨dÔ.BÑCÔCÐõ  Ð 3Ñ4Ô4ð 	ØˆFõ 	Ð&Ñ'Ô'Ð'ð
 ”8Ø&×0Ò0Ñ2Ô2Ø(ð
ð 
ˆõ Œz˜%¨4¸JÐGÑGÔGˆå˜tÔ3Ñ4Ô4ð 	?¸Ø�GŠG�D—K’K‘M”MÑ"Ô"Ð"Ý&Ð':¸AÑ>Ô>Ð>ð	?ð 	?ð 	?ñ 	?ô 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?øøøð 	?ð 	?ð 	?ð 	?ð	õ �A”F˜DÔ0Ñ1Ô1Ð1Ð1Ð1øÝð 	ð 	ð 	àˆDˆDð	øøøs$   Â8CÃCÃ!CÃ&D Ä
DÄDN)r-   r   r   r.   )r   r   )rC   rD   r   rE   )rH   r   rC   rD   r   r.   )Ú__name__Ú
__module__Ú__qualname__r?   Úpropertyr   rK   rY   © r*   r(   r,   r,   5   sp   € € € € € ðð ð ð ð" ðð ð ñ „Xðð+ð +ð +ð +ð&#ð #ð #ð #ð #ð #r*   r,   c                  ó,   — e Zd ZU ded<   ded<   dd„ZdS )	ÚUpgradePromptr   ÚoldÚnewr   r   c                ó"  — t           rt          ¦   «         › d�}nt          ¦   «         }d}t          t	          ¦   «         t	          j        |› d| j        › d| j        › d�¦  «        t	          j        |› dt          |¦  «        › d�¦  «        ¦  «        S )Nz -m pipz/[bold][[reset][blue]notice[reset][bold]][reset]z) A new release of pip is available: [red]z[reset] -> [green]z[reset]z To update, run: [green]z install --upgrade pip)	r   r   r   r   r	   Úfrom_markupra   rb   r   )r=   Úpip_cmdÚnotices      r(   Ú__rich__zUpgradePrompt.__rich__‰   sÌ   € Ýð 	9Ý<Ñ>Ô>ÐGÐGÐGˆGˆGå6Ñ8Ô8ˆGàBˆÝÝ‰FŒFÝÔØð Fð FØœðFð FØ48´HðFð Fð Fñô õ ÔØð Bð BÝ  ™/œ/ðBð Bð Bñô ñ

ô 

ð 
	
r*   N)r   r   )rZ   r[   r\   Ú__annotations__rg   r^   r*   r(   r`   r`   „   s<   € € € € € € à€H€H�HØ€H€H�Hð
ð 
ð 
ð 
ð 
ð 
r*   r`   Úsessionr   Úoptionsúoptparse.ValuesrE   c                ó   — t          j        | |d¬¦  «        }t          dt          dh¬¦  «        ¬¦  «        }t	          j        ||¬¦  «        }|                     d¦  «        j        }|€d S t          |j        ¦  «        S )NT)rj   Úsuppress_no_indexFÚpip)Ú
only_final)Úallow_yankedÚrelease_control)Úlink_collectorÚselection_prefs)	r
   Úcreater   r   r   Úfind_best_candidateÚbest_candidater   Úversion)ri   rj   rr   rs   Úfinderrv   s         r(   Ú_get_current_remote_pip_versionry   �   s    € õ #Ô)ØØØðñ ô €Nõ +ØÝ&°5°'Ð:Ñ:Ô:ðñ ô €Oõ
 Ô!Ø%Ø'ðñ ô €Fð ×/Ò/°Ñ6Ô6ÔE€NØÐØˆtåˆ~Ô%Ñ&Ô&Ð&r*   Úlocal_versionr   Úremote_version_strÚinstalled_by_pipÚboolúUpgradePrompt | Nonec                ó:  — t          |¦  «        }t                               d|¦  «         t                               d| ¦  «         t                               d|¦  «         |sd S | |k     o| j        |j        k    }|rt	          t          | ¦  «        |¬¦  «        S d S )NzRemote version of pip: %szLocal version of pip:  %szWas pip installed by pip? %s)ra   rb   )Úparse_versionÚloggerÚdebugÚbase_versionr`   r   )rz   r{   r|   Úremote_versionÚlocal_version_is_olders        r(   Ú_compute_upgrade_promptr†   ¹   s®   € õ #Ð#5Ñ6Ô6€NÝ
‡L‚LÐ,¨nÑ=Ô=Ð=Ý
‡L‚LÐ,¨mÑ<Ô<Ð<Ý
‡L‚LÐ/Ð1AÑBÔBÐBàð Øˆtð 	˜Ò&ð 	FØÔ&¨.Ô*EÒEð ð ð MÝ¥ ]Ñ!3Ô!3Ð9KÐLÑLÔLÐLàˆ4r*   c                ó
  — t          ¦   «                              d¦  «        }|sdS 	 t          ¦   «          n# t          $ r Y dS w xY wt	          |j        ¬¦  «        }t          j                             t          j        j	        ¦  «        }| 
                    |¦  «        }|€Dt          | |¦  «        }|€t                               d¦  «         dS |                     ||¦  «         t          |j        ||j        dk    ¬¦  «        S )an  Compute the pip upgrade prompt, if any, before the command runs.

    Limit the frequency of checks to once per week. State is stored either in
    the active virtualenv or in the user's USER_CACHE_DIR keyed off the prefix
    of the pip script path.

    Pair with :func:`pip_self_version_check_emit`, which displays the prompt
    after the command body runs.
    rn   N)r-   zNo remote pip version found)rz   r{   r|   )r   Úget_distributionr   r   r,   r-   ÚdatetimeÚnowÚtimezoneÚutcrK   ry   r�   r‚   rY   r†   rw   Ú	installer)ri   rj   Úinstalled_distrV   rC   r{   s         r(   Úpip_self_version_check_fetchr�   Î   s  € õ -Ñ.Ô.×?Ò?ÀÑFÔF€NØð ØˆtðÝ Ñ"Ô"Ð"Ð"øÝ'ð ð ð Øˆtˆtðøøøõ  WÔ%6Ð7Ñ7Ô7€EÝÔ$×(Ò(­Ô):Ô)>Ñ?Ô?€LØŸš <Ñ0Ô0ÐØÐ!Ý<¸WÀgÑNÔNÐØÐ%Ý�LŠLÐ6Ñ7Ô7Ð7Ø�4Ø�	Š	Ð$ lÑ3Ô3Ð3å"Ø$Ô,Ø-Ø'Ô1°UÒ:ðñ ô ð s   §6 ¶
AÁAÚupgrade_promptr.   c                óL   — | �!t                                d| ddi¬¦  «         dS dS )zIEmit the upgrade prompt captured by :func:`pip_self_version_check_fetch`.Nz%sÚrichT)Úextra)r�   Úwarning)r�   s    r(   Úpip_self_version_check_emitr•   ó   s2   € àÐ!Ý�Š�t˜^°F¸D°>ˆÑBÔBÐBÐBÐBð "Ð!r*   )r   r   r   r   )ri   r   rj   rk   r   rE   )rz   r   r{   r   r|   r}   r   r~   )ri   r   rj   rk   r   r~   )r�   r~   r   r.   )>Ú
__future__r   r‰   r#   r8   ÚloggingÚoptparseÚos.pathr4   rA   Údataclassesr   Úpip._vendor.packaging.versionr   r   r€   Úpip._vendor.rich.consoler   Úpip._vendor.rich.markupr   Úpip._vendor.rich.textr	   Úpip._internal.index.collectorr
   Ú"pip._internal.index.package_finderr   Úpip._internal.metadatar   Ú$pip._internal.models.release_controlr   Ú$pip._internal.models.selection_prefsr   Úpip._internal.network.sessionr   Úpip._internal.utils.compatr   Úpip._internal.utils.datetimer   Úpip._internal.utils.entrypointsr   r   Úpip._internal.utils.filesystemr   r   r   r   Úpip._internal.utils.miscr   r   r   Ú	timedeltarI   Ú	getLoggerrZ   r�   r)   r,   r`   ry   r†   r�   r•   r^   r*   r(   ú<module>r¬      së  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø €€€Ø €€€Ø €€€Ø €€€Ø 
€
€
€
Ø !Ð !Ð !Ð !Ð !Ð !à 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø @Ð @Ð @Ð @Ð @Ð @Ø *Ð *Ð *Ð *Ð *Ð *Ø *Ð *Ð *Ð *Ð *Ð *Ø &Ð &Ð &Ð &Ð &Ð &à 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø <Ð <Ð <Ð <Ð <Ð <Ø :Ð :Ð :Ð :Ð :Ð :Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø EÐ EÐ EÐ EÐ EÐ EØ 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø .Ð .Ð .Ð .Ð .Ð .Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;ðð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð 	ˆÔ Ð"Ñ"Ô"€à	ˆÔ	˜8Ñ	$Ô	$€ðð ð ð ðLð Lð Lð Lð Lñ Lô Lð Lð^ ð
ð 
ð 
ð 
ð 
ñ 
ô 
ñ „ð
ð0'ð 'ð 'ð 'ð8ð ð ð ð*"ð "ð "ð "ðJCð Cð Cð Cð Cð Cr*   