a *eg4@sddlZddlmZddlmZddlmZddlmZddl m Z ddl m Z ddl mZdd lmZdd lmZdd lmZmZdd lmZmZmZeeZGd dde e ZdS)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_windowswarn_if_run_as_rootc@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 |jt|jt|jd|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_optionrroot_user_actionoverride_externally_managedparserinsert_option_group)selfr#J/usr/local/lib/python3.9/site-packages/pip/_internal/commands/uninstall.py add_options)s& zUninstallCommand.add_options)optionsargsrc Cs||}i}|D]4}t||jd}|jr:||t|j<qtd|q|jD]:}t|||dD]&}t ||jd}|jr`||t|j<q`qN|st d|jd|jd|j st t d|vd|D]&}|j|j|jd kd } | r| q|jd krttS) 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_confirmverbosewarn)get_default_sessionr isolated_modenamerloggerwarningrr r r rr rvalues uninstallr verbositycommitrrr) r"r&r'r)Zreqs_to_uninstallr1reqfilename parsed_reqZuninstall_pathsetr#r#r$runAsV       zUninstallCommand.run) __name__ __module__ __qualname____doc__usager%rrstrintr;r#r#r#r$rs r)loggingoptparsertypingrpip._vendor.packaging.utilsrZpip._internal.clirpip._internal.cli.base_commandrZpip._internal.cli.index_commandrpip._internal.cli.status_codesrpip._internal.exceptionsr pip._internal.reqr pip._internal.req.constructorsr r pip._internal.utils.miscr rr getLoggerr<r2rr#r#r#r$s