a *eg{@sddlZddlmZddlmZmZmZmZddlm Z ddl m Z ddl m Z ddlmZmZddlmZdd lmZmZmZdd lmZdd lmZdd lmZdd lmZddlm Z ddl!m"Z"e#e$Z%Gddde Z&dS)N)Values)AnyIterableListOptional)Version) cmdoptions)IndexGroupCommand)ERRORSUCCESS)print_dist_installation_info) CommandErrorDistributionNotFoundPipError) LinkCollector) PackageFinder)SelectionPreferences) TargetPython) PipSession) write_outputc@sreZdZdZdZdZddddZeee e dd d Z dee e ee eed d d ZeeeddddZdS) IndexCommandz= Inspect information available from package indexes. Tz& %prog versions N)returncCs~t|j|jt|jt|jt|jtttj |j }|j d||j d|jdS)Nr) radd_target_python_optionscmd_opts add_optionignore_requires_pythonpre no_binary only_binarymake_option_group index_groupparserinsert_option_group)self index_optsr%F/usr/local/lib/python3.9/site-packages/pip/_internal/commands/index.py add_options s zIndexCommand.add_options)optionsargsrc Csd|ji}td|r$|d|vr>tddt|tS|d}z||||ddWn8ty}z t|jdtWYd}~Sd}~00t S)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&run0s$ zIndexCommand.run)r(session target_pythonrrcCs.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_prefsr8)rcreaterrr)r#r(r7r8rr;r<r%r%r&_build_package_finderNs z"IndexCommand._build_package_finderc Cst|dkrtdt|}|d}||}|j||||jd}dd||D}|jsndd|D}t |}|st d|d d t |d d D}|d} Wdn1s0Yt |d | dt d d|t|| dS)Nr,z(You need to specify exactly one argumentr)r(r7r8rcss|] }|jVqdSN)version).0 candidater%r%r& vsz>IndexCommand.get_available_package_versions..css|]}|js|VqdSr?) is_prerelease)rAr@r%r%r&rC|sz#No matching distribution found for cSsg|] }t|qSr%)str)rAverr%r%r& z?IndexCommand.get_available_package_versions..T)reversez ()zAvailable versions: {}r+)lenr rmake_target_python_build_sessionr>rfind_all_candidatesrsetrr2rformatr1r ) r#r(r)r8queryr7finderr*Zformatted_versionsZlatestr%r%r&r-gs8   &z+IndexCommand.get_available_package_versions)NN)__name__ __module__ __qualname____doc__ignore_require_venvusager'rrrEintr6rrrboolrr>rr-r%r%r%r&rs" r)'loggingoptparsertypingrrrrZpip._vendor.packaging.versionrZpip._internal.clirpip._internal.cli.req_commandr pip._internal.cli.status_codesr r Zpip._internal.commands.searchr pip._internal.exceptionsr rrpip._internal.index.collectorr"pip._internal.index.package_finderr$pip._internal.models.selection_prefsr"pip._internal.models.target_pythonrpip._internal.network.sessionrpip._internal.utils.miscr getLoggerrSr.rr%r%r%r&s