
    Wh{                    &   d dl mZ d dlZd dlZd dlmZ d dlm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mZ d d
lmZmZ d dl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)Iterable)Values)AnyCallable)Version)
cmdoptions)IndexGroupCommand)ERRORSUCCESS)get_installed_distributionprint_dist_installation_info)CommandError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                               | j                            t          j                               | j                            t          j                               | j                            t          j                               t          j	        t           j
        | j                  }| j                            d|           | j                            d| j                   d S )Nr   )r	   add_target_python_optionscmd_opts
add_optionignore_requires_pythonprejson	no_binaryonly_binarymake_option_groupindex_groupparserinsert_option_group)self
index_optss     n/var/www/tools.fuzzalab.pt/emblema-extractor/venv/lib/python3.11/site-packages/pip/_internal/commands/index.pyadd_optionszIndexCommand.add_options'   s   ,T];;;  !B!D!DEEE  !1!1222  !2!2333  !5!7!7888  !7!9!9:::1"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_map8   s    ;
 	
r-   optionsr   args	list[str]intc                   |                                  }|r
|d         |vrBt                              dd                    t	          |                               t
          S |d         }	  ||         ||dd                     nC# 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.,    )	r2   loggererrorjoinsortedr   r   r4   r   )r)   r3   r4   r2   actiones         r+   runzIndexCommand.run=   s    &&((  	tAwk11LL1		&--..   La	Kabb2222 	 	 	LL###LLLLLL	 s   ,B 
C+C<CCNsessionr   target_pythonTargetPython | Noner    bool | Noner   c                    t          j        ||          }t          d|j        |          }t	          j        |||          S )zK
        Create a package finder appropriate to the index command.
        )r3   F)allow_yankedallow_all_prereleasesr    )link_collectorselection_prefsrB   )r   creater   r!   r   )r)   r3   rA   rB   r    rH   rI   s          r+   _build_package_finderz"IndexCommand._build_package_finderS   s_     '-gwGGG /")+#9
 
 
 #)+'
 
 
 	
r-   	list[Any]c                l   t          |          dk    rt          d          t          j        |          }|d         }|                     |          5 }|                     ||||j                  }d |                    |          D             }|j        s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 )Nr9   z(You need to specify exactly one argumentr   )r3   rA   rB   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 rO   )is_prerelease)rQ   rP   s     r+   rS   z>IndexCommand.get_available_package_versions.<locals>.<genexpr>   s>         '7;P     r-   z#No matching distribution found for c                ,    g | ]}t          |          S  )str)rQ   vers     r+   
<listcomp>z?IndexCommand.get_available_package_versions.<locals>.<listcomp>   s    !U!U!Us#c((!U!U!Ur-   T)reverse)namer0   latestinstalled_versionz ()zAvailable versions: {}r8   )lenr   r	   make_target_python_build_sessionrK   r    find_all_candidatesr!   setr   r=   r   r"   rX   rP   r   dumpsformatr<   r   )r)   r3   r4   rB   queryrA   finderr0   formatted_versionsr]   diststructured_outputs               r+   r1   z+IndexCommand.get_available_package_versionsl   sK   t99>>IJJJ"5g>>Q  )) 	+W//+'.'E	 0  F+ +393M3Me3T3T+ + +H ;  +3   8}}H *A%AA   "V!UfXt6T6T6T!U!U!U'*F3	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+6 *%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   BC77C;>C;)r   r   )r   r.   )r3   r   r4   r5   r   r6   )NN)
r3   r   rA   r   rB   rC   r    rD   r   r   )r3   r   r4   rL   r   r   )__name__
__module____qualname____doc__ignore_require_venvusager,   r2   r@   rK   r1   rW   r-   r+   r   r      s          E: : : :"
 
 
 

   4 .2.2
 
 
 
 
237 37 37 37 37 37r-   r   )+
__future__r   r"   loggingcollections.abcr   optparser   typingr   r   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   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   	getLoggerrl   r:   r   rW   r-   r+   <module>r      s   " " " " " "   $ $ $ $ $ $                       1 1 1 1 1 1 ( ( ( ( ( ( ; ; ; ; ; ; 9 9 9 9 9 9 9 9        R Q Q Q Q Q Q Q Q Q 7 7 7 7 7 7 < < < < < < E E E E E E ; ; ; ; ; ; 4 4 4 4 4 4 1 1 1 1 1 1		8	$	$B7 B7 B7 B7 B7$ B7 B7 B7 B7 B7r-   