
    鴀j                    6   d dl mZ d dlZd dlZd dlmZ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 d dlmZmZmZ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)  ej*        e+          Z, G d de          Z-dS )    )annotationsN)CallableIterable)Values)Any)canonicalize_name)Version)
cmdoptions)IndexGroupCommand)ERRORSUCCESS)get_installed_distributionprint_dist_installation_info)CommandErrorDiagnosticPipErrorDistributionNotFoundPipError)LinkCollector)PackageFinder)SelectionPreferences)TargetPython)
PipSession)write_outputc                  H    e Zd ZdZdZdZddZddZddZ	 	 dddZ	d dZ
dS )!IndexCommandz=
    Inspect information available from package indexes.
    Tz&
        %prog versions <package>
    returnNonec                    t          j        | j                   | j                            t          j                               | j                            t          j                               t          j        t           j        | j                  }t          j        t           j	        | j                  }| j        
                    d|           | j        
                    d|           | j        
                    d| j                   d S )Nr   )r
   add_target_python_optionscmd_opts
add_optionignore_requires_pythonjsonmake_option_groupindex_groupparserpackage_selection_groupinsert_option_group)self
index_optsselection_optss      f/workspace/show-city-briefing-agent/.venv/lib/python3.11/site-packages/pip/_internal/commands/index.pyadd_optionszIndexCommand.add_options-   s    ,T];;;  !B!D!DEEE  !2!23331"K
 


 $5.K
 

 	'':666''>:::''4=99999    .dict[str, Callable[[Values, list[str]], None]]c                    d| j         iS )Nversions)get_available_package_versions)r)   s    r,   handler_mapzIndexCommand.handler_mapA   s    ;
 	
r.   optionsr   args	list[str]intc                   t          j        |           |                                 }|r
|d         |vrBt                              dd                    t          |                               t          S |d         }	  ||         ||dd                     nM# t          $ r  t          $ r6}t                              |j
        d                    t          cY d }~S d }~ww xY wt          S )Nr   zNeed an action (%s) to perform.,    )r
   check_release_control_exclusiver3   loggererrorjoinsortedr   r   r   r5   r   )r)   r4   r5   r3   actiones         r,   runzIndexCommand.runF   s   27;;;&&((  	tAwk11LL1		&--..   La	Kabb2222! 	 	 	 	 	 	LL###LLLLLL	 s    B C%/+C C% C%NFsessionr   target_pythonTargetPython | Noner"   boolr   c                    t          j        ||          }t          d|j        |j        |          }t          j        ||||j                  S )zK
        Create a package finder appropriate to the index command.
        )r4   F)allow_yankedrelease_controlformat_controlr"   )link_collectorselection_prefsrD   uploaded_prior_to)r   creater   rI   rJ   r   rM   )r)   r4   rC   rD   r"   rK   rL   s          r,   _build_package_finderz"IndexCommand._build_package_finder`   sl     '-gwGGG /#3"1#9	
 
 
 #)+'%7	
 
 
 	
r.   	list[Any]c                   t          |          dk    rt          d          t          j        |          }|d         }|                     |          5 }|                     ||||j                  }d |                    |          D             }|                     |t          |                    rd |D             }t          |          }|st          d|           d t          |d	
          D             }|d         }	d d d            n# 1 swxY w Y   t          |          }
|j        rB|||	d}|
t          |
j                  |d<   t#          t          j        |                     d S t#          | d|	 d           t#          d                    d                    |                               t+          |	|
           d S )Nr:   z(You need to specify exactly one argumentr   )r4   rC   rD   r"   c              3  $   K   | ]}|j         V  d S N)version).0	candidates     r,   	<genexpr>z>IndexCommand.get_available_package_versions.<locals>.<genexpr>   s6       + +&/	!+ + + + + +r.   c              3  (   K   | ]}|j         	|V  d S rS   )is_prerelease)rU   rT   s     r,   rW   z>IndexCommand.get_available_package_versions.<locals>.<genexpr>   s>         '7;P     r.   z#No matching distribution found for c                ,    g | ]}t          |          S  )str)rU   vers     r,   
<listcomp>z?IndexCommand.get_available_package_versions.<locals>.<listcomp>   s    !U!U!Us#c((!U!U!Ur.   T)reverse)namer1   latestinstalled_versionz ()zAvailable versions: {}r9   )lenr   r
   make_target_python_build_sessionrO   r"   find_all_candidatesshould_exclude_prereleaser   setr   r?   r   r#   r\   rT   r   dumpsformatr>   r   )r)   r4   r5   rD   queryrC   finderr1   formatted_versionsra   diststructured_outputs               r,   r2   z+IndexCommand.get_available_package_versions{   sb   t99>>IJJJ"5g>>Q  )) 	+W//+'.'E	 0  F+ +393M3Me3T3T+ + +H --g7H7O7OPP  +3   8}}H *A%AA   "V!UfXt6T6T6T!U!U!U'*F1	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+4 *%00< 	7. ! ! 9<T\9J9J!"56$56677777 E..V...///188CU9V9VWWXXX(66666s   B3DDD)r   r   )r   r/   )r4   r   r5   r6   r   r7   )NF)
r4   r   rC   r   rD   rE   r"   rF   r   r   )r4   r   r5   rP   r   r   )__name__
__module____qualname____doc__ignore_require_venvusager-   r3   rB   rO   r2   r[   r.   r,   r   r   #   s          E: : : :(
 
 
 

   < .2',
 
 
 
 
627 27 27 27 27 27r.   r   ).
__future__r   r#   loggingcollections.abcr   r   optparser   typingr   pip._vendor.packaging.utilsr   pip._vendor.packaging.versionr	   pip._internal.clir
   pip._internal.cli.req_commandr   pip._internal.cli.status_codesr   r   pip._internal.commands.searchr   r   pip._internal.exceptionsr   r   r   r   pip._internal.index.collectorr   "pip._internal.index.package_finderr   $pip._internal.models.selection_prefsr   "pip._internal.models.target_pythonr   pip._internal.network.sessionr   pip._internal.utils.miscr   	getLoggerrq   r<   r   r[   r.   r,   <module>r      s   " " " " " "   . . . . . . . .             9 9 9 9 9 9 1 1 1 1 1 1 ( ( ( ( ( ( ; ; ; ; ; ; 9 9 9 9 9 9 9 9                   8 7 7 7 7 7 < < < < < < E E E E E E ; ; ; ; ; ; 4 4 4 4 4 4 1 1 1 1 1 1		8	$	$J7 J7 J7 J7 J7$ J7 J7 J7 J7 J7r.   