U
��.e � @ s� d Z ddlZddlZddlmZ ddlmZmZ ddlm Z m
Z
ddlmZ ddl
mZmZ ddlmZ er|dd lmZmZ d
dgZdd
� Zd
d� ZdS )z=A single place for constructing and exposing the main parser
� N)�
cmdoptions)�ConfigOptionParser�UpdatingDefaultsHelpFormatter)�
commands_dict�get_similar_commands)�CommandError)�get_pip_version�get_prog)�MYPY_CHECK_RUNNING)�Tuple�List�create_main_parser�
parse_commandc C st ddt � dt� d�} tf | �}|�� t� |_t�tj|�}|� |� d|_
dgdd� t�� D � }d �
|�|_|S )
z6Creates and returns the main parser for pip's CLI
z
%prog [options]F�global)ZusageZadd_help_optionZ formatter�name�progT� c S s g | ]\}}d ||j f �qS )z%-27s %s)Zsummary)�.0r Zcommand_info� r �A/usr/lib/python3.8/site-packages/pip/_internal/cli/main_parser.py�
2 s �z&create_main_parser..�
)r r r Zdisable_interspersed_argsr �versionr Zmake_option_groupZ
general_groupZadd_option_group�mainr �items�join�description)Z parser_kw�parserZgen_optsr r r r r
s" �
�c C s� t � }|�| �\}}|jr>tj�|j� tj�tj� t�� |rZ|d dkrjt |�dkrj|�
� t�� |d }|tkr�t|�}d| g}|r�|�
d| � td�|���| d d � }|�|� ||fS )Nr �help� zunknown command "%s"zmaybe you meant "%s"z - )r
�
parse_argsr �sys�stdout�write�os�linesep�exit�lenZ
print_helpr r �appendr r �remove)�argsr Zgeneral_optionsZ args_elseZcmd_nameZguess�msgZcmd_argsr r r r ; s&