U
    b|
                     @   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mZ d dlmZ d dlmZ d dlmZ eeZd	d
 Zdd ZdS )    )absolute_importN)Utf8NamedTemporaryFile)CONDA_SESSION_SCHEMES)pip_subprocessget_pip_installed_packages)Spinner)context)	getLoggerc                 O   s   |j ddd }|tkr d}n0ztt|j }W n tk
rN   d}Y nX d}zNtddd	|d
d}|d| |  ddd|jg}t|| |d\}	}
W 5 |dk	rt|jrdt	j
krt	|j ntd|j X t|	S )a  
    Installs the pip dependencies in specs using a temporary pip requirements file.

    Args
    ----
    prefix: string
      The path to the python and pip executables.

    specs: iterable of strings
      Each element should be a valid pip dependency.
      See: https://pip.pypa.io/en/stable/user_guide/#requirements-files
           https://pip.pypa.io/en/stable/reference/pip_install/#requirements-file-format
    z://   r   NZCONDA_TEST_SAVE_TEMPSz:CONDA_TEST_SAVE_TEMPS :: retaining pip requirements.txt {}wz	condaenv.z.requirements.txtF)modeprefixsuffixdirdelete
installz-Uz-r)cwd)filesplitr   opdirnameabspathAttributeErrorisfilenameosenvironremovelogZwarningformatr   writejoincloser   r   )r   Zspecsargs_kwargsZ
url_schemeZpip_workdirZrequirementsZpip_cmdstdoutstderr r)   7lib/python3.8/site-packages/conda_env/installers/pip.py_pip_install_via_requirements   s4    

r+   c               
   O   s<   t dtj otj tj t| |W  5 Q R  S Q R X d S )NzInstalling pip dependencies)r   r   	verbosityquietZjsonr+   )r$   r&   r)   r)   r*   r   B   s
    r   )Z
__future__r   r   os.pathpathr   Zconda.auxlib.compatr   Z!conda.gateways.connection.sessionr   Zconda_env.pip_utilr   r   Zconda.common.ior   Zconda.base.contextr   Zloggingr	   __name__r   r+   r   r)   r)   r)   r*   <module>   s   /