\ddZddlZddlmZddlmZddlmZddlmZddlmZej Z ej Z ej Z Gd d ej ej ZGd d Zdddejfd ZdddejddZdS))create_subprocess_execcreate_subprocess_shellN)events) protocols)streams)tasks)loggercLeZdZdZfdZdZdZdZdZdZ dZ d Z xZ S) SubprocessStreamProtocolz0Like StreamReaderProtocol, but for a subprocess.ct|||_dx|_x|_|_d|_d|_g|_|j |_ dS)N)loopF) super__init___limitstdinstdoutstderr _transport_process_exited _pipe_fds_loop create_future _stdin_closed)selflimitr __class__s #..\python\lib\asyncio\subprocess.pyrz!SubprocessStreamProtocol.__init__sl d### 155 5T[4;$!Z5577cD|jjg}|j|d|j|j|d|j|j|d|jdd|S)Nzstdin=zstdout=zstderr=z<{}> )r__name__rappendrrformatjoin)rinfos r__repr__z!SubprocessStreamProtocol.__repr__s'( : ! KK/// 0 0 0 ; " KK1$+11 2 2 2 ; " KK1$+11 2 2 2}}SXXd^^,,,rcJ||_|d}|Ytj|j|j|_|j||j d|d}|Ytj|j|j|_ |j ||j d|d}|$tj ||d|j|_ dSdS)Nrrrr)protocolreaderr) rget_pipe_transportr StreamReaderrrr set_transportrr#r StreamWriterr)r transportstdout_transportstderr_transportstdin_transports rconnection_madez(SubprocessStreamProtocol.connection_made(s,#$77::  '!.T[48J@@@DK K % %&6 7 7 7 N ! !! $ $ $$77::  '!.T[48J@@@DK K % %&6 7 7 7 N ! !! $ $ $#66q99  & -o7;5937:???DJJJ ' &rct|dkr|j}n|dkr|j}nd}|||dSdSNrr*)rr feed_data)rfddatar,s rpipe_data_receivedz+SubprocessStreamProtocol.pipe_data_received@sS 77[FF 1WW[FFF     T " " " " "  rc|dkrw|j}||||||jdn&|j|d|j_dS|dkr|j}n|dkr|j}nd}|,|| n||||j vr|j || dS)NrFrr*) rcloseconnection_lostr set_result set_exception_log_tracebackrrfeed_eofrremove_maybe_close_transport)rr9excpiper,s rpipe_connection_lostz-SubprocessStreamProtocol.pipe_connection_lostJs 77:D   % % %{"--d3333"005555:"1 F 77[FF 1WW[FFF  {!!!!$$S)))    N ! !" % % % ##%%%%%rc<d|_|dS)NT)rrDrs rprocess_exitedz'SubprocessStreamProtocol.process_exitedhs"# ##%%%%%rct|jdkr)|jr$|jd|_dSdSdS)Nr)lenrrrr=rIs rrDz/SubprocessStreamProtocol._maybe_close_transportlsL t~  ! # #(< # O ! ! # # #"DOOO $ # # #rc&||jur|jSdSN)rr)rstreams r_get_close_waiterz*SubprocessStreamProtocol._get_close_waiterqs TZ  % % r) r" __module__ __qualname____doc__rr'r5r;rGrJrDrP __classcell__)rs@rr r s::88888---???0###&&&<&&&### &&&&&&&rr cbeZdZdZdZedZdZdZdZ dZ dZ d Z d Z d d Zd S)Processc||_||_||_|j|_|j|_|j|_||_dSrN)r _protocolrrrrget_pidpid)rr1r+rs rrzProcess.__init__wsI#! ^ o o $$&&rc2d|jjd|jdS)N)rr"rZrIs rr'zProcess.__repr__s"84>*88TX8888rc4|jSrN)rget_returncoderIs r returncodezProcess.returncodes--///rcDK|jd{VS)z?Wait until the process exit and return the process return code.N)r_waitrIs rwaitz Process.waits,_**,,,,,,,,,rc:|j|dSrN)r send_signal)rsignals rrezProcess.send_signals ##F+++++rc8|jdSrN)r terminaterIs rrhzProcess.terminates !!#####rc8|jdSrN)rkillrIs rrjz Process.kills rcK|j}|j||r#t jd|t | |jd{Vn6#ttf$r"}|rt jd||Yd}~nd}~wwxYw|rt jd||j dS)Nz%%r communicate: feed stdin (%s bytes)z%r communicate: stdin got %rz%r communicate: close stdin) r get_debugrwriter debugrLdrainBrokenPipeErrorConnectionResetErrorr=)rinputrnrEs r _feed_stdinzProcess._feed_stdins $$&&   K L7s5zz K K K H*""$$ $ $ $ $ $ $ $ $!56 H H H H ;T3GGG H  > L6 = = = sA<<B/ B**B/c KdSrNrIs r_noopz Process._noops trcK|j|}|dkr|j}n|dksJ|j}|jr |dkrdnd}t jd|||d{V}|jr |dkrdnd}t jd||| |S)Nr*rrrz%r communicate: read %sz%r communicate: close %s) rr-rrrrlr rnreadr=)rr9r1rOnameoutputs r _read_streamzProcess._read_streamsO66r:: 77[FF7777[F :   ! ! @!Qww88HD L2D$ ? ? ?{{}}$$$$$$ :   ! ! A!Qww88HD L3T4 @ @ @ rNcK|||}n|}|j|d}n|}|j|d}n|}t j|||d{V\}}}|d{V||fSr7)rsrvrr{rr gatherrc)rrrrrrs r communicatezProcess.communicates  $$U++EEJJLLE ; "&&q))FFZZ\\F ; "&&q))FFZZ\\F&+l5&&&I&I I I I I I IvviikkrrN)r"rQrRrr'propertyr`rcrerhrjrsrvr{r~rurrrVrVvs'''99900X0---,,,$$$""      rrVc Ktj  fd} j||f|||d|d{V\}}t|| S)Nc&tSNr)r r)srz)create_subprocess_shell..7e=A C C Crrrr)rget_running_loopsubprocess_shellrV) cmdrrrrkwdsprotocol_factoryr1r+rs ` @rrrs  " $ $DCCCCC 5 5 !!!!!Ix 9h - --r)rrrrc Ktj  fd} j||g|R|||d|d{V\}} t|| S)Nc&tSrrr)srrz(create_subprocess_exec..rrr)rrsubprocess_execrV) programrrrrargsrrr1r+rs ` @rrrs  " $ $DCCCCC 4 4!!!F !! !!Ix 9h - --r)__all__ subprocessrrrr logr PIPESTDOUTDEVNULLFlowControlMixinSubprocessProtocolr rV_DEFAULT_LIMITrrrurrrsK =    b&b&b&b&b&w7(;b&b&b&JR R R R R R R R j.2$t(/(> . . . .8