<!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>

]]#                 @   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   waiterextrakwargsZprogram)	__class__ 4/opt/alt/python35/lib64/python3.5/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=%s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   r0   r0   r1   __repr__9   s,    	z BaseSubprocessTransport.__repr__c             K   s
   t   d  S)N)NotImplementedError)r)   r
   r   r   r   r   r   r.   r0   r0   r1   r    V   s    zBaseSubprocessTransport._startc             C   s   | |  _  d  S)N)r   )r)   r+   r0   r0   r1   set_protocolY   s    z$BaseSubprocessTransport.set_protocolc             C   s   |  j  S)N)r   )r)   r0   r0   r1   get_protocol\   s    z$BaseSubprocessTransport.get_protocolc             C   s   |  j  S)N)r   )r)   r0   r0   r1   
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   valuesr8   r!   r   r   pollr   r#   r   warningkillProcessLookupError)r)   protor0   r0   r1   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)   r0   r0   r1   __del__   s    	zBaseSubprocessTransport.__del__c             C   s   |  j  S)N)r   )r)   r0   r0   r1   get_pid   s    zBaseSubprocessTransport.get_pidc             C   s   |  j  S)N)r   )r)   r0   r0   r1   get_returncode   s    z&BaseSubprocessTransport.get_returncodec             C   s%   | |  j  k r |  j  | j Sd  Sd  S)N)r   r8   )r)   fdr0   r0   r1   get_pipe_transport   s    z*BaseSubprocessTransport.get_pipe_transportc             C   s   |  j  d  k r t    d  S)N)r   rD   )r)   r0   r0   r1   _check_proc   s    z#BaseSubprocessTransport._check_procc             C   s   |  j    |  j j |  d  S)N)rN   r   send_signal)r)   signalr0   r0   r1   rO      s    
z#BaseSubprocessTransport.send_signalc             C   s   |  j    |  j j   d  S)N)rN   r   	terminate)r)   r0   r0   r1   rQ      s    
z!BaseSubprocessTransport.terminatec             C   s   |  j    |  j j   d  S)N)rN   r   rC   )r)   r0   r0   r1   rC      s    
zBaseSubprocessTransport.killc       	      #   s  y7  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   j	 j
    x'   j D] \ } } | j | |  qWd    _ WnK t k
 r} z+ | d  k	 rr| j   rr| j |  WYd  d  } ~ Xn' X| d  k	 r| j   r| j d   d  S)Nc                  s   t    d  S)Nr   )WriteSubprocessPipeProtor0   )r)   r0   r1   <lambda>   s    z8BaseSubprocessTransport._connect_pipes.<locals>.<lambda>r   c                  s   t    d  S)Nr   )ReadSubprocessPipeProtor0   )r)   r0   r1   rS      s    r   c                  s   t    d  S)Nr	   )rT   r0   )r)   r0   r1   rS      s    r	   )r   r   r   Zconnect_write_piper   r   Zconnect_read_piper   	call_soonr   connection_mader   	Exception	cancelledset_exception
set_result)	r)   r,   procr*   _r8   callbackdataexcr0   )r)   r1   r(      s6    		 z&BaseSubprocessTransport._connect_pipesc             G   s?   |  j  d  k	 r( |  j  j | | f  n |  j j | |  d  S)N)r   r6   r   rU   )r)   cbr^   r0   r0   r1   _call   s    zBaseSubprocessTransport._callc             C   s'   |  j  |  j j | |  |  j   d  S)N)ra   r   Zpipe_connection_lost_try_finish)r)   rL   r_   r0   r0   r1   _pipe_connection_lost   s    z-BaseSubprocessTransport._pipe_connection_lostc             C   s   |  j  |  j j | |  d  S)N)ra   r   Zpipe_data_received)r)   rL   r^   r0   r0   r1   _pipe_data_received   s    z+BaseSubprocessTransport._pipe_data_receivedc             C   s   |  j  j   r" t j d |  |  | |  _ |  j j d  k rI | |  j _ |  j |  j j	  |  j
   x* |  j D] } | j   sp | j |  qp Wd  |  _ d  S)Nz%r exited with return code %r)r   r#   r   r:   r   r   
returncodera   r   Zprocess_exitedrb   r   rX   rZ   )r)   re   r,   r0   r0   r1   _process_exited   s    	
	
z'BaseSubprocessTransport._process_exitedc             c   s>   |  j  d  k	 r |  j  S|  j j   } |  j j |  | Ed  HS)N)r   r   Zcreate_futurer   r6   )r)   r,   r0   r0   r1   _wait   s
    zBaseSubprocessTransport._waitc             C   sU   |  j  d  k r d  St d d   |  j j   D  rQ d |  _ |  j |  j d   d  S)Nc             s   s$   |  ] } | d  k	 o | j  Vq d  S)N)disconnected).0pr0   r0   r1   	<genexpr>   s   z6BaseSubprocessTransport._try_finish.<locals>.<genexpr>T)r   allr   r@   r   ra   _call_connection_lost)r)   r0   r0   r1   rb      s    	z#BaseSubprocessTransport._try_finishc             C   s7   z |  j  j |  Wd  d  |  _ d  |  _ d  |  _  Xd  S)N)r   connection_lostr   r   )r)   r_   r0   r0   r1   rm      s
    		z-BaseSubprocessTransport._call_connection_lost)r5   
__module____qualname__r   r;   r    r=   r>   r?   r!   r   ZPY34rI   rJ   rK   rM   rN   rO   rQ   rC   r   r(   ra   rc   rd   rf   rg   rb   rm   r0   r0   )r/   r1   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)rR   c             C   s(   | |  _  | |  _ d  |  _ d |  _ d  S)NF)r[   rL   r8   rh   )r)   r[   rL   r0   r0   r1   r     s    			z!WriteSubprocessPipeProto.__init__c             C   s   | |  _  d  S)N)r8   )r)   Z	transportr0   r0   r1   rV     s    z(WriteSubprocessPipeProto.connection_madec             C   s   d |  j  j |  j |  j f S)Nz<%s fd=%s pipe=%r>)r/   r5   rL   r8   )r)   r0   r0   r1   r;     s    z!WriteSubprocessPipeProto.__repr__c             C   s,   d |  _  |  j j |  j |  d  |  _ d  S)NT)rh   r[   rc   rL   )r)   r_   r0   r0   r1   rn     s    	z(WriteSubprocessPipeProto.connection_lostc             C   s   |  j  j j   d  S)N)r[   r   pause_writing)r)   r0   r0   r1   rq     s    z&WriteSubprocessPipeProto.pause_writingc             C   s   |  j  j j   d  S)N)r[   r   resume_writing)r)   r0   r0   r1   rr     s    z'WriteSubprocessPipeProto.resume_writingN)	r5   ro   rp   r   rV   r;   rn   rq   rr   r0   r0   r0   r1   rR     s   rR   c               @   s   e  Z d  Z d d   Z d S)rT   c             C   s   |  j  j |  j |  d  S)N)r[   rd   rL   )r)   r^   r0   r0   r1   data_received#  s    z%ReadSubprocessPipeProto.data_receivedN)r5   ro   rp   rs   r0   r0   r0   r1   rT      s   rT   )r   r   rF    r   r   r   Z
coroutinesr   logr   ZSubprocessTransportr   ZBaseProtocolrR   ZProtocolrT   r0   r0   r0   r1   <module>   s   