PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  oY]#@sddlZddlZddlZddlmZddlmZddlmZddlmZddl m Z Gdd d ej Z Gd d d ej ZGd d d eejZdS)N)compat) protocols) transports) coroutine)loggercsEeZdZddfddZddZddZdd Zd d Zd d ZddZ e j rddZ ddZ ddZddZddZddZddZddZed d!Zd"d#Zd$d%Zd&d'Zd(d)Zed*d+Zd,d-Zd.d/ZS)0BaseSubprocessTransportNc  stj| d|_||_||_d|_d|_d|_g|_t j |_ i|_ d|_ |tjkrd|j d<|tjkrd|j d<|tjkrd|j d ) r/__name__rappendrrrgetpipejoin)r)infor r rr0r0r1__repr__9s,      z BaseSubprocessTransport.__repr__cKs tdS)N)NotImplementedError)r)r r r r rrr.r0r0r1r VszBaseSubprocessTransport._startcCs ||_dS)N)r)r)r+r0r0r1 set_protocolYsz$BaseSubprocessTransport.set_protocolcCs|jS)N)r)r)r0r0r1 get_protocol\sz$BaseSubprocessTransport.get_protocolcCs|jS)N)r)r)r0r0r1 is_closing_sz"BaseSubprocessTransport.is_closingc Cs|jr dSd|_x3|jjD]"}|dkr;q&|jjq&W|jdk r|jdkr|jjdkr|jj rt j d|y|jj Wnt k rYnXdS)NTz$Close running child process: kill %r)rrvaluesr8r!rrpollrr#rwarningkillProcessLookupError)r)protor0r0r1r!bs     zBaseSubprocessTransport.closecCs+|js'tjd|t|jdS)Nzunclosed transport %r)rwarningswarnResourceWarningr!)r)r0r0r1__del__s zBaseSubprocessTransport.__del__cCs|jS)N)r)r)r0r0r1get_pidszBaseSubprocessTransport.get_pidcCs|jS)N)r)r)r0r0r1get_returncodesz&BaseSubprocessTransport.get_returncodecCs%||jkr|j|jSdSdS)N)rr8)r)fdr0r0r1get_pipe_transportsz*BaseSubprocessTransport.get_pipe_transportcCs|jdkrtdS)N)rrD)r)r0r0r1 _check_procsz#BaseSubprocessTransport._check_proccCs|j|jj|dS)N)rNr send_signal)r)signalr0r0r1rOs z#BaseSubprocessTransport.send_signalcCs|j|jjdS)N)rNr terminate)r)r0r0r1rQs z!BaseSubprocessTransport.terminatecCs|j|jjdS)N)rNrrC)r)r0r0r1rCs zBaseSubprocessTransport.killc #sy7j}j}|jdk r]|jfdd|jEdH\}}|jd<|jdk r|jfdd|jEdH\}}|jd<|jdk r|jfdd|jEdH\}}|jd<|jj j x'j D]\}}|j||q Wd_ WnKt k r}z+|dk rr|j rr|j|WYdd}~Xn'X|dk r|j r|jddS)Ncs tdS)Nr)WriteSubprocessPipeProtor0)r)r0r1sz8BaseSubprocessTransport._connect_pipes..rcs tdS)Nr)ReadSubprocessPipeProtor0)r)r0r1rSsrcs tdS)Nr )rTr0)r)r0r1rSsr )rrr Zconnect_write_piperr Zconnect_read_piper call_soonrconnection_mader Exception cancelled set_exception set_result) r)r,procr*_r8callbackdataexcr0)r)r1r(s6       z&BaseSubprocessTransport._connect_pipescGs?|jdk r(|jj||fn|jj||dS)N)rr6rrU)r)cbr^r0r0r1_callszBaseSubprocessTransport._callcCs'|j|jj|||jdS)N)rarZpipe_connection_lost _try_finish)r)rLr_r0r0r1_pipe_connection_lostsz-BaseSubprocessTransport._pipe_connection_lostcCs|j|jj||dS)N)rarZpipe_data_received)r)rLr^r0r0r1_pipe_data_receivedsz+BaseSubprocessTransport._pipe_data_receivedcCs|jjr"tjd||||_|jjdkrI||j_|j|jj |j x*|j D]}|j sp|j |qpWd|_ dS)Nz%r exited with return code %r)rr#rr:rr returncoderarZprocess_exitedrbrrXrZ)r)rer,r0r0r1_process_exiteds      z'BaseSubprocessTransport._process_exitedccs>|jdk r|jS|jj}|jj||EdHS)N)rrZ create_futurerr6)r)r,r0r0r1_waits zBaseSubprocessTransport._waitcCsU|jdkrdStdd|jjDrQd|_|j|jddS)Ncss$|]}|dk o|jVqdS)N) disconnected).0pr0r0r1 sz6BaseSubprocessTransport._try_finish..T)rallrr@rra_call_connection_lost)r)r0r0r1rbs   z#BaseSubprocessTransport._try_finishc Cs7z|jj|Wdd|_d|_d|_XdS)N)rconnection_lostrr)r)r_r0r0r1rms   z-BaseSubprocessTransport._call_connection_lost)r5 __module__ __qualname__rr;r r=r>r?r!rZPY34rIrJrKrMrNrOrQrCrr(rarcrdrfrgrbrmr0r0)r/r1r s0 )               %     rc@sXeZdZddZddZddZddZd d Zd d Zd S)rRcCs(||_||_d|_d|_dS)NF)r[rLr8rh)r)r[rLr0r0r1rs   z!WriteSubprocessPipeProto.__init__cCs ||_dS)N)r8)r)Z transportr0r0r1rV sz(WriteSubprocessPipeProto.connection_madecCsd|jj|j|jfS)Nz<%s fd=%s pipe=%r>)r/r5rLr8)r)r0r0r1r;sz!WriteSubprocessPipeProto.__repr__cCs,d|_|jj|j|d|_dS)NT)rhr[rcrL)r)r_r0r0r1rns z(WriteSubprocessPipeProto.connection_lostcCs|jjjdS)N)r[r pause_writing)r)r0r0r1rqsz&WriteSubprocessPipeProto.pause_writingcCs|jjjdS)N)r[rresume_writing)r)r0r0r1rrsz'WriteSubprocessPipeProto.resume_writingN) r5rorprrVr;rnrqrrr0r0r0r1rRs      rRc@seZdZddZdS)rTcCs|jj|j|dS)N)r[rdrL)r)r^r0r0r1 data_received#sz%ReadSubprocessPipeProto.data_receivedN)r5rorprsr0r0r0r1rT s rT)rrrFrrrZ coroutinesrlogrZSubprocessTransportrZ BaseProtocolrRZProtocolrTr0r0r0r1s