
    ii                        d dl Z d dl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mZ d dlmZ  G d d          Z G d	 d
          Z G d d          Zd Zd Zej                            ed           G d d                      ZdS )    N)TemporaryFile)exec_command)get_pythonexe)tempdirassert_IS_WASM)StringIOc                   &    e Zd ZdZddZd Zd ZdS )redirect_stdoutz9Context manager to redirect stdout for exec_command test.Nc                 ,    |pt           j        | _        d S N)sysstdout_stdout)selfr   s     b/var/www/html/ecfs/ecfsenv/lib/python3.11/site-packages/numpy/distutils/tests/test_exec_command.py__init__zredirect_stdout.__init__       +    c                 J    t           j        | _        | j        t           _        d S r   )r   r   
old_stdoutr   r   s    r   	__enter__zredirect_stdout.__enter__       *\


r   c                     | j                                          | j        t          _        | j                                          d S r   )r   flushr   r   r   closer   exc_type	exc_value	tracebacks       r   __exit__zredirect_stdout.__exit__   9    _
r   r   __name__
__module____qualname____doc__r   r   r"    r   r   r   r      L        CC, , , ," " "    r   r   c                   &    e Zd ZdZddZd Zd ZdS )redirect_stderrz9Context manager to redirect stderr for exec_command test.Nc                 ,    |pt           j        | _        d S r   )r   stderr_stderr)r   r.   s     r   r   zredirect_stderr.__init__    r   r   c                 J    t           j        | _        | j        t           _        d S r   )r   r.   
old_stderrr/   r   s    r   r   zredirect_stderr.__enter__#   r   r   c                     | j                                          | j        t          _        | j                                          d S r   )r/   r   r1   r   r.   r   r   s       r   r"   zredirect_stderr.__exit__'   r#   r   r   r$   r)   r   r   r,   r,      r*   r   r,   c                   &    e Zd ZdZddZd Zd ZdS )emulate_nonposixz.Context manager to emulate os.name != 'posix' 	non-posixc                     || _         d S r   )	_new_name)r   osnames     r   r   zemulate_nonposix.__init__/   s    r   c                 J    t           j        | _        | j        t           _        d S r   )osname	_old_namer7   r   s    r   r   zemulate_nonposix.__enter__2   s    .r   c                 (    | j         t          _        d S r   )r<   r:   r;   r   s       r   r"   zemulate_nonposix.__exit__6   s    .r   N)r5   r$   r)   r   r   r4   r4   -   sL        88       ! ! !! ! ! ! !r   r4   c            	      $   t          t                                5  t          t                                5  t	          j        t                    5  t          j        d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j	        dk    rt                      5  t          t                                5  t          t                                5  t	          j        t                    5  t          j        d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S d S )Ncd '.'posix)r   r	   r,   r   pytestwarnsDeprecationWarningr   r:   r;   r4   r)   r   r   test_exec_command_stdoutrD   :   s    
	$	$ 4 4]__-- 	4 	4011 4 4)(3334 4 4 4 4 4 4 4 4 4 4 4 4 4 4	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	44 4 4 4 4 4 4 4 4 4 4 4 4 4 4
 
w' 	< 	< ,, < <$]__55 < <&899 < <$1(;;;< < < < < < < < < < < < < < << < < < < < < < < < < < < < << < < < < < < < < < < < < < <	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< s   B!B
A3'B
3A77B
:A7;B
>B!
B	B!B	B!!B%(B%
F&E+ED=	1E=EEEEE+EE+EE+F+E/	/F2E/	3FF
Fc            	      (   t          t          d                    5  t          t                                5  t	          j        t                    5  t          j        d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j	        dk    rt                      5  t          t                                5  t          t                                5  t	          j        t                    5  t          j        d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S d S )Nzw+)moder?   r@   )r   r   r,   r	   rA   rB   rC   r   r:   r;   r4   r)   r   r   test_exec_command_stderrrG   R   s   	D111	2	2 4 4XZZ(( 	4 	4011 4 4)(3334 4 4 4 4 4 4 4 4 4 4 4 4 4 4	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	44 4 4 4 4 4 4 4 4 4 4 4 4 4 4
 
w' 	< 	< 11 < <$XZZ00 < <&899 < <$1(;;;< < < < < < < < < < < < < < << < < < < < < < < < < < < < << < < < < < < < < < < < < < <	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< s   B#BA5)B5A99B<A9=B B#B	B#B	B##B'*B'F(E-ED?	3E?EEEE
E-EE-EE-!F-E1	1F4E1	5FF	F	zCannot start subprocess)reasonc                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )TestExecCommandc                 ,    t                      | _        d S r   )r   pyexer   s    r   setup_methodzTestExecCommand.setup_methodd   s    "__


r   c                 
   t          j         d          \  }}t          |dk               t          |dk               t          j         d| j        z            \  }}t          |dk               t          |dk               d S )Nzcmd /C echo path=%path%r    z3"%s" -c "import sys;sys.stderr.write(sys.platform)"win32)r   r   rL   r   kwssos       r   check_ntzTestExecCommand.check_ntg   s    ()BCC1QR(	>	KM M1QWr   c                 r   t          j         di |\  }}t          |dk               t          |dk               t          j         di |\  }}t          |dk               t          |dk               t          j         dddi|\  }}t          |dk               t          |dk               t          j         di |\  }}t          |dk               t          |dk               d	t          j        vrd
t          j        d	<   t          j         di |\  }}t          |dk               t          |d
k               t          j         dd	di|\  }}t          |dk               t          |dk               t          j         di |\  }}t          |dk               t          |d
k               t          j        d	= t          j         di |\  }}t          |dk               t          |dk               t          j         di |\  }}t          |dk               t          |dk               t          j         di |\  }}t          |dk               t          |dk               t          j         d| j        z  fi |\  }}t          |dk               t          |dk               d S )N
echo Hellor   Hello	echo $AAArO   echo "$AAA"AAATereBBBHiecho "$BBB"Heythis_is_not_a_commandecho path=$PATHz1"%s" -c "import sys,os;sys.stderr.write(os.name)"r@   )rW   )rY   )rZ   )r_   )ra   )rb   )r   r   r:   environrL   rQ   s       r   check_posixzTestExecCommand.check_posixq   s   (====1QW(<<<<1QR(JJFJcJJ1QV(>>#>>1QR
"" $BJu,BBcBBDAqAFOOOAI,MMMMMDAqAFOOOAJ,BBcBBDAqAFOOOAI
5!,BBcBBDAqAFOOOAG (HHCHH1QR(BBcBB1QR(@Z      1 	QWr   c                    t          j         d| j        z  fi |\  }}t          |dk               t          |dk               t          j         d| j        z  fi |\  }}t          |dk               t          |dk               t          j         d| j        z  fi |\  }}t          |dk               t          |dk               t          j         d| j        z  fi |\  }}t          |dk               t          |d	k               d S )
Nz"%s" -c "raise 'Ignore me.'"r   rO   zV"%s" -c "import sys;sys.stderr.write('0');sys.stderr.write('1');sys.stderr.write('2')"012z!"%s" -c "import sys;sys.exit(15)"   z"%s" -c "print('Heipa'")Heipa)r   rL   r   rQ   s       r   check_basiczTestExecCommand.check_basic   sY   (5
BK KFIK K1QR(@Z       1 	QU
(4tzAJ JEHJ J1RR(1DJ>G GBEG G1QWr   c                 2   t                      5 }d}t          j                            ||          }t	          |d          5 }|                    d           d d d            n# 1 swxY w Y   t          j        d| j        d|dfi |\  }}t          |dk               t          |dk               t          j        d| j        d|d	fd
|i|\  }}t          |dk               t          |dk               d d d            d S # 1 swxY w Y   d S )NfilewrX   "z" -c "f = open('z', 'r'); f.close()"r   rO   z$', 'r'); print(f.read()); f.close()"
execute_in)	r   r:   pathjoinopenwriter   rL   r   )r   rR   tmpdirfntmpfilefrS   rT   s           r   check_execute_inz TestExecCommand.check_execute_in   s   YY 	"&Bgll62..Ggs## !q   ! ! ! ! ! ! ! ! ! ! ! ! ! ! !  ,,***bbb"* *%(* *DAq AFOOOAG,,%)ZZZ5P PAGPKNP PDAq AFOOOAL!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s6   3DA$D$A(	(D+A(	,BDDDc                    t          t                                5  t          t                                5  t          j        t
                    5  t          j        dk    r-|                     d           |                     d           n<t          j        dk    r,| 	                    d           | 	                    d           | 
                    d           | 
                    d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr@   r   )use_tee   nt)r   r	   r,   rA   rB   rC   r:   r;   rd   rU   rw   r   s    r   
test_basiczTestExecCommand.test_basic   s   XZZ(( 
	5 
	5 ,, 	5 	5\"455 5 5w'))(((333(((3333Da000a000))!)444))!)4445 5 5 5 5 5 5 5 5 5 5 5 5 5 5	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5
	5 
	5 
	5 
	5 
	5 
	5 
	5 
	5 
	5 
	5 
	5 
	5 
	5 
	5 
	5 
	5 
	5 
	5sY   D3DB&D8DDDDDD3D	D3"D	#D33D7:D7N)	r%   r&   r'   rM   rU   rd   ri   rw   r|   r)   r   r   rJ   rJ   b   so        % % %  2 2 2h  ." " "$5 5 5 5 5r   rJ   )r:   rA   r   tempfiler   numpy.distutilsr   numpy.distutils.exec_commandr   numpy.testingr   r   r   ior	   r   r,   r4   rD   rG   markskipifrJ   r)   r   r   <module>r      s}   				  



 " " " " " " ( ( ( ( ( ( 6 6 6 6 6 6 3 3 3 3 3 3 3 3 3 3
                    
! 
! 
! 
! 
! 
! 
! 
!< < <0< < <  G$=>>v5 v5 v5 v5 v5 v5 v5 ?>v5 v5 v5r   