o
ai @ s d dl Z d dlmZ d dlmZmZmZmZmZ d dl m
Z
mZ d dlm
Z
d dlmZ d dlmZmZ d dlmZ d d lmZmZmZ d d
lmZ d dlmZ d dlmZ d d
lm Z d dl!m"Z" d dl#m$Z$ e %e&Z'G dd deZ(dS ) N)Values)AnyIterableListOptionalUnion)
LegacyVersionVersion)
cmdoptions)IndexGroupCommand)ERRORSUCCESS)print_dist_installation_info)CommandErrorDistributionNotFoundPipError)
LinkCollector)
PackageFinder)SelectionPreferences)TargetPython)
PipSession)write_outputc @ s~ e Zd ZdZdZdddZdedee de fd d
Z
ddededee
d
ee def
ddZdedee ddfddZdS )IndexCommandz=
Inspect information available from package indexes.
z&
%prog versions
returnNc C s~ t | j | jt | jt | jt | jt t t j | j
}| j
d| | j
d| j d S )Nr )r
add_target_python_optionscmd_opts
add_optionignore_requires_pythonpre no_binaryonly_binarymake_option_groupindex_groupparserinsert_option_group)self
index_opts r' /builddir/build/BUILDROOT/alt-python310-pip-21.3.1-5.el8.x86_64/opt/alt/python310/lib/python3.10/site-packages/pip/_internal/commands/index.pyadd_options s zIndexCommand.add_optionsoptionsargsc
C s d| j i}td |r|d |vrtddt| tS |d }z|| ||dd W t S tyM } zt|jd tW Y d }~S d }~ww )Nversionsztpip index is currently an experimental command. It may be removed/changed in a future release without prior warning.r zNeed an action (%s) to perform., )
get_available_package_versionsloggerwarningerrorjoinsortedr r r+ r
)r% r* r+ handlersactioner' r' r( run/ s( zIndexCommand.runsession
target_pythonr c C s. t j||d}td|j|d}tj|||dS )zK
Create a package finder appropriate to the index command.
)r* F)allow_yankedallow_all_prereleasesr )link_collectorselection_prefsr: )r creater r r )r% r* r9 r: r r= r> r' r' r( _build_package_finderM s
z"IndexCommand._build_package_finderc
C s t |dkr
tdt|}|d }| |B}| j||||jd}dd ||D }|js7dd |D }t |}|sDt
d|d d
t|ddD }|d } W d n1 s]w Y t
d
|| t
dd| t|| d S )Nr. z(You need to specify exactly one argumentr )r* r9 r: r c s s | ]}|j V qd S N)version).0 candidater' r' r( u s
z>IndexCommand.get_available_package_versions..c s s | ]}|j s|V qd S rA )
is_prerelease)rC rB r' r' r( rE { s
z%No matching distribution found for {}c S s g | ]}t |qS r' )str)rC verr' r' r(