U
    5øio
  ã                   @   sœ   d dl mZ 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 erhd d	lmZmZmZ d
dddgZe e¡ZG dd„ deƒZddd„ZdS )é    )Úabsolute_importN)Ú
indent_log)ÚMYPY_CHECK_RUNNINGé   )Úparse_requirements)ÚInstallRequirement)ÚRequirementSet)ÚAnyÚListÚSequencer   r   r   Úinstall_given_reqsc                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚInstallationResultc                 C   s
   || _ d S )N©Úname)Úselfr   © r   ú>/tmp/pip-unpacked-wheel-xstzcrsb/pip/_internal/req/__init__.pyÚ__init__   s    zInstallationResult.__init__c                 C   s   d  | j¡S )NzInstallationResult(name={!r}))Úformatr   )r   r   r   r   Ú__repr__   s    zInstallationResult.__repr__N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r      s   r   r   c           
      O   sè   | r t  dd dd„ | D ƒ¡¡ g }tƒ �´ | D ]¨}|jrft  d|j¡ tƒ � |jdd�}W 5 Q R X z|j||f|ž|Ž W n0 tk
r®   |još|j	 }|r¨| 
¡  ‚ Y nX |joº|j	}	|	rÈ| ¡  | t|jƒ¡ q0W 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, c                 S   s   g | ]
}|j ‘qS r   r   )Ú.0Úreqr   r   r   Ú
<listcomp>5   s     z&install_given_reqs.<locals>.<listcomp>zAttempting uninstall: %sT)Úauto_confirm)ÚloggerÚinfoÚjoinr   Úshould_reinstallr   Ú	uninstallÚinstallÚ	ExceptionÚinstall_succeededÚrollbackÚcommitÚappendr   )
Ú
to_installÚinstall_optionsÚglobal_optionsÚargsÚkwargsÚ	installedÚrequirementÚuninstalled_pathsetÚshould_rollbackÚshould_commitr   r   r   r   $   sJ    þÿþýüþþ)r   )Ú
__future__r   ÚloggingÚpip._internal.utils.loggingr   Úpip._internal.utils.typingr   Úreq_filer   Úreq_installr   Úreq_setr   Útypingr	   r
   r   Ú__all__Ú	getLoggerr   r   Úobjectr   r   r   r   r   r   Ú<module>   s"     þ
 ý