+
    Bi                        ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt	^ RI
t
^ RIHt ^ RIHtHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ R	IHt ^ R
IHt ^ RIHt ^ RIHt ^ RI H!t! ^ RI"H#t# ^ RI$H%t% ^ RI&H't'H(t( ^ RI)H*t*H+t+H,t, ^ RI-H.t.H/t/H0t0 ]Pb                  ! ^R7      t2]Pf                  ! ]44      t5R R lt6R R lt7 ! R R4      t8] ! R R4      4       t9R R lt:R R lt;R  R! lt<R" R# lt=R# )$    )annotationsN)	dataclass)AnyCallable)Version)parse)Group)escape)Text)LinkCollector)PackageFinder)get_default_environment)SelectionPreferences)
PipSession)WINDOWS) get_best_invocation_for_this_pip#get_best_invocation_for_this_python)adjacent_tmp_filecheck_path_ownerreplace)ExternallyManagedEnvironmentcheck_externally_managed
ensure_dir)daysc                    V ^8  d   QhRRRR/# )   keystrreturn )formats   "F/usr/lib/python3.14/site-packages/pip/_internal/self_outdated_check.py__annotate__r#   *   s      S S     c                n    V P                  4       p\        P                  ! V4      P                  4       pV# N)encodehashlibsha224	hexdigest)r   	key_bytesnames   &  r"   _get_statefile_namer-   *   s)    

I>>)$..0DKr$   c                    V ^8  d   QhRRRR/# )r   isodater   r   datetime.datetimer    )r!   s   "r"   r#   r#   0   s     K K3 K#4 Kr$   c                `    \         P                   P                  V P                  RR4      4      # )zConvert an ISO format string to a date.

Handles the format 2020-01-22T14:24:01Z (trailing Z)
which is not supported by older versions of fromisoformat.
Zz+00:00)datetimefromisoformatr   )r/   s   &r"   _convert_dater5   0   s&     **7??3+IJJr$   c                  P    ] tR t^9tR R lt]R R l4       tR R ltR R ltR	t	R
# )SelfCheckStatec                    V ^8  d   QhRRRR/# )r   	cache_dirr   r   Noner    )r!   s   "r"   r#   SelfCheckState.__annotate__:   s      # $ r$   c                	   / V n         R V n        V'       d   \        P                  P	                  VR\        V P                  4      4      V n         \        V P                  RR7      ;_uu_ 4       p\        P                  ! V4      V n         R R R 4       R # R #   + '       g   i     R # ; i  \        \        \        3 d     R # i ; i)N	selfcheckzutf-8)encoding)_state_statefile_pathospathjoinr-   r   openjsonloadOSError
ValueErrorKeyError)selfr9   	statefiles   && r"   __init__SelfCheckState.__init__:   s    &(# #%77<<;(;DHH(E$D $..AAY"&))I"6DK BA 
 BAAZ2  s0   B, 0BB, B)	#B, )B, ,CCc                   V ^8  d   QhRR/# )r   r   r   r    )r!   s   "r"   r#   r;   L   s      S r$   c                	"    \         P                  # r&   )sysprefix)rJ   s   &r"   r   SelfCheckState.keyK   s    zzr$   c                    V ^8  d   QhRRRR/# )r   current_timer0   r   
str | Noner    )r!   s   "r"   r#   r;   O   s     + + 1 +j +r$   c                    V P                   '       g   R# RV P                   9  d   R# RV P                   9  d   R# \        V P                   R,          4      pW,
          pV\        8  d   R# V P                   R,          # )z7Check if we have a not-outdated version loaded already.N
last_checkpypi_version)r?   r5   _WEEK)rJ   rT   rW   time_since_last_checks   &&  r"   getSelfCheckState.getO   sd    {{{t{{*, #4;;|#<=
 , 9 5({{>**r$   c               $    V ^8  d   QhRRRRRR/# )r   rX   r   rT   r0   r   r:   r    )r!   s   "r"   r#   r;   b   s"          3D    r$   c                	   V P                   '       g   R # \        \        P                  P	                  V P                   4      4      '       g   R # \        \        P                  P	                  V P                   4      4       RV P                  RVP                  4       RV/p\        P                  ! VRRR7      p\        V P                   4      ;_uu_ 4       pVP                  VP                  4       4       R R R 4        \        XP                  V P                   4       R #   + '       g   i     L3; i  \         d     R # i ; i)Nr   rW   rX   T)	sort_keys
separators),:)r@   r   rA   rB   dirnamer   r   	isoformatrE   dumpsr   writer'   r   r,   rG   )rJ   rX   rT   statetextfs   &&&   r"   setSelfCheckState.setb   s    ###  0D0D EFF 	277??4#7#789
 488,002L
 zz%4JGt3344GGDKKM" 5	 AFFD001 54  		s    D"  D5 "D2	5EE)r?   r@   N)
__name__
__module____qualname____firstlineno__rL   propertyr   r[   rj   __static_attributes__r    r$   r"   r7   r7   9   s*    "  +&   r$   r7   c                  8    ] tR t^t$ R]R&   R]R&   R R ltRtR# )UpgradePromptr   oldnewc                   V ^8  d   QhRR/# )r   r   r	   r    )r!   s   "r"   r#   UpgradePrompt.__annotate__   s     
 
% 
r$   c                	    \         '       d   \        4        R 2pM
\        4       pRp\        \	        4       \        P
                  ! V RV P                   RV P                   R24      \        P
                  ! V R\        V4       R24      4      # )z -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_markuprt   ru   r
   )rJ   pip_cmdnotices   &  r"   __rich__UpgradePrompt.__rich__   s    7<>?wGG68GBF( z!3DHH:WF (  /**@B

 
	
r$   r    N)rl   rm   rn   ro   __annotations__r|   rq   r    r$   r"   rs   rs      s    	H	H
 
r$   rs   c                    V ^8  d   QhRRRR/# )r   pkgr   r   boolr    )r!   s   "r"   r#   r#      s     8 8c 8d 8r$   c                j    \        4       P                  V 4      pVRJ;'       d    RVP                  8H  # )zChecks whether pkg was installed by pip

This is used not to display the upgrade message when pip is in fact
installed by system package manager, such as dnf on Fedora.
Npip)r   get_distribution	installer)r   dists   & r"   was_installed_by_pipr      s3     #$55c:Dt77 77r$   c               $    V ^8  d   QhRRRRRR/# )r   sessionr   optionsoptparse.Valuesr   rU   r    )r!   s   "r"   r#   r#      s$     ' ''"1''r$   c                    \         P                  ! V VR R7      p\        RRR7      p\        P                  ! VVR7      pVP	                  R4      P
                  pVf   R# \        VP                  4      # )T)r   suppress_no_indexF)allow_yankedallow_all_prereleases)link_collectorselection_prefsr   N)r   creater   r   find_best_candidatebest_candidater   version)r   r   r   r   finderr   s   &&    r"   _get_current_remote_pip_versionr      sy     #))N +#O
 !!%'F //6EEN~%%&&r$   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r   rg   r7   rT   r0   local_versionr   get_remote_versionzCallable[[], str | None]r   zUpgradePrompt | Noner    )r!   s   "r"   r#   r#      s<       $ 	
 1 r$   c                   V P                  V4      pVf4   V! 4       pVf   \        P                  R4       R # V P                  WA4       \	        V4      p\        P                  RV4       \        P                  RV4       \        R4      p\        P                  RV4       V'       g   R # W%8  ;'       d    VP                  VP                  8g  pV'       d   \        \        V4      VR7      # R # )NzNo remote pip version foundzRemote version of pip: %szLocal version of pip:  %sr   zWas pip installed by pip? %s)rt   ru   )	r[   loggerdebugrj   parse_versionr   base_versionrs   r   )rg   rT   r   r   remote_version_strremote_versionpip_installed_by_piplocal_version_is_olders   $$$$    r"   _self_version_check_logicr      s     <0!/1%LL67		$3"#56N
LL,n=
LL,m</6
LL/1EF 	& 	F 	F&&.*E*EE  ]!39KLLr$   c               $    V ^8  d   QhRRRRRR/# )r   r   r   r   r   r   r:   r    )r!   s   "r"   r#   r#      s&     C CJ C CT Cr$   c           
        \        4       P                  R4      pV'       g   R#  \        4        \	        \        TP                  R7      \        P                  P                  \        P                  P                  4      TP                  \        P                  ! \        Y4      R7      pTe   \        P!                  RTRR/R7       R# R#   \         d     R# i ; i)	zCheck for an update for pip.

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.
r   N)r9   )rg   rT   r   r   z%srichT)extra)r   r   r   r   r   r7   r9   r3   nowtimezoneutcr   	functoolspartialr   r   warning)r   r   installed_distupgrade_prompts   &&  r"   pip_self_version_checkr      s     -.??FN " /w'8'89&&**8+<+<+@+@A$,,$,,+W
	N !t^FD>B " ( s   
C CC)>
__future__r   r3   r   r(   rE   loggingoptparseos.pathrA   rP   dataclassesr   typingr   r   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.selection_prefsr   pip._internal.network.sessionr   pip._internal.utils.compatr   pip._internal.utils.entrypointsr   r   pip._internal.utils.filesystemr   r   r   pip._internal.utils.miscr   r   r   	timedeltarY   	getLoggerrl   r   r-   r5   r7   rs   r   r   r   r   r    r$   r"   <module>r      s    "        
 !   1 @ * * & 7 < : E 4 . X W  	"			8	$KI IX 
 
 
08'8DCr$   