U
    aÊ¹j  ã                   @   sb   d dl Z d dlZd dlZd dlZd dlmZmZ d dlZ	G dd„ de	j
jƒZdd„ Zd	dd„ZdS )
é    N)ÚPIPEÚPopenc                   @   s   e Zd ZdZdgZdd„ ZdS )Ú
VirtualEnvz.envz--no-setuptoolsc                 O   sf   |   |d ¡g|dd …  }| jddœ|–}d|krTttjƒ}d|krL|d= ||d< tj|f|ž|ŽS )Nr   é   úutf-8)ÚcwdÚencodingÚenvÚ
PYTHONPATH)ÚexeÚrootÚdictÚosÚenvironÚ
subprocessÚcheck_output)ÚselfÚcmdÚargsÚkwargsr	   © r   ú[/var/www/html/bwave/python/venv/lib/python3.8/site-packages/setuptools/tests/environment.pyÚrun   s    	
zVirtualEnv.runN)Ú__name__Ú
__module__Ú__qualname__ÚnameZcreate_optsr   r   r   r   r   r   
   s   r   c                 C   sL   t ƒ }tj dd¡ tj¡D ]*}tj || ¡}t |tj	¡r| 
|¡ q|S )NÚPATHÚ )Úsetr   r   ÚgetÚsplitÚpathsepÚpathÚjoinÚaccessÚX_OKÚadd)r   Úresultr#   Úfilenamer   r   r   Ú_which_dirs%   s    r*   c           	      C   s  |dkr(t ƒ }tjD ]}tj| ||< q|dk	r8||d< |dk	rH||d< | dd¡s~tdƒ tdƒ¡|d< tj |d ¡|d< tj	dgt
| ƒ } tjdk}z6t| tt||d	d
�}t|tƒrÂt|Ž }| ¡ | }W n tk
ræ   Y dS X t|dƒ�r| ¡ }t d|¡}|j|fS )z~
    Execution command for tests, separate from those used by the
    code directly to prevent accidental behavior issues
    Nr
   r   r   ÚtarÚgzipzsetup.pyÚwin32r   )ÚstdoutÚstderrÚshellr	   r   )r   r   ÚdecodeÚNFC)r   r   r   r    r*   Úunionr"   r$   ÚsysÚ
executableÚlistÚplatformÚ_PopenÚ_PIPEÚ
isinstanceÚtupleÚsliceÚcommunicateÚOSErrorÚhasattrr1   ÚunicodedataÚ	normalizeÚ
returncode)	r   Zpypathr#   Zdata_streamr	   Úenvnamer0   ÚprocÚdatar   r   r   Úrun_setup_py.   s>    

ú	
rF   )NNr   N)r   r   r4   r@   r   r9   r   r8   Zjaraco.envsZjaracoZenvsr   r*   rF   r   r   r   r   Ú<module>   s   	