a
    0f4                     @   s   d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlm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mZ e eZG dd de
eZdS )    N)Values)List)canonicalize_name)
cmdoptions)Command)SessionCommandMixin)SUCCESS)InstallationError)parse_requirements)install_req_from_line#install_req_from_parsed_requirement)check_externally_managed(protect_pip_from_modification_on_windowswarn_if_run_as_rootc                   @   s8   e Zd ZdZdZddddZeee e	ddd	Z
dS )
UninstallCommandaB  
    Uninstall packages.

    pip is able to uninstall most installed packages. Known exceptions are:

    - Pure distutils packages installed with ``python setup.py install``, which
      leave behind no metadata to determine what files were installed.
    - Script wrappers installed by ``python setup.py develop``.
    zU
      %prog [options] <package> ...
      %prog [options] -r <requirements file> ...N)returnc              	   C   sd   | j jddddg ddd | j jdd	d
ddd | j t  | j t  | jd| j  d S )Nz-rz--requirementrequirementsappendfilezjUninstall all the packages listed in the given requirements file.  This option can be used multiple times.)destactiondefaultmetavarhelpz-yz--yesyes
store_truez2Don't ask for confirmation of uninstall deletions.)r   r   r   r   )cmd_opts
add_optionr   root_user_actionoverride_externally_managedparserinsert_option_group)self r#   Y/var/www/ai-form-bot/venv/lib/python3.9/site-packages/pip/_internal/commands/uninstall.pyadd_options)   s&    zUninstallCommand.add_options)optionsargsr   c           
      C   s  |  |}i }|D ]4}t||jd}|jr:||t|j< qtd| q|jD ]:}t|||dD ]&}t	||jd}|jr`||t|j< q`qN|st
d| j d| j d|jst  td|v d | D ]&}|j|j| jd	kd
}	|	r|	  q|jdkrt  tS )N)isolatedzSInvalid requirement: %r ignored - the uninstall command expects named requirements.)r&   sessionz*You must give at least one requirement to z (see "pip help z")pip)modifying_pipr   )auto_confirmverbosewarn)get_default_sessionr   isolated_modenamer   loggerwarningr   r
   r   r	   r   r   r   values	uninstallr   	verbositycommitr   r   r   )
r"   r&   r'   r)   Zreqs_to_uninstallr1   reqfilename
parsed_reqZuninstall_pathsetr#   r#   r$   runA   sV    




zUninstallCommand.run)__name__
__module____qualname____doc__usager%   r   r   strintr;   r#   r#   r#   r$   r      s   
r   )loggingoptparser   typingr   Zpip._vendor.packaging.utilsr   pip._internal.clir   pip._internal.cli.base_commandr   Zpip._internal.cli.index_commandr   pip._internal.cli.status_codesr   pip._internal.exceptionsr	   pip._internal.reqr
   pip._internal.req.constructorsr   r   pip._internal.utils.miscr   r   r   	getLoggerr<   r2   r   r#   r#   r#   r$   <module>   s   
