U
    „}ag²
  ã                
   @   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 dd	d
dgZe e¡ZG dd„ dƒZee eeeef ddf dœdd„Zee ee ee ee ee eeeee dœ	dd„ZdS )é    N)Ú	GeneratorÚListÚOptionalÚSequenceÚTuple)Ú
indent_logé   )Úparse_requirements)ÚInstallRequirement)ÚRequirementSetr   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   úR/var/www/html/publicvenv/lib/python3.8/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td|› �ƒ‚|j |fV  qd S )Nz%invalid to-be-installed requirement: )r   ÚAssertionError)r   Úreqr   r   r   Ú_validate_requirements   s    r   )	r   Ú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	rvt d|
¡ tƒ � |j
dd�}W 5 Q R X nd}z|j|||||||d� W n( tk
r¾   |r¸|js¸| ¡  ‚ Y nX |rÒ|jrÒ| ¡  |	 t|
ƒ¡ q<W 5 Q R X |	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)Zauto_confirmN)r    r!   r"   r#   r$   r%   )ÚcollectionsÚOrderedDictr   ÚloggerÚinfoÚjoinÚkeysr   ÚitemsZshould_reinstallÚ	uninstallÚinstallÚ	ExceptionZinstall_succeededZrollbackZcommitÚappendr   )r   r   r    r!   r"   r#   r$   r%   Ú
to_installÚ	installedZreq_nameÚrequirementZuninstalled_pathsetr   r   r   r   %   s@    þù
	

)r&   ÚloggingÚtypingr   r   r   r   r   Úpip._internal.utils.loggingr   Zreq_filer	   Zreq_installr
   Zreq_setr   Ú__all__Ú	getLoggerr   r(   r   r   r   Úboolr   r   r   r   r   Ú<module>   s4   ü
	þ	÷