HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/pip/_internal/commands/__pycache__/index.cpython-310.pyc
o

@%Ne��@s�ddlZddlmZddlmZmZmZmZmZddl	m
Z
mZddlm
Z
ddlmZddlmZmZddlmZdd	lmZmZmZdd
lmZddlmZddlmZdd
lm Z ddl!m"Z"ddl#m$Z$e�%e&�Z'Gdd�de�Z(dS)�N)�Values)�Any�Iterable�List�Optional�Union)�
LegacyVersion�Version)�
cmdoptions)�IndexGroupCommand)�ERROR�SUCCESS)�print_dist_installation_info)�CommandError�DistributionNotFound�PipError)�
LinkCollector)�
PackageFinder)�SelectionPreferences)�TargetPython)�
PipSession)�write_outputc@s~eZdZdZdZddd�Zdedeede	fd	d
�Z
		ddededee
d
eedef
dd�Zdedeeddfdd�ZdS)�IndexCommandz=
    Inspect information available from package indexes.
    z&
        %prog versions <package>
    �returnNcCs~t�|j�|j�t���|j�t���|j�t���|j�t���t�tj	|j
�}|j
�d|�|j
�d|j�dS)Nr)r
�add_target_python_options�cmd_opts�
add_option�ignore_requires_python�pre�	no_binary�only_binary�make_option_group�index_group�parser�insert_option_group)�self�
index_opts�r'�>/usr/lib/python3/dist-packages/pip/_internal/commands/index.py�add_optionss�zIndexCommand.add_options�options�argsc
Cs�d|ji}t�d�|r|d|vrt�dd�t|���tS|d}z||||dd��Wt	StyM}zt�|jd�tWYd}~Sd}~ww)N�versionsztpip index is currently an experimental command. It may be removed/changed in a future release without prior warning.rzNeed an action (%s) to perform.�, �)
�get_available_package_versions�logger�warning�error�join�sortedrrr+r
)r%r*r+�handlers�action�er'r'r(�run/s(������zIndexCommand.run�session�
target_pythonrcCs6tj||d�}td|j|d�}tj|||d|jvd�S)zK
        Create a package finder appropriate to the index command.
        )r*F)�allow_yanked�allow_all_prereleasesr�html5lib)�link_collector�selection_prefsr:�use_deprecated_html5lib)r�createrrr�deprecated_features_enabled)r%r*r9r:rr>r?r'r'r(�_build_package_finderMs
��z"IndexCommand._build_package_finderc
Cs�t|�dkr
td��t�|�}|d}|�|��B}|j||||jd�}dd�|�|�D�}|js7dd�|D�}t	|�}|sDt
d�|���d	d
�t|dd�D�}|d}	Wd�n1s]wYt
d
�||	��t
d�d�|���t||	�dS)Nr.z(You need to specify exactly one argumentr)r*r9r:rcss�|]}|jVqdS�N)�version)�.0�	candidater'r'r(�	<genexpr>vs�
�z>IndexCommand.get_available_package_versions.<locals>.<genexpr>css�|]}|js|VqdSrD)�
is_prerelease)rFrEr'r'r(rH|s��
�z%No matching distribution found for {}cSsg|]}t|��qSr')�str)rF�verr'r'r(�
<listcomp>�sz?IndexCommand.get_available_package_versions.<locals>.<listcomp>T)�reversez{} ({})zAvailable versions: {}r-)�lenrr
�make_target_python�_build_sessionrCr�find_all_candidatesr�setr�formatr4rr3r)
r%r*r+r:�queryr9�finderr,�formatted_versions�latestr'r'r(r/gs:
����
�z+IndexCommand.get_available_package_versions)rN)NN)�__name__�
__module__�__qualname__�__doc__�usager)rrrJ�intr8rrr�boolrrCrr/r'r'r'r(rs&
"�����
�r))�logging�optparser�typingrrrrr�pip._vendor.packaging.versionrr	�pip._internal.clir
�pip._internal.cli.req_commandr�pip._internal.cli.status_codesrr
�pip._internal.commands.searchr�pip._internal.exceptionsrrr�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�	getLoggerrXr0rr'r'r'r(�<module>s"