3 ig @sddlZddlmZddlmZddlmZddlmZddl m Z m Z ddl m Z ddlmZdd lmZdd lmZmZdd lmZejeZGd d d ee ZdS)N)Values)List)canonicalize_name)Command)SessionCommandMixinwarn_if_run_as_root)SUCCESS)InstallationError)parse_requirements)install_req_from_line#install_req_from_parsed_requirement)(protect_pip_from_modification_on_windowsc@s8eZdZdZdZddddZeeee ddd Z dS) 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] ... %prog [options] -r ...N)returnc CsD|jjddddgddd|jjdd d d d d |jjd|jdS)Nz-rz --requirement requirementsappendfilezjUninstall all the packages listed in the given requirements file. This option can be used multiple times.)destactiondefaultmetavarhelpz-yz--yesyes store_truez2Don't ask for confirmation of uninstall deletions.)rrrr)cmd_opts add_optionparserinsert_option_group)selfr?/tmp/pip-build-88gy_88q/pip/pip/_internal/commands/uninstall.py add_options$szUninstallCommand.add_options)optionsargsrc Cs|j|}i}x<|D]4}t||jd}|jr<||t|j<qtjd|qWxH|jD]>}x8t|||dD]&}t ||jd}|jrh||t|j<qhWqTW|st d|jd|jdt d|kdx2|j D]&}|j |j|jd kd } | r| jqWttS) 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)Z modifying_pipr) auto_confirmverbose)Zget_default_sessionr isolated_modenamerloggerwarningrr r r r values uninstallr verbositycommitrr) rr"r#r%Zreqs_to_uninstallr*reqfilenameZ parsed_reqZuninstall_pathsetrrr run;s>        zUninstallCommand.run) __name__ __module__ __qualname____doc__usager!rrstrintr3rrrr rs r)loggingoptparserZtypingrpip._vendor.packaging.utilsrZpip._internal.cli.base_commandrZpip._internal.cli.req_commandrrZpip._internal.cli.status_codesrZpip._internal.exceptionsr Zpip._internal.reqr Zpip._internal.req.constructorsr r Zpip._internal.utils.miscr getLoggerr4r+rrrrr s