o
    LK&h                     @   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   sl   |  |d g|dd   }| jdd|}d|vr*ttj}d|v r&|d= ||d< tj|g|R i |S )Nr      utf-8)cwdencodingenv
PYTHONPATH)exerootdictosenviron
subprocesscheck_output)selfcmdargskwargsr	    r   O/var/www/html/venv/lib/python3.10/site-packages/setuptools/tests/environment.pyrun   s   	
zVirtualEnv.runN)__name__
__module____qualname__name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u rt  }tjD ]	}tj| ||< q
|dur||d< |dur$||d< |dds?tdtd|d< tj|d |d< tj	dgt
|  } tjdk}zt| tt||d	d
}t|trat| }| | }W n
 tyr   Y dS w 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hasattrr2   unicodedata	normalize
returncode)	r   pypathr$   data_streamr	   envnamer1   procdatar   r   r   run_setup_py.   s@   


	

rI   )NNr   N)r   r   r5   rA   r   r:   r   r9   jaraco.envsjaracoenvsr   r+   rI   r   r   r   r   <module>   s    	