3
ûâde6
  ã               @   s¦   d 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	m
Z
 ddlmZmZ ddlmZ ddlmZmZ d	d
gZe	dœdd	„Zee eeee f dœdd
„ZdS )z=A single place for constructing and exposing the main parser
é    N)ÚListÚTuple)Ú
cmdoptions)ÚConfigOptionParserÚUpdatingDefaultsHelpFormatter)Úcommands_dictÚget_similar_commands)ÚCommandError)Úget_pip_versionÚget_progÚcreate_main_parserÚparse_command)Úreturnc              C   sl   t ddtƒ dtƒ d�} | jƒ  tƒ | _tjtj| ƒ}| j	|ƒ d| _
dgdd„ tjƒ D ƒ }d	j|ƒ| _| S )
z1Creates and returns the main parser for pip's CLIz
%prog <command> [options]FÚglobal)ÚusageÚadd_help_optionÚ	formatterÚnameÚprogTÚ c             S   s"   g | ]\}}|d ›d|j › �‘qS )Z27ú )Úsummary)Ú.0r   Zcommand_info© r   ú</tmp/pip-build-red6nood/pip/pip/_internal/cli/main_parser.pyú
<listcomp>(   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Úgen_optsr%   r   r   r   r      s     

)Úargsr   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|› d�g}|r¨|jd|› d�ƒ tdj|ƒƒ‚| d d … }|j|ƒ ||fS )Nr   Úhelpé   zunknown command "ú"zmaybe you meant "z - )r   Ú
parse_argsr   ÚsysÚstdoutÚwriteÚosÚlinesepÚexitÚlenÚ
print_helpr   r   Úappendr	   r$   Úremove)r(   r&   Úgeneral_optionsÚ	args_elseÚcmd_nameÚguessÚmsgÚcmd_argsr   r   r   r   0   s&    	
)Ú__doc__r0   r-   Útypingr   r   Zpip._internal.clir   Zpip._internal.cli.parserr   r   Zpip._internal.commandsr   r   Zpip._internal.exceptionsr	   Zpip._internal.utils.miscr
   r   Ú__all__r   Ústrr   r   r   r   r   Ú<module>   s   