
    fXf.                         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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  e j        e          Z G d de
e          ZdS )    N)Values)List)canonicalize_name)
cmdoptions)Command)SessionCommandMixinwarn_if_run_as_root)SUCCESS)InstallationError)parse_requirements)install_req_from_line#install_req_from_parsed_requirement)check_externally_managed(protect_pip_from_modification_on_windowsc                   >    e Zd ZdZdZd	dZdedee         de	f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> ...returnNc           	      r   | j                             ddddg dd           | j                             dd	d
dd           | j                             t          j                               | j                             t          j                               | 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)selfs    Y/var/www/html/Qu*py/bism/lib/python3.11/site-packages/pip/_internal/commands/uninstall.pyadd_optionszUninstallCommand.add_options(   s      A 	! 	
 	
 	
 	  E 	! 	
 	
 	
 	  !<!>!>???  !G!I!IJJJ''4=99999    optionsargsc                    |                      |          }i }|D ]R}t          ||j                  }|j        r||t	          |j                  <   7t
                              d|           S|j        D ]K}t          |||          D ]6}t          ||j                  }|j        r||t	          |j                  <   7L|s t          d| j         d| j         d          |j        st                       t          d|v            |                                D ]=}|                    |j        | j        d	k    
          }	|	r|	                                 >|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-   reqs_to_uninstallr5   reqfilename
parsed_requninstall_pathsets
             r&   runzUninstallCommand.run@   s   **733 	 	D' .  C x AD!"3CH"="=>>% 	     , 	I 	IH0'7   I I
 :)>   8 IEH%&7&A&ABI ! 	#+TY + +!Y+ + +  
 2 	'$&&&0#44	
 	
 	
 	
 %++-- 	+ 	+C #$[* !. ! ! ! +!((***#v--!!!r(   )r   N)__name__
__module____qualname____doc__usager'   r   r   strintrA    r(   r&   r   r      sf         4E: : : :016 1c 1s 1 1 1 1 1 1r(   r   )loggingoptparser   typingr   pip._vendor.packaging.utilsr   pip._internal.clir   pip._internal.cli.base_commandr   pip._internal.cli.req_commandr   r	   pip._internal.cli.status_codesr
   pip._internal.exceptionsr   pip._internal.reqr   pip._internal.req.constructorsr   r   pip._internal.utils.miscr   r   	getLoggerrB   r6   r   rI   r(   r&   <module>rW      s[                9 9 9 9 9 9 ( ( ( ( ( ( 2 2 2 2 2 2 R R R R R R R R 2 2 2 2 2 2 6 6 6 6 6 6 0 0 0 0 0 0              
 
	8	$	$X X X X Xw 3 X X X X Xr(   