U
    e                     @   s   d Z ddlZddl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 ddlmZmZ ddlmZ er|dd	lmZmZ d
dgZdd
 Zdd ZdS )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   ddt  dt d} tf | }|  t |_ttj|}|	| d|_
dgdd t D  }d	||_|S )
z6Creates and returns the main parser for pip's CLI
    z
%prog <command> [options]Fglobal)usageadd_help_option	formatternameprogT c                 S   s   g | ]\}}d ||j f qS )z%-27s %s)summary).0r   command_info r   A/tmp/pip-unpacked-wheel-indi3crb/pip/_internal/cli/main_parser.py
<listcomp>2   s   z&create_main_parser.<locals>.<listcomp>
)r   r	   r   disable_interspersed_argsr   versionr   make_option_groupgeneral_groupadd_option_groupmainr   itemsjoindescription)	parser_kwparsergen_optsr%   r   r   r   r      s"    


c                 C   s   t  }|| \}}|jr>tj|j tjtj t  |rZ|d dkrjt	|dkrj|
  t  |d }|tkrt|}d| g}|r|d|  td|| d d  }|| ||fS )Nr   help   zunknown command "%s"zmaybe you meant "%s"z - )r   
parse_argsr   sysstdoutwriteoslinesepexitlen
print_helpr   r   appendr   r$   remove)argsr'   general_options	args_elsecmd_nameguessmsgcmd_argsr   r   r   r   ;   s&    	

)__doc__r/   r,   Zpip._internal.clir   pip._internal.cli.parserr   r   pip._internal.commandsr   r   pip._internal.exceptionsr   pip._internal.utils.miscr   r	   pip._internal.utils.typingr
   typingr   r   __all__r   r   r   r   r   r   <module>   s   #