Ë
    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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' d dl(m)Z)m*Z* d dl+m,Z,m-Z-m.Z.m/Z/ d dl0m1Z1m2Z2m3Z3m4Z4  ejj                  d¬«      Z6 ejn                  e8«      Z9d d„Z: G d„ d«      Z;e G d„ d«      «       Z<	 	 	 	 	 	 d!d„Z=	 d"	 	 	 	 	 	 	 	 	 d#d„Z>	 	 	 	 	 	 d$d„Z?d%d„Z@y)&é    )ÚannotationsN)Ú	dataclass)ÚVersion)Úparse)ÚGroup)Úescape)ÚText)Ú__version__)Ú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Úrunning_under_zipappé   )Údaysc                ól   — | j                  «       }t        j                  |«      j                  «       }|S ©N)ÚencodeÚhashlibÚsha224Ú	hexdigest)ÚkeyÚ	key_bytesÚnames      úf/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/pip/_internal/self_outdated_check.pyÚ_get_statefile_namer)   1   s)   € Ø—
‘
“€IÜ�>‰>˜)Ó$×.Ñ.Ó0€DØ€Kó    c                  ó6   — e Zd Zdd„Zedd„«       Zdd„Zd	d„Zy)
ÚSelfCheckStatec                óZ  — i | _         d | _        |rut        j                  j	                  |dt        | j                  «      «      | _        	 t        | j                  d¬«      5 }t        j                  |«      | _         d d d «       y y # 1 sw Y   y xY w# t        t        t        f$ r Y y w xY w)NÚ	selfcheckzutf-8)Úencoding)Ú_stateÚ_statefile_pathÚosÚpathÚjoinr)   r%   ÚopenÚjsonÚloadÚOSErrorÚ
ValueErrorÚKeyError)ÚselfÚ	cache_dirÚ	statefiles      r(   Ú__init__zSelfCheckState.__init__8   sœ   € Ø&(ˆŒØ#ˆÔñ Ü#%§7¡7§<¡<Ø˜;Ô(;¸D¿H¹HÓ(Eó$ˆDÔ ðÜ˜$×.Ñ.¸ÔAð 7ÀYÜ"&§)¡)¨IÓ"6�D”K÷7ð 7ð ÷
7ð 7ûäœZ¬Ð2ò ñ ðús0   ÁB Á"BÁ=B ÂBÂB ÂB ÂB*Â)B*c                ó"   — t         j                  S r    )ÚsysÚprefix)r;   s    r(   r%   zSelfCheckState.keyI   s   € ä�z‰zÐr*   c                óÄ   — | j                   syd| j                   vryd| j                   vryt        | j                   d   «      }||z
  }|t        kD  ry| j                   d   S )z7Check if we have a not-outdated version loaded already.NÚ
last_checkÚpypi_version)r0   r   Ú_WEEK)r;   Úcurrent_timerC   Útime_since_last_checks       r(   ÚgetzSelfCheckState.getM   sd   € à�{Š{Øà˜tŸ{™{Ñ*Øà §¡Ñ,Øô (¨¯©°LÑ(AÓBˆ
Ø ,¨zÑ 9ÐØ ¤5Ò(Øà�{‰{˜>Ñ*Ð*r*   c                ó  — | j                   sy t        j                  j                  | j                   «      }t	        |«      sy t        |«       | j                  |j                  «       |dœ}t        j                  |dd¬«      }t        | j                   «      5 }|j                  |j                  «       «       t        ||«       d d d «       	 t        j                  | j                   «       y # 1 sw Y   Œ+xY w# t         $ r Y y w xY w)N)r%   rC   rD   T)ú,ú:)Ú	sort_keysÚ
separators)r1   r2   r3   Údirnamer   r   r%   Ú	isoformatr6   Údumpsr   Úwriter!   r   r   r'   r8   )r;   rD   rF   Ústatefile_directoryÚstateÚtextÚfs          r(   ÚsetzSelfCheckState.set`   sã   € à×#Ò#Øä Ÿg™gŸo™o¨d×.BÑ.BÓCÐô  Ð 3Ô4Øô 	Ð&Ô'ð
 —8‘8Ø&×0Ñ0Ó2Ø(ñ
ˆô �z‰z˜%¨4¸JÔGˆä˜t×3Ñ3Ó4ð 	?¸Ø�G‰G�D—K‘K“MÔ"Ü&Ð':¸AÔ>÷	?ð	ô �A—F‘F˜D×0Ñ0Õ1÷	?ð 	?ûô ò 	áð	ús   Â,C/Ã C; Ã/C8Ã;	DÄDN)r<   ÚstrÚreturnÚNone)rX   rW   )rF   údatetime.datetimerX   ú
str | None)rD   rW   rF   rZ   rX   rY   )Ú__name__Ú
__module__Ú__qualname__r>   Úpropertyr%   rH   rV   © r*   r(   r,   r,   7   s%   „ óð" òó ðó+ô&#r*   r,   c                  ó8   — e Zd ZU ded<   ded<   dZded<   d	d„Zy)
ÚUpgradePromptrW   ÚoldÚnewTÚboolÚshow_upgrade_hintc           	     óH  — d}t        «       t        j                  |› d| j                  › d| j                  › d�«      g}| j                  rQt
        rt        «       › d�}n
t        «       }|j                  t        j                  |› dt        |«      › d�«      «       t        |Ž S )Nz/[bold][[reset][blue]notice[reset][bold]][reset]z) A new release of pip is available: [red]z[reset] -> [green]z[reset]z -m pipz To update, run: [green]z install --upgrade pip)r	   Úfrom_markuprc   rd   rf   r   r   r   Úappendr   r   )r;   ÚnoticeÚlinesÚpip_cmds       r(   Ú__rich__zUpgradePrompt.__rich__Œ   s°   € ØBˆä‹FÜ×ÑØ�(ð ØŸ™�zÐ!3°D·H±H°:¸WðFóð
ˆð ×!Ò!ÝÜ@ÓBÐCÀ7ÐK‘ä:Ó<�à�L‰LÜ× Ñ Ø�hð Ü$ W›oÐ.Ð.DðFóôô �eˆ}Ðr*   N)rX   r   )r\   r]   r^   Ú__annotations__rf   rm   r`   r*   r(   rb   rb   †   s   … à	ƒHØ	ƒHØ"Ð�tÓ"ôr*   rb   c                óö   — t        j                  | |d¬«      }t        dt        dh¬«      ¬«      }t	        j                  ||¬«      }|j                  d«      j                  }|€y t        |j                  «      S )NT)ÚoptionsÚsuppress_no_indexFÚpip)Ú
only_final)Úallow_yankedÚrelease_control)Úlink_collectorÚselection_prefs)	r   Úcreater   r   r   Úfind_best_candidateÚbest_candidaterW   Úversion)Úsessionrp   rv   rw   Úfinderrz   s         r(   Ú_get_current_remote_pip_versionr~   ¤   s€   € ô #×)Ñ)ØØØô€Nô +ØÜ&°5°'Ô:ô€Oô
 ×!Ñ!Ø%Ø'ô€Fð ×/Ñ/°Ó6×EÑE€NØÐØäˆ~×%Ñ%Ó&Ð&r*   c                ó  — t        |«      }t        j                  d|«       t        j                  d| «       t        j                  d|«       |sy | |k  xr | j                  |j                  k7  }|rt	        t        | «      ||¬«      S y )NzRemote version of pip: %szLocal version of pip:  %szWas pip installed by pip? %s)rc   rd   rf   )Úparse_versionÚloggerÚdebugÚbase_versionrb   rW   )Úlocal_versionÚremote_version_strÚinstalled_by_piprf   Úremote_versionÚlocal_version_is_olders         r(   Ú_compute_upgrade_promptr‰   À   s‘   € ô #Ð#5Ó6€NÜ
‡L�LÐ,¨nÔ=Ü
‡L�LÐ,¨mÔ<Ü
‡L�LÐ/Ð1AÔBáØð 	˜Ñ&ò 	FØ×&Ñ&¨.×*EÑ*EÑEð ñ ÜÜ�MÓ"Ø"Ø/ô
ð 	
ð r*   c                ó8  — t        «       rt        t        «      }d}nBt        «       j	                  d«      }|sy	 t        «        |j                  }|j                  dk(  }t        |j                  ¬«      }t        j                  j                  t        j                  j                  «      }|j                  |«      }|€6t!        | |«      }|€t"        j%                  d«       y|j'                  ||«       t)        |||t        «        ¬«      S # t        $ r Y yw xY w)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.
    Trr   N)r<   zNo remote pip version found)r„   r…   r†   rf   )r   r€   r
   r   Úget_distributionr   r   r{   Ú	installerr,   r<   ÚdatetimeÚnowÚtimezoneÚutcrH   r~   r�   r‚   rV   r‰   )r|   rp   r„   r†   Úinstalled_distrS   rF   r…   s           r(   Úpip_self_version_check_fetchr’   Ü   s
  € ô Ôô &¤kÓ2ˆØÑä0Ó2×CÑCÀEÓJˆÙØð	Ü$Ô&ð '×.Ñ.ˆØ)×3Ñ3°uÑ<Ðä W×%6Ñ%6Ô7€EÜ×$Ñ$×(Ñ(¬×):Ñ):×)>Ñ)>Ó?€LØŸ™ <Ó0ÐØÐ!Ü<¸WÀgÓNÐØÐ%Ü�L‰LÐ6Ô7ØØ�	‰	Ð$ lÔ3ä"Ø#Ø-Ø)Ü2Ó4Ð4ô	ð øô! ,ò 	Ùð	ús   º
D Ä	DÄDc                ó>   — | �t         j                  d| ddi¬«       yy)zIEmit the upgrade prompt captured by :func:`pip_self_version_check_fetch`.Nz%sÚrichT)Úextra)r�   Úwarning)Úupgrade_prompts    r(   Úpip_self_version_check_emitr˜     s#   € àÐ!Ü�‰�t˜^°F¸D°>ˆÕBð "r*   )r%   rW   rX   rW   )r|   r   rp   úoptparse.ValuesrX   r[   )T)
r„   r   r…   rW   r†   re   rf   re   rX   úUpgradePrompt | None)r|   r   rp   r™   rX   rš   )r—   rš   rX   rY   )AÚ
__future__r   r�   r"   r6   ÚloggingÚoptparseÚos.pathr2   r@   Údataclassesr   Úpip._vendor.packaging.versionr   r   r€   Úpip._vendor.rich.consoler   Úpip._vendor.rich.markupr   Úpip._vendor.rich.textr	   rr   r
   Ú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   r   Ú	timedeltarE   Ú	getLoggerr\   r�   r)   r,   rb   r~   r‰   r’   r˜   r`   r*   r(   ú<module>r±      s.  ðÝ "ã Û Û Û Û Û Û 
Ý !å 1Ý @Ý *Ý *Ý &å Ý 7Ý <Ý :Ý ?Ý EÝ 4Ý .Ý ;÷÷ó ÷ó ð 	ˆ×Ñ Ô"€à	ˆ×	Ñ	˜8Ó	$€ó÷Lñ Lð^ ÷ð ó ðð:'Øð'Ø"1ð'àó'ð@ #ð	Øðàðð ðð ð	ð
 óð8,Øð,Ø"1ð,àó,ô^Cr*   