o ai@sddlZddlmZddlmZmZmZmZmZddl m Z m Z ddl m Z ddlmZddlmZmZddlmZdd lmZmZmZdd lmZdd lmZdd lmZdd lm Z ddl!m"Z"ddl#m$Z$e%e&Z'GdddeZ(dS)N)Values)AnyIterableListOptionalUnion) LegacyVersionVersion) cmdoptions)IndexGroupCommand)ERRORSUCCESS)print_dist_installation_info) CommandErrorDistributionNotFoundPipError) LinkCollector) PackageFinder)SelectionPreferences) TargetPython) PipSession) write_outputc @s~eZdZdZdZdddZdedeede fd d Z  dded e d e e d e edef ddZdedeeddfddZdS) IndexCommandz= Inspect information available from package indexes. z& %prog versions returnNcCs~t|j|jt|jt|jt|jtttj |j }|j d||j d|jdS)Nr) r add_target_python_optionscmd_opts add_optionignore_requires_pythonpre no_binary only_binarymake_option_group index_groupparserinsert_option_group)self index_optsr'/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.py add_optionss zIndexCommand.add_optionsoptionsargsc Csd|ji}td|r|d|vrtddt|tS|d}z||||ddWt StyM}zt|jdtWYd}~Sd}~ww)Nversionsztpip 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_versionsloggerwarningerrorjoinsortedr rr+r )r%r*r+handlersactioner'r'r(run/s( zIndexCommand.runsession target_pythonrcCs.tj||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:)rcreaterrr)r%r*r9r:rr=r>r'r'r(_build_package_finderMs z"IndexCommand._build_package_finderc Cst|dkr tdt|}|d}||B}|j||||jd}dd||D}|js7dd|D}t |}|sDt d |d d t |d d D}|d} Wdn1s]wYt d || t d d|t|| dS)Nr.z(You need to specify exactly one argumentr)r*r9r:rcss|]}|jVqdSN)version).0 candidater'r'r( us z>IndexCommand.get_available_package_versions..css|]}|js|VqdSrA) is_prerelease)rCrBr'r'r(rE{s  z%No matching distribution found for {}cSsg|]}t|qSr')str)rCverr'r'r( sz?IndexCommand.get_available_package_versions..T)reversez{} ({})zAvailable versions: {}r-)lenrr make_target_python_build_sessionr@rfind_all_candidatesrsetrformatr4rr3r) r%r*r+r:queryr9finderr,Zformatted_versionsZlatestr'r'r(r/fs:    z+IndexCommand.get_available_package_versions)rN)NN)__name__ __module__ __qualname____doc__usager)rrrGintr8rrrboolrr@rr/r'r'r'r(rs& " r))loggingoptparsertypingrrrrrZpip._vendor.packaging.versionrr pip._internal.clir pip._internal.cli.req_commandr pip._internal.cli.status_codesr r Zpip._internal.commands.searchrpip._internal.exceptionsrrrpip._internal.index.collectorr"pip._internal.index.package_finderr$pip._internal.models.selection_prefsr"pip._internal.models.target_pythonrpip._internal.network.sessionrpip._internal.utils.miscr getLoggerrSr0rr'r'r'r(s"