a
    hbòfé
  ã                   @   sÜ   d dl Z d dlZd dlmZmZmZmZmZ d dlm	Z	 ddl
mZ ddlmZ ddlmZ g d¢Ze e¡ZG d	d
„ d
ƒZee eeeef  dœdd„Zee ee ee ee ee ee eeeee dœ
dd„ZdS )é    N)ÚIteratorÚListÚOptionalÚSequenceÚTuple)Ú
indent_logé   )Úparse_requirements)ÚInstallRequirement)ÚRequirementSet)r   r
   r	   Úinstall_given_reqsc                   @   s*   e Zd Zeddœdd„Zedœdd„ZdS )ÚInstallationResultN)ÚnameÚreturnc                 C   s
   || _ d S )N©r   )Úselfr   © r   úW/home/httpd/docs/test/DocsMgr/lib/python3.9/site-packages/pip/_internal/req/__init__.pyÚ__init__   s    zInstallationResult.__init__)r   c                 C   s   d| j ›d�S )NzInstallationResult(name=ú)r   )r   r   r   r   Ú__repr__   s    zInstallationResult.__repr__)Ú__name__Ú
__module__Ú__qualname__Ústrr   r   r   r   r   r   r      s   r   )Úrequirementsr   c                 c   s.   | D ]$}|j sJ d|› �ƒ‚|j |fV  qd S )Nz%invalid to-be-installed requirement: r   )r   Úreqr   r   r   Ú_validate_requirements   s    r   )
r   Úinstall_optionsÚglobal_optionsÚrootÚhomeÚprefixÚwarn_script_locationÚuse_user_siteÚ	pycompiler   c	                 C   s  t  t| ƒ¡}	|	r(t dd |	 ¡ ¡¡ g }
tƒ �Ò |	 ¡ D ]¸\}}|j	rŠt d|¡ tƒ � |j
dd�}W d  ƒ qŽ1 s~0    Y  nd}z|j||||||||d� W n& tyÒ   |rÌ|jsÌ| ¡  ‚ Y n0 |ræ|jræ| ¡  |
 t|ƒ¡ q<W d  ƒ n1 �s0    Y  |
S )zu
    Install everything in the given list.

    (to be called after having downloaded and unpacked the packages)
    z!Installing collected packages: %sz, zAttempting uninstall: %sT)Úauto_confirmN)r    r!   r"   r#   r$   r%   )ÚcollectionsÚOrderedDictr   ÚloggerÚinfoÚjoinÚkeysr   ÚitemsÚshould_reinstallÚ	uninstallÚinstallÚ	ExceptionÚinstall_succeededÚrollbackÚcommitÚappendr   )r   r   r   r    r!   r"   r#   r$   r%   Ú
to_installÚ	installedÚreq_nameÚrequirementÚuninstalled_pathsetr   r   r   r   %   sB    þ,ø



0r   )r'   ÚloggingÚtypingr   r   r   r   r   Úpip._internal.utils.loggingr   Úreq_filer	   Úreq_installr
   Úreq_setr   Ú__all__Ú	getLoggerr   r)   r   r   r   Úboolr   r   r   r   r   Ú<module>   s.   
	þ	ö