
    5>qj                    2   d dl mZ d dlZd dl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 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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jT                  e+      Z, G d de      Z-y)    )annotationsN)CallableIterable)Values)Any)canonicalize_name)Version)
cmdoptions)IndexGroupCommand)ERRORSUCCESS)get_installed_distributionprint_dist_installation_info)CommandErrorDiagnosticPipError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                j   t        j                  | j                         | j                  j                  t        j                                | j                  j                  t        j
                                t        j                  t         j                  | j                        }t        j                  t         j                  | j                        }| j                  j                  d|       | j                  j                  d|       | j                  j                  d| j                         y )Nr   )r
   add_target_python_optionscmd_opts
add_optionignore_requires_pythonjsonmake_option_groupindex_groupparserpackage_selection_groupinsert_option_group)self
index_optsselection_optss      [/opt/rentech/trading_bot/.venv/lib/python3.12/site-packages/pip/_internal/commands/index.pyadd_optionszIndexCommand.add_options-   s    ,,T]];  !B!B!DE  !2311""KK


 $55..KK

 	'':6''>:''4==9    c                    d| j                   iS )Nversions)get_available_package_versions)r'   s    r*   handler_mapzIndexCommand.handler_mapA   s    ;;
 	
r,   c                   t        j                  |       | j                         }|r|d   |vr4t        j	                  ddj                  t        |                   t        S |d   }	  ||   ||dd         t        S # t        $ r  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
   check_release_control_exclusiver0   loggererrorjoinsortedr   r   r   argsr   )r'   optionsr9   r0   actiones         r*   runzIndexCommand.runF   s    227;&&( tAwk1LL1		&-. La	Kab2  " 	 	LL#L	s   )A> >C'B=7C=CNc                    t        j                  ||      }t        d|j                  |j                  |      }t        j                  ||||j                        S )zK
        Create a package finder appropriate to the index command.
        )r:   F)allow_yankedrelease_controlformat_controlr    )link_collectorselection_prefstarget_pythonuploaded_prior_to)r   creater   r@   rA   r   rE   )r'   r:   sessionrD   r    rB   rC   s          r*   _build_package_finderz"IndexCommand._build_package_finder`   sa     '--gwG /#33"11#9	
 ##)+'%77	
 	
r,   c                4   t        |      dk7  rt        d      t        j                  |      }|d   }| j	                  |      5 }| j                  ||||j                        }d |j                  |      D        }| j                  |t        |            r	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)Nr3   z(You need to specify exactly one argumentr   )r:   rG   rD   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rK   )is_prerelease)rM   rL   s     r*   rO   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: {}r2   )lenr   r
   make_target_python_build_sessionrH   r    find_all_candidatesshould_exclude_prereleaser   setr   r8   strr   r!   rL   r   dumpsformatr7   r   )r'   r:   r9   rD   queryrG   finderr.   verformatted_versionsrT   diststructured_outputs                r*   r/   z+IndexCommand.get_available_package_versions{   s   t9>IJJ"55g>Q  ) 	+W//+'.'E'E	 0 F+393M3Me3T+H --g7H7OP+3 8}H*9%A  7=Xt6T!Us#c(!U!U'*F1	+4 *%0<<. ! 9<T\\9J!"56$567 E7"VHA./188CU9VWX(6) "V/	+ 	+s   BFF	F	FF)returnNone)rf   z.dict[str, Callable[[Values, list[str]], None]])r:   r   r9   z	list[str]rf   int)NF)
r:   r   rG   r   rD   zTargetPython | Noner    boolrf   r   )r:   r   r9   z	list[Any]rf   rg   )__name__
__module____qualname____doc__ignore_require_venvusager+   r0   r=   rH   r/    r,   r*   r   r   #   sg     E:(

< .2',

 
 +	

 !%
 

627r,   r   ).
__future__r   r!   loggingcollections.abcr   r   optparser   typingr   pip._vendor.packaging.utilsr   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   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   	getLoggerrj   r5   r   rp   r,   r*   <module>r      sj    "   .   9 1 ( ; 9  8 < E ; 4 1			8	$J7$ J7r,   