a `"@sxddlZddlZddlZddlmZddlmZddlmZGdddejZ Gdd d ej Z Gd d d e ej Z dS) N) protocols) transports)loggercseZdZd0fdd ZddZddZdd Zd d Zd d ZddZ e j fddZ ddZ ddZddZddZddZddZddZd 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<z"|jf||||||d| Wn|Yn0|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_startclosepid_extra get_debug isinstancebytesstrrdebug create_task_connect_pipes) selfloopprotocolrr r r r r waiterextrakwargsprogram __class__:/usr/local/src/Python-3.9.6/Lib/asyncio/base_subprocess.pyr sH            z BaseSubprocessTransport.__init__cCs|jjg}|jr|d|jdur6|d|j|jdurT|d|jn |jdurj|dn |d|jd}|dur|d|j|jd}|jd }|dur||ur|d |jn6|dur|d |j|dur |d |jd d |S)Nclosedzpid=z returncode=runningz not startedrzstdin=rrzstdout=stderr=zstdout=zstderr=z<{}> ) r1__name__rappendrrrgetpipeformatjoin)r)infor r r r2r2r3__repr__7s,           z BaseSubprocessTransport.__repr__cKstdSN)NotImplementedError)r)rr r r r r r.r2r2r3rTszBaseSubprocessTransport._startcCs ||_dSr?r)r)r+r2r2r3 set_protocolWsz$BaseSubprocessTransport.set_protocolcCs|jSr?rAr)r2r2r3 get_protocolZsz$BaseSubprocessTransport.get_protocolcCs|jSr?)rrCr2r2r3 is_closing]sz"BaseSubprocessTransport.is_closingcCs|jr dSd|_|jD]}|dur(q|jq|jdur|jdur|jdur|j rlt d|z|j Wnt yYn0dS)NTz$Close running child process: kill %r)rrvaluesr:rrrpollrr"rwarningkillProcessLookupError)r)protor2r2r3r`s$      zBaseSubprocessTransport.closecCs&|js"|d|t|d|dS)Nzunclosed transport )source)rResourceWarningr)r)_warnr2r2r3__del__{szBaseSubprocessTransport.__del__cCs|jSr?)rrCr2r2r3get_pidszBaseSubprocessTransport.get_pidcCs|jSr?)rrCr2r2r3get_returncodesz&BaseSubprocessTransport.get_returncodecCs||jvr|j|jSdSdSr?)rr:)r)fdr2r2r3get_pipe_transports  z*BaseSubprocessTransport.get_pipe_transportcCs|jdurtdSr?)rrJrCr2r2r3 _check_procs z#BaseSubprocessTransport._check_proccCs||j|dSr?)rTr send_signal)r)signalr2r2r3rUsz#BaseSubprocessTransport.send_signalcCs||jdSr?)rTr terminaterCr2r2r3rWsz!BaseSubprocessTransport.terminatecCs||jdSr?)rTrrIrCr2r2r3rIszBaseSubprocessTransport.killc srzj}j}|jdurB|fdd|jIdH\}}|jd<|jdurv|fdd|jIdH\}}|jd<|jdur|fdd|jIdH\}}|jd<jdusJ| j j jD]\}}|j |g|Rqd_Wn\t t fy YnbtyN}z*|dur:|s:||WYd}~n(d}~00|durn|sn|ddS)Ncs tdS)Nr)WriteSubprocessPipeProtor2rCr2r3z8BaseSubprocessTransport._connect_pipes..rcs tdS)NrReadSubprocessPipeProtor2rCr2r3rYrZrcs tdS)Nrr[r2rCr2r3rYrZr)rrr connect_write_piperr connect_read_piper r call_soonrconnection_made SystemExitKeyboardInterrupt BaseException cancelled set_exception set_result) r)r,procr*_r:callbackdataexcr2rCr3r(sB           z&BaseSubprocessTransport._connect_pipescGs4|jdur|j||fn|jj|g|RdSr?)rr8rr_)r)cbrjr2r2r3_calls zBaseSubprocessTransport._callcCs||jj|||dSr?)rmrpipe_connection_lost _try_finish)r)rRrkr2r2r3_pipe_connection_lostsz-BaseSubprocessTransport._pipe_connection_lostcCs||jj||dSr?)rmrpipe_data_received)r)rRrjr2r2r3_pipe_data_receivedsz+BaseSubprocessTransport._pipe_data_receivedcCs|dusJ||jdus$J|j|jrsz6BaseSubprocessTransport._try_finish..T)rrallrrFrm_call_connection_lostrCr2r2r3ros  z#BaseSubprocessTransport._try_finishcCs<z"|j|Wd|_d|_d|_nd|_d|_d|_0dSr?)rconnection_lostrrr)rkr2r2r3r}sz-BaseSubprocessTransport._call_connection_lost)NN)r7 __module__ __qualname__rr>rrBrDrErwarningswarnrOrPrQrSrTrUrWrIr(rmrprrrurwror} __classcell__r2r2r0r3r s0+&  rc@s<eZdZddZddZddZddZd d Zd d Zd S)rXcCs||_||_d|_d|_dS)NF)rgrRr:rx)r)rgrRr2r2r3rsz!WriteSubprocessPipeProto.__init__cCs ||_dSr?)r:)r) transportr2r2r3r`sz(WriteSubprocessPipeProto.connection_madecCs d|jjd|jd|jdS)N)r1r7rRr:rCr2r2r3r> sz!WriteSubprocessPipeProto.__repr__cCs d|_|j|j|d|_dS)NT)rxrgrprRrr2r2r3r~ sz(WriteSubprocessPipeProto.connection_lostcCs|jjdSr?)rgr pause_writingrCr2r2r3rsz&WriteSubprocessPipeProto.pause_writingcCs|jjdSr?)rgrresume_writingrCr2r2r3rsz'WriteSubprocessPipeProto.resume_writingN) r7rrrr`r>r~rrr2r2r2r3rXs rXc@seZdZddZdS)r\cCs|j|j|dSr?)rgrrrR)r)rjr2r2r3 data_receivedsz%ReadSubprocessPipeProto.data_receivedN)r7rrrr2r2r2r3r\sr\)rrrrrlogrSubprocessTransportr BaseProtocolrXProtocolr\r2r2r2r3s   v