
0c@_                 @   s   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 d  d
 l m Z e r d  d l m Z d  d l m Z Gd d   d e e  Z d S)    )absolute_import)canonicalize_name)Command)SessionCommandMixin)SUCCESS)InstallationError)parse_requirements)install_req_from_line#install_req_from_parsed_requirement)(protect_pip_from_modification_on_windows)MYPY_CHECK_RUNNING)Values)Listc               @   s4   e  Z d  Z d Z d Z d d   Z 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> ...c             C   sp   |  j  j d d d d d d d g  d d	 d
 d |  j  j d d d d d d d
 d |  j j d |  j   d  S)Nz-rz--requirementdestrequirementsactionappenddefaultmetavarfilehelpzjUninstall all the packages listed in the given requirements file.  This option can be used multiple times.z-yz--yesyes
store_truez2Don't ask for confirmation of uninstall deletions.r   )cmd_opts
add_optionparserinsert_option_group)self r   ?/tmp/pip-build-jynh7p1z/pip/pip/_internal/commands/uninstall.pyadd_options%   s    				zUninstallCommand.add_optionsc       
      C   s?  |  j  |  } i  } x? | D]7 } t | d | j } | j r | | t | j  <q Wxe | j D]Z } xQ t | d | d | D]7 } t | d | j } | j r | | t | j  <q Wqa W| s t d j	 t
       t d d | k  xH | j   D]: } | j d | j d |  j d	 k  }	 |	 r |	 j   q Wt S)
NisolatedoptionssessionzRYou must give at least one requirement to {self.name} (see "pip help {self.name}")Zmodifying_pippipauto_confirmverboser   )Zget_default_sessionr	   isolated_modenamer   r   r   r
   r   formatlocalsr   values	uninstallr   	verbositycommitr   )
r   r#   argsr$   Zreqs_to_uninstallr)   reqfilenameZ
parsed_reqZuninstall_pathsetr   r   r    run8   s:    			zUninstallCommand.runN)__name__
__module____qualname____doc__usager!   r3   r   r   r   r    r      s   	r   N)
__future__r   pip._vendor.packaging.utilsr   Zpip._internal.cli.base_commandr   Zpip._internal.cli.req_commandr   Zpip._internal.cli.status_codesr   Zpip._internal.exceptionsr   Zpip._internal.reqr   Zpip._internal.req.constructorsr	   r
   Zpip._internal.utils.miscr   Zpip._internal.utils.typingr   optparser   Ztypingr   r   r   r   r   r    <module>   s   