o
    h                     @  s   d Z ddlmZ ddlZddlZddl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 dd	lmZmZ d
dgZddd
ZdddZdddZdS )z<A single place for constructing and exposing the main parser    )annotationsN)get_runnable_pip)
cmdoptions)ConfigOptionParserUpdatingDefaultsHelpFormatter)commands_dictget_similar_commands)CommandError)get_pip_versionget_progcreate_main_parserparse_commandreturnr   c                  C  sl   t ddt dt d} |   t | _ttj| }| 	| d| _
dgdd t D  }d	|| _| 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 )27 )summary).0r   command_info r   P/var/www/html/venv/lib/python3.10/site-packages/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"   

pythonstr
str | Nonec                 C  sP   t j| r&t j| r$dD ]}t j| |}t j|r!|  S qd S | S d S )N)z
bin/pythonzScripts/python.exe)ospathexistsisdirr&   )r*   exepyr   r   r   identify_python_interpreter2   s   r3   args	list[str]tuple[str, list[str]]c              
   C  sx  t  }|| \}}|jr]dtjvr]t|j}|d u r#td|j |t g}||  dtjd< d}z
t	
|}|j}W n t	jtfyW } z
td| d| d }~ww t| |jrrtj|j tjtj t  |r|d dkrt|dkr|  t  |d }	|	tvrt|	}
d	|	 d
g}|
r|d|
 d
 td|| d d  }||	 |	|fS )N_PIP_RUNNING_IN_SUBPROCESSz$Could not locate Python interpreter 1r   zFailed to run pip under z: help   zunknown command ""zmaybe you meant "z - )r   
parse_argsr*   r-   environr3   r	   r   extend
subprocessrun
returncodeSubprocessErrorOSErrorsysexitr    stdoutwritelineseplen
print_helpr   r   appendr&   remove)r4   r(   general_options	args_elseinterpreterpip_cmdrA   procexccmd_nameguessmsgcmd_argsr   r   r   r   E   sN   	







)r   r   )r*   r+   r   r,   )r4   r5   r   r6   )__doc__
__future__r   r-   r?   rD   pip._internal.build_envr   pip._internal.clir   pip._internal.cli.parserr   r   pip._internal.commandsr   r   pip._internal.exceptionsr	   pip._internal.utils.miscr
   r   __all__r   r3   r   r   r   r   r   <module>   s    

