<!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>

j f "                 @   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	 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)futures)	protocols)
transports)	coroutine)loggerc                   s0  e  Z d  Z d d   f d d  Z d d   Z d d   Z d d	   Z d
 d   Z e j	 rl d d   Z
 n  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),BaseSubprocessTransportNc                s  t    j |
  d |  _ | |  _ | |  _ d  |  _ d  |  _ d  |  _ g  |  _ t	 j
   |  _ i  |  _ d |  _ | t j k r d  |  j d <n  | t j k r d  |  j d <n  | t j k r d  |  j d <n  y5 |  j d | d | d | d | d	 | d
 | |  Wn |  j     Yn X|  j j |  _ |  j |  j d <|  j j   rt | t t f  rf| } n
 | d } t j d | |  j  n  |  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loopZprotocolr   r   r   r   r   r   waiterZextrakwargsZprogram)	__class__ </opt/alt/python34/lib64/python3.4/asyncio/base_subprocess.pyr      s@    									!
	
	z BaseSubprocessTransport.__init__c             C   s  |  j  j g } |  j r( | j d  n  |  j d  k	 rN | j d |  j  n  |  j d  k	 rt | j d |  j  n, |  j d  k	 r | j d  n | j d  |  j j d  } | d  k	 r | j d | j  n  |  j j d  } |  j j d	  } | d  k	 r(| | k r(| j d
 | j  nF | d  k	 rK| j d | j  n  | d  k	 rn| j d | j  n  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__:   s,    	z BaseSubprocessTransport.__repr__c             K   s
   t   d  S)N)NotImplementedError)r*   r   r   r   r   r   r   r-   r/   r/   r0   r!   W   s    zBaseSubprocessTransport._startc             C   s   |  j  S)N)r   )r*   r/   r/   r0   
is_closingZ   s    z"BaseSubprocessTransport.is_closingc             C   s   |  j  r d  Sd |  _  x6 |  j j   D]% } | d  k r> q& n  | j j   q& W|  j d  k	 r |  j d  k r |  j j   d  k r |  j j	   r t
 j d |   n  y |  j j   Wq t k
 r Yq Xn  d  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"   ]   s     		zBaseSubprocessTransport.closec             C   s.   |  j  s* t j d |  t  |  j   n  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    n  d  S)N)r   r>   )r*   r/   r/   r0   _check_proc   s    z#BaseSubprocessTransport._check_procc             C   s   |  j    |  j j |  d  S)N)rH   r   send_signal)r*   signalr/   r/   r0   rI      s    
z#BaseSubprocessTransport.send_signalc             C   s   |  j    |  j j   d  S)N)rH   r   	terminate)r*   r/   r/   r0   rK      s    
z!BaseSubprocessTransport.terminatec             C   s   |  j    |  j j   d  S)N)rH   r   r=   )r*   r/   r/   r0   r=      s    
zBaseSubprocessTransport.killc       	      #   s  yU  j  }   j } | j d  k	 r` | j   f d d   | j  Dd  H\ } } |   j d <n  | j d  k	 r | j   f d d   | j  Dd  H\ } } |   j d <n  | j d  k	 r | j   f d d   | j  Dd  H\ } } |   j d <n    j d  k	 st	  | j
   j j    x'   j D] \ } } | j
 | |  q+Wd    _ WnN t k
 r} z. | d  k	 r| j   r| j |  n  WYd  d  } ~ Xn* X| d  k	 r| j   r| j d   n  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   rM      s    r   c                  s   t    d  S)Nr
   )rN   r/   )r*   r/   r0   rM      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   rP   )r*   cbrX   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*   rF   rY   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*   rF   rX   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   r[ t j d |  |  n  | |  _ |  j |  j j  |  j	   x- |  j
 D]" } | j   s | j |  q q Wd  |  _
 d  S)Nz%r exited with return code %r)rO   r   r   r$   r   r8   r[   r   Zprocess_exitedr\   r   rS   rT   )r*   
returncoder,   r/   r/   r0   _process_exited   s    		
z'BaseSubprocessTransport._process_exitedc             c   sD   |  j  d k	 r |  j  St j d |  j  } |  j j |  | Dd HS)zdWait until the process exit and return the process return code.

        This method is a coroutine.Nr+   )r   r   ZFuturer   r   r4   )r*   r,   r/   r/   r0   _wait   s
    zBaseSubprocessTransport._waitc             C   sh   |  j  s t  |  j d  k r# d  St d d   |  j j   D  rd d |  _  |  j |  j d   n  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   rO   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*   rY   r/   r/   r0   rg      s
    		z-BaseSubprocessTransport._call_connection_lost)r3   
__module____qualname__r   r9   r!   r;   r"   r   ZPY34rC   rD   rE   rG   rH   rI   rK   r=   r   r)   r[   r]   r^   r`   ra   r\   rg   r/   r/   )r.   r0   r	      s,   )	%	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)rL   c             C   s(   | |  _  | |  _ d  |  _ d |  _ d  S)NF)rU   rF   r6   rb   )r*   rU   rF   r/   r/   r0   r      s    			z!WriteSubprocessPipeProto.__init__c             C   s   | |  _  d  S)N)r6   )r*   Z	transportr/   r/   r0   rQ     s    z(WriteSubprocessPipeProto.connection_madec             C   s   d |  j  j |  j |  j f S)Nz<%s fd=%s pipe=%r>)r.   r3   rF   r6   )r*   r/   r/   r0   r9     s    z!WriteSubprocessPipeProto.__repr__c             C   s,   d |  _  |  j j |  j |  d  |  _ d  S)NT)rb   rU   r]   rF   )r*   rY   r/   r/   r0   rh     s    	z(WriteSubprocessPipeProto.connection_lostc             C   s   |  j  j j   d  S)N)rU   r   pause_writing)r*   r/   r/   r0   rk     s    z&WriteSubprocessPipeProto.pause_writingc             C   s   |  j  j j   d  S)N)rU   r   resume_writing)r*   r/   r/   r0   rl     s    z'WriteSubprocessPipeProto.resume_writingN)	r3   ri   rj   r   rQ   r9   rh   rk   rl   r/   r/   r/   r0   rL      s   rL   c               @   s   e  Z d  Z d d   Z d S)rN   c             C   s   |  j  j |  j |  d  S)N)rU   r^   rF   )r*   rX   r/   r/   r0   data_received  s    z%ReadSubprocessPipeProto.data_receivedN)r3   ri   rj   rm   r/   r/   r/   r0   rN     s   rN   )r   r   r@    r   r   r   r   Z
coroutinesr   logr   ZSubprocessTransportr	   ZBaseProtocolrL   ZProtocolrN   r/   r/   r/   r0   <module>   s   