
    G/Ph                        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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_assert_warns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     g/var/www/html/test/jupyter/venv/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_stderrr0   r   s    r   r   zredirect_stderr.__enter__#   r   r   c                     | j                                          | j        t          _        | j                                          d S r   )r0   r   r2   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_namer8   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)r6   r%   r*   r   r   r5   r5   -   sL        88       ! ! !! ! ! ! !r   r5   c            	         t          t                                5  t          t                                5  t	          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	          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   r   DeprecationWarningr   r;   r<   r5   r*   r   r   test_exec_command_stdoutrC   :   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A."B.A22B5A26B9BB			BB		BB #B E9!E!=E
D3	'E
3D77E
:D7;E
>E!
EE!EE!E9!E%	%E9(E%	)E99E= E=c            	         t          t          d                    5  t          t                                5  t	          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	          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@   rA   )
r   r   r-   r
   r   rB   r   r;   r<   r5   r*   r   r   test_exec_command_stderrrF   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A0$B0A44B7A48B;BB	BB	BB"%B"E;#E#?ED5	)E5D99E<D9=E E#EE#EE#E;#E'	'E;*E'	+E;;E?E?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   rK   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 $AAArN   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)"rA   )rV   )rX   )rY   )r^   )r`   )ra   )r   r   r;   environrK   rP   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   rN   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   rK   r   rP   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wrW   "z" -c "f = open('z', 'r'); f.close()"r   rN   z$', 'r'); print(f.read()); f.close()"
execute_in)	r   r;   pathjoinopenwriter   rK   r   )r   rQ   tmpdirfntmpfilefrR   rS   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                 v   t          t                                5  t          t                                5  t          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 )NrA   r   )use_tee   nt)
r   r
   r-   r   rB   r;   r<   rc   rT   rv   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   D.DB&C?3D?DDDD
D.D	D.D	D..D25D2N)	r&   r'   r(   rL   rT   rc   rh   rv   r{   r*   r   r   rI   rI   b   so        % % %  2 2 2h  ." " "$5 5 5 5 5r   rI   )r;   pytestr   tempfiler   numpy.distutilsr   numpy.distutils.exec_commandr   numpy.testingr   r   r   r	   ior
   r   r-   r5   rC   rF   markskipifrI   r*   r   r   <module>r      s   				  



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