o
    ©„j  ã                   @   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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)Ú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„Zdedee de	f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> ...ÚreturnNc              	   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"   ú^/var/www/html/django_cbt/venv/lib/python3.10/site-packages/pip/_internal/commands/uninstall.pyÚadd_options(   s&   øûzUninstallCommand.add_optionsÚoptionsÚargsc           
      C   s  |   |¡}i }|D ]}t||jd�}|jr||t|jƒ< q	t d|¡ q	|jD ]}t|||d�D ]}t	||jd�}|jrC||t|jƒ< q0q'|sTt
d| j› d| j› d�ƒ‚|jsZtƒ  td|v d� | ¡ D ]}|j|j| jd	kd
�}	|	rx|	 ¡  qe|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_uninstallr0   ÚreqÚfilenameÚ
parsed_reqÚuninstall_pathsetr"   r"   r#   Úrun@   s\   
þü

ÿÿ€ù
ÿÿÿþ€
zUninstallCommand.run)r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úusager$   r   ÚlistÚstrÚintr<   r"   r"   r"   r#   r      s
    

r   )ÚloggingÚoptparser   Úpip._vendor.packaging.utilsr   Úpip._internal.clir   Úpip._internal.cli.base_commandr   Ú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=   r1   r   r"   r"   r"   r#   Ú<module>   s    
