3

†¸g  ã               @   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 | Ž}|jƒ  tƒ |_tjtj|ƒ}|j	|ƒ d|_
dgdd„ tjƒ D ƒ }d	j|ƒ|_|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-v59g9nu1/pip/_internal/cli/main_parser.pyú
<listcomp>3   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| ƒ\}}|jr>tjj|jƒ tjjtjƒ tjƒ  | s\|d dkrlt	|ƒdkrl|j
ƒ  tjƒ  |d }|tkr®t|ƒ}d| g}|r |jd| ƒ tdj|ƒƒ‚| d d … }|j|ƒ ||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   #