B n*U@sxddlZddlZddlZddlmZddlmZddlmZGdddejZ Gdd d ej Z Gd d d e ej Z dS) N) protocols) transports)loggercseZdZd0fdd ZddZddZdd Zd d Zd d ZddZ ddZ ddZ ddZ ddZ ddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/ZZS)1BaseSubprocessTransportNc s&t| d|_||_||_d|_d|_d|_g|_t |_ i|_ d|_ |tjkr`d|j d<|tjkrtd|j d<|tjkrd|j d<y"|jf||||||d| Wn|YnX|jj|_|j|jd<|jrt|ttfr|} n|d} td| |j|j|| dS)NFrr)argsshellstdinstdoutstderrbufsize subprocesszprocess %r created: pid %s)super__init___closed _protocol_loop_proc_pid _returncode _exit_waiters collectionsdeque_pending_calls_pipes _finishedrPIPE_startclosepidZ_extra get_debug isinstancebytesstrrdebugZ create_task_connect_pipes) selfloopprotocolrr r r r r waiterZextrakwargsZprogram) __class__:/opt/alt/python37/lib/python3.7/asyncio/base_subprocess.pyr s@            z BaseSubprocessTransport.__init__cCs|jjg}|jr|d|jdk r6|d|j|jdk rT|d|jn |jdk rj|dn |d|jd}|dk r|d|j|jd}|jd }|dk r||kr|d |jn6|dk r|d |j|dk r |d |jd d |S)Nclosedzpid=z returncode=Zrunningz not startedrzstdin=rrzstdout=stderr=zstdout=zstderr=z<{}> ) r,__name__rappendrrrgetpipeformatjoin)r'infor r r r-r-r.__repr__7s,           z BaseSubprocessTransport.__repr__cKstdS)N)NotImplementedError)r'rr r r r r r+r-r-r.rTszBaseSubprocessTransport._startcCs ||_dS)N)r)r'r)r-r-r. set_protocolWsz$BaseSubprocessTransport.set_protocolcCs|jS)N)r)r'r-r-r. get_protocolZsz$BaseSubprocessTransport.get_protocolcCs|jS)N)r)r'r-r-r. is_closing]sz"BaseSubprocessTransport.is_closingcCs|jr dSd|_x&|jD]}|dkr*q|jqW|jdk r|jdkr|jdkr|j rpt d|y|j Wnt k rYnXdS)NTz$Close running child process: kill %r)rrvaluesr4rrrZpollrr!rZwarningkillProcessLookupError)r'protor-r-r.r`s     zBaseSubprocessTransport.closecCs(|js$tjd|t|d|dS)Nzunclosed transport )source)rwarningswarnResourceWarningr)r'r-r-r.__del__{szBaseSubprocessTransport.__del__cCs|jS)N)r)r'r-r-r.get_pidszBaseSubprocessTransport.get_pidcCs|jS)N)r)r'r-r-r.get_returncodesz&BaseSubprocessTransport.get_returncodecCs||jkr|j|jSdSdS)N)rr4)r'fdr-r-r.get_pipe_transports  z*BaseSubprocessTransport.get_pipe_transportcCs|jdkrtdS)N)rr?)r'r-r-r. _check_procs z#BaseSubprocessTransport._check_proccCs||j|dS)N)rJr send_signal)r'signalr-r-r.rKsz#BaseSubprocessTransport.send_signalcCs||jdS)N)rJr terminate)r'r-r-r.rMsz!BaseSubprocessTransport.terminatecCs||jdS)N)rJrr>)r'r-r-r.r>szBaseSubprocessTransport.killc sZyj}j}|jdk rB|fdd|jIdH\}}|jd<|jdk rv|fdd|jIdH\}}|jd<|jdk r|fdd|jIdH\}}|jd<jdk st | j j x"jD]\}}|j |f|qWd_WnBt k r6}z"|dk r&|s&||Wdd}~XYn X|dk rV|sV|ddS)Ncs tdS)Nr)WriteSubprocessPipeProtor-)r'r-r.z8BaseSubprocessTransport._connect_pipes..rcs tdS)Nr)ReadSubprocessPipeProtor-)r'r-r.rOrPrcs tdS)Nr)rQr-)r'r-r.rOrPr)rrr Zconnect_write_piperr Zconnect_read_piper rAssertionError call_soonrconnection_made Exception cancelledZ set_exception set_result) r'r*procr(_r4callbackdataexcr-)r'r.r&s8          z&BaseSubprocessTransport._connect_pipescGs2|jdk r|j||fn|jj|f|dS)N)rr2rrS)r'cbr[r-r-r._calls zBaseSubprocessTransport._callcCs||jj|||dS)N)r^rZpipe_connection_lost _try_finish)r'rHr\r-r-r._pipe_connection_lostsz-BaseSubprocessTransport._pipe_connection_lostcCs||jj||dS)N)r^rZpipe_data_received)r'rHr[r-r-r._pipe_data_receivedsz+BaseSubprocessTransport._pipe_data_receivedcCs|dk st||jdks$t|j|jrsz6BaseSubprocessTransport._try_finish..T)rrRrallrr=r^_call_connection_lost)r'r-r-r.r_s  z#BaseSubprocessTransport._try_finishcCs*z|j|Wdd|_d|_d|_XdS)N)rconnection_lostrr)r'r\r-r-r.rjs z-BaseSubprocessTransport._call_connection_lost)NN)r1 __module__ __qualname__rr8rr:r;r<rrErFrGrIrJrKrMr>r&r^r`rarcrdr_rj __classcell__r-r-)r,r.r s.)$  rc@s<eZdZddZddZddZddZd d Zd d Zd S)rNcCs||_||_d|_d|_dS)NF)rXrHr4re)r'rXrHr-r-r.rsz!WriteSubprocessPipeProto.__init__cCs ||_dS)N)r4)r'Z transportr-r-r.rTsz(WriteSubprocessPipeProto.connection_madecCs d|jjd|jd|jdS)N)r,r1rHr4)r'r-r-r.r8 sz!WriteSubprocessPipeProto.__repr__cCs d|_|j|j|d|_dS)NT)rerXr`rH)r'r\r-r-r.rk sz(WriteSubprocessPipeProto.connection_lostcCs|jjdS)N)rXr pause_writing)r'r-r-r.rqsz&WriteSubprocessPipeProto.pause_writingcCs|jjdS)N)rXrresume_writing)r'r-r-r.rrsz'WriteSubprocessPipeProto.resume_writingN) r1rlrmrrTr8rkrqrrr-r-r-r.rNs rNc@seZdZddZdS)rQcCs|j|j|dS)N)rXrarH)r'r[r-r-r. data_receivedsz%ReadSubprocessPipeProto.data_receivedN)r1rlrmrsr-r-r-r.rQsrQ)rrrBrrlogrZSubprocessTransportrZ BaseProtocolrNZProtocolrQr-r-r-r.s   u