
    dh{                    "   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jN                  e(      Z) G d de      Z*y)    )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                  X    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
y)IndexCommandz=
    Inspect information available from package indexes.
    Tz&
        %prog versions <package>
    c                   t        j                  | j                         | j                  j                  t        j                                | j                  j                  t        j
                                | j                  j                  t        j                                | j                  j                  t        j                                | j                  j                  t        j                                t        j                  t         j                  | j                        }| j                  j                  d|       | j                  j                  d| j                         y )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     ^/var/www/html/vivango/api/ia/venv/lib/python3.12/site-packages/pip/_internal/commands/index.pyadd_optionszIndexCommand.add_options'   s    ,,T]];  !B!B!DE  !12  !23  !5!5!78  !7!7!9:11""KK


 	'':6''4==9    c                    d| j                   iS )Nversions)get_available_package_versions)r'   s    r)   handler_mapzIndexCommand.handler_map8   s    ;;
 	
r+   c                N   | j                         }|r|d   |vr4t        j                  ddj                  t	        |                   t
        S |d   }	  ||   ||dd         t        S # t        $ r2}t        j                  |j                  d          t
        cY d }~S d }~ww xY w)Nr   zNeed an action (%s) to perform.,    )	r/   loggererrorjoinsortedr   r   argsr   )r'   optionsr7   r/   actiones         r)   runzIndexCommand.run=   s    &&( tAwk1LL1		&-. La	Kab2
 	  	LL#L	s   A) )	B$2'BB$B$Nc                    t        j                  ||      }t        d|j                  |      }t	        j                  |||      S )zK
        Create a package finder appropriate to the index command.
        )r8   F)allow_yankedallow_all_prereleasesr   )link_collectorselection_prefstarget_python)r   creater   r   r   )r'   r8   sessionrA   r   r?   r@   s          r)   _build_package_finderz"IndexCommand._build_package_finderS   sM     '--gwG /")++#9
 ##)+'
 	
r+   c                   t        |      dk7  rt        d      t        j                  |      }|d   }| j	                  |      5 }| j                  ||||j                        }d |j                  |      D        }|j                  s	d |D        }t        |      }|st        d|       t        |d	      D cg c]  }t        |       }	}|	d   }
d d d        t        |      }|j                  r?|	
d
}|t        |j                        |d<   t!        t        j"                  |             y t!        | d
 d       t!        dj%                  dj'                  	                   t)        |
|       y c c}w # 1 sw Y   xY w)Nr2   z(You need to specify exactly one argumentr   )r8   rC   rA   r   c              3  4   K   | ]  }|j                     y wN)version).0	candidates     r)   	<genexpr>z>IndexCommand.get_available_package_versions.<locals>.<genexpr>{   s      +&/	!!+s   c              3  :   K   | ]  }|j                   r|  y wrG   )is_prerelease)rI   rH   s     r)   rK   z>IndexCommand.get_available_package_versions.<locals>.<genexpr>   s       '7;P;PGs   z#No matching distribution found for T)reverse)namer-   latestinstalled_versionz ()zAvailable versions: {}r1   )lenr   r	   make_target_python_build_sessionrD   r   find_all_candidatesr   setr   r6   strr   r    rH   r   dumpsformatr5   r   )r'   r8   r7   rA   queryrC   finderr-   verformatted_versionsrP   diststructured_outputs                r)   r.   z+IndexCommand.get_available_package_versionsl   s   t9>IJJ"55g>Q  ) 	+W//+'.'E'E	 0 F+393M3Me3T+H ;;+3 8}H*9%A  7=Xt6T!Us#c(!U!U'*F3	+6 *%0<<. ! 9<T\\9J!"56$567 E7"VHA./188CU9VWX(6) "V1	+ 	+s   A7E?<E:E?:E??F)returnNone)ra   z.dict[str, Callable[[Values, list[str]], None]])r8   r   r7   z	list[str]ra   int)NN)
r8   r   rC   r   rA   zTargetPython | Noner   zbool | Nonera   r   )r8   r   r7   z	list[Any]ra   rb   )__name__
__module____qualname____doc__ignore_require_venvusager*   r/   r;   rD   r.    r+   r)   r   r      sg     E:"

4 .2.2

 
 +	

 !,
 

23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   	getLoggerrd   r3   r   rj   r+   r)   <module>r}      sd    "   $    1 ( ; 9 R Q 7 < E ; 4 1			8	$B7$ B7r+   