<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>

Yf]#                 @   s   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 d d l	 m
 Z
 Gd d	   d	 e j  Z Gd
 d   d e j  Z Gd d   d e e j  Z d S)    N   )compat)	protocols)
transports)	coroutine)loggerc                   sE  e  Z d  Z d d   f d d  Z d d   Z d d   Z d d	   Z d
 d   Z d d   Z d d   Z	 e
 j r d d   Z d d   Z d d   Z d d   Z d d   Z d d   Z d d   Z d d   Z e d  d!    Z d" d#   Z d$ d%   Z d& d'   Z d( d)   Z e d* d+    Z d, d-   Z d. d/   Z   S)0BaseSubprocessTransportNc                s  t    j |
  d |  _ | |  _ | |  _ d  |  _ d  |  _ d  |  _ g  |  _ t	 j
   |  _ i  |  _ d |  _ | t j k r d  |  j d <| t j k r d  |  j d <| t j k r d  |  j d <y5 |  j d | d | d | d | d	 | d
 | |  Wn |  j     Yn X|  j j |  _ |  j |  j d <|  j j   r}t | t t f  r]| } n
 | d } t j d | |  j  |  j j |  j |	   d  S)NFr   r      argsshellstdinstdoutstderrbufsize
subprocesszprocess %r created: pid %s)super__init___closed	_protocol_loop_proc_pid_returncode_exit_waiterscollectionsdeque_pending_calls_pipes	_finishedr   PIPE_startclosepidZ_extra	get_debug
isinstancebytesstrr   debugZcreate_task_connect_pipes)selfloopprotocolr
   r   r   r   r   r   waiterZextrakwargsZprogram)	__class__ </opt/alt/python35/lib64/python3.5/asyncio/base_subprocess.pyr      s@    									!
	
	z BaseSubprocessTransport.__init__c             C   sp  |  j  j g } |  j r% | j d  |  j d  k	 rH | j d |  j  |  j d  k	 rn | j d |  j  n, |  j d  k	 r | j d  n | j d  |  j j d  } | d  k	 r | j d | j  |  j j d  } |  j j d	  } | d  k	 r| | k r| j d
 | j  n@ | d  k	 r?| j d | j  | d  k	 r_| j d | j  d d j	 |  S)Nclosedzpid=%szreturncode=%sZrunningznot startedr   zstdin=%sr   r	   zstdout=stderr=%sz	stdout=%sz	stderr=%sz<%s> )
r.   __name__r   appendr   r   r   getpipejoin)r)   infor   r   r   r/   r/   r0   __repr__9   s,    	z BaseSubprocessTransport.__repr__c             K   s
   t   d  S)N)NotImplementedError)r)   r
   r   r   r   r   r   r-   r/   r/   r0   r    V   s    zBaseSubprocessTransport._startc             C   s   | |  _  d  S)N)r   )r)   r+   r/   r/   r0   set_protocolY   s    z$BaseSubprocessTransport.set_protocolc             C   s   |  j  S)N)r   )r)   r/   r/   r0   get_protocol\   s    z$BaseSubprocessTransport.get_protocolc             C   s   |  j  S)N)r   )r)   r/   r/   r0   
is_closing_   s    z"BaseSubprocessTransport.is_closingc             C   s   |  j  r d  Sd |  _  x3 |  j j   D]" } | d  k r; q& | j j   q& W|  j d  k	 r |  j d  k r |  j j   d  k r |  j j	   r t
 j d |   y |  j j   Wn t k
 r Yn Xd  S)NTz$Close running child process: kill %r)r   r   valuesr6   r!   r   r   Zpollr   r#   r   ZwarningkillProcessLookupError)r)   protor/   r/   r0   r!   b   s     		zBaseSubprocessTransport.closec             C   s+   |  j  s' t j d |  t  |  j   d  S)Nzunclosed transport %r)r   warningswarnResourceWarningr!   )r)   r/   r/   r0   __del__   s    	zBaseSubprocessTransport.__del__c             C   s   |  j  S)N)r   )r)   r/   r/   r0   get_pid   s    zBaseSubprocessTransport.get_pidc             C   s   |  j  S)N)r   )r)   r/   r/   r0   get_returncode   s    z&BaseSubprocessTransport.get_returncodec             C   s%   | |  j  k r |  j  | j Sd  Sd  S)N)r   r6   )r)   fdr/   r/   r0   get_pipe_transport   s    z*BaseSubprocessTransport.get_pipe_transportc             C   s   |  j  d  k r t    d  S)N)r   r@   )r)   r/   r/   r0   _check_proc   s    z#BaseSubprocessTransport._check_procc             C   s   |  j    |  j j |  d  S)N)rJ   r   send_signal)r)   signalr/   r/   r0   rK      s    
z#BaseSubprocessTransport.send_signalc             C   s   |  j    |  j j   d  S)N)rJ   r   	terminate)r)   r/   r/   r0   rM      s    
z!BaseSubprocessTransport.terminatec             C   s   |  j    |  j j   d  S)N)rJ   r   r?   )r)   r/   r/   r0   r?      s    
zBaseSubprocessTransport.killc       	      #   s  yL  j  }   j } | j d  k	 r] | j   f d d   | j  Ed  H\ } } |   j d <| j d  k	 r | j   f d d   | j  Ed  H\ } } |   j d <| j d  k	 r | j   f d d   | j  Ed  H\ } } |   j d <  j d  k	 st	  | j
   j j    x'   j D] \ } } | j
 | |  q"Wd    _ WnK t k
 r} z+ | d  k	 r| j   r| j |  WYd  d  } ~ Xn' X| d  k	 r| j   r| j d   d  S)Nc                  s   t    d  S)Nr   )WriteSubprocessPipeProtor/   )r)   r/   r0   <lambda>   s    z8BaseSubprocessTransport._connect_pipes.<locals>.<lambda>r   c                  s   t    d  S)Nr   )ReadSubprocessPipeProtor/   )r)   r/   r0   rO      s    r   c                  s   t    d  S)Nr	   )rP   r/   )r)   r/   r0   rO      s    r	   )r   r   r   Zconnect_write_piper   r   Zconnect_read_piper   r   AssertionError	call_soonr   connection_made	Exception	cancelledZset_exception
set_result)	r)   r,   procr*   _r6   callbackdataexcr/   )r)   r0   r(      s8    		 z&BaseSubprocessTransport._connect_pipesc             G   s?   |  j  d  k	 r( |  j  j | | f  n |  j j | |  d  S)N)r   r4   r   rR   )r)   cbrZ   r/   r/   r0   _call   s    zBaseSubprocessTransport._callc             C   s'   |  j  |  j j | |  |  j   d  S)N)r]   r   Zpipe_connection_lost_try_finish)r)   rH   r[   r/   r/   r0   _pipe_connection_lost   s    z-BaseSubprocessTransport._pipe_connection_lostc             C   s   |  j  |  j j | |  d  S)N)r]   r   Zpipe_data_received)r)   rH   rZ   r/   r/   r0   _pipe_data_received   s    z+BaseSubprocessTransport._pipe_data_receivedc             C   s   | d  k	 s t  |   |  j d  k s6 t  |  j   |  j j   rX t j d |  |  | |  _ |  j j d  k r | |  j _ |  j |  j	 j
  |  j   x* |  j D] } | j   s | j |  q Wd  |  _ d  S)Nz%r exited with return code %r)rQ   r   r   r#   r   r8   r   
returncoder]   r   Zprocess_exitedr^   r   rU   rV   )r)   ra   r,   r/   r/   r0   _process_exited   s    	
	
z'BaseSubprocessTransport._process_exitedc             c   s>   |  j  d k	 r |  j  S|  j j   } |  j j |  | Ed HS)zdWait until the process exit and return the process return code.

        This method is a coroutine.N)r   r   Zcreate_futurer   r4   )r)   r,   r/   r/   r0   _wait   s
    zBaseSubprocessTransport._waitc             C   se   |  j  s t  |  j d  k r# d  St d d   |  j j   D  ra d |  _  |  j |  j d   d  S)Nc             s   s$   |  ] } | d  k	 o | j  Vq d  S)N)disconnected).0pr/   r/   r0   	<genexpr>   s   z6BaseSubprocessTransport._try_finish.<locals>.<genexpr>T)r   rQ   r   allr   r>   r]   _call_connection_lost)r)   r/   r/   r0   r^      s    	z#BaseSubprocessTransport._try_finishc             C   s7   z |  j  j |  Wd  d  |  _ d  |  _ d  |  _  Xd  S)N)r   connection_lostr   r   )r)   r[   r/   r/   r0   ri      s
    		z-BaseSubprocessTransport._call_connection_lost)r3   
__module____qualname__r   r9   r    r;   r<   r=   r!   r   ZPY34rE   rF   rG   rI   rJ   rK   rM   r?   r   r(   r]   r_   r`   rb   rc   r^   ri   r/   r/   )r.   r0   r      s0   )	%	r   c               @   sX   e  Z d  Z d d   Z d d   Z d d   Z d d   Z d	 d
   Z d d   Z d S)rN   c             C   s(   | |  _  | |  _ d  |  _ d |  _ d  S)NF)rW   rH   r6   rd   )r)   rW   rH   r/   r/   r0   r     s    			z!WriteSubprocessPipeProto.__init__c             C   s   | |  _  d  S)N)r6   )r)   Z	transportr/   r/   r0   rS     s    z(WriteSubprocessPipeProto.connection_madec             C   s   d |  j  j |  j |  j f S)Nz<%s fd=%s pipe=%r>)r.   r3   rH   r6   )r)   r/   r/   r0   r9     s    z!WriteSubprocessPipeProto.__repr__c             C   s,   d |  _  |  j j |  j |  d  |  _ d  S)NT)rd   rW   r_   rH   )r)   r[   r/   r/   r0   rj     s    	z(WriteSubprocessPipeProto.connection_lostc             C   s   |  j  j j   d  S)N)rW   r   pause_writing)r)   r/   r/   r0   rm     s    z&WriteSubprocessPipeProto.pause_writingc             C   s   |  j  j j   d  S)N)rW   r   resume_writing)r)   r/   r/   r0   rn     s    z'WriteSubprocessPipeProto.resume_writingN)	r3   rk   rl   r   rS   r9   rj   rm   rn   r/   r/   r/   r0   rN     s   rN   c               @   s   e  Z d  Z d d   Z d S)rP   c             C   s   |  j  j |  j |  d  S)N)rW   r`   rH   )r)   rZ   r/   r/   r0   data_received#  s    z%ReadSubprocessPipeProto.data_receivedN)r3   rk   rl   ro   r/   r/   r/   r0   rP      s   rP   )r   r   rB    r   r   r   Z
coroutinesr   logr   ZSubprocessTransportr   ZBaseProtocolrN   ZProtocolrP   r/   r/   r/   r0   <module>   s   