NfdZddlZddlmZddlmZddlmZddlmZddlmZej 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 )/usr/lib/python3.11/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|dkrk|j}||||||jdn|j|dS|dkr|j}n|dkr|j}nd}|,||n||||j vr|j || dS)Nrrr*) rcloseconnection_lostr set_result set_exceptionrrfeed_eofrremove_maybe_close_transport)rr9excpiper,s rpipe_connection_lostz-SubprocessStreamProtocol.pipe_connection_lostJs  77:D   % % %{"--d3333"00555 F 77[FF 1WW[FFF  {!!!!$$S)))    N ! !" % % % ##%%%%%rc<d|_|dS)NT)rrCrs rprocess_exitedz'SubprocessStreamProtocol.process_exitedes"# ##%%%%%rct|jdkr)|jr$|jd|_dSdSdS)Nr)lenrrrr=rHs rrCz/SubprocessStreamProtocol._maybe_close_transportisL t~  ! # #(< # O ! ! # # #"DOOO $ # # #rc&||jur|jSdSN)rr)rstreams r_get_close_waiterz*SubprocessStreamProtocol._get_close_waiterns TZ  % % r) r" __module__ __qualname____doc__rr'r5r;rFrIrCrO __classcell__)rs@rr r s::88888---???0###&&&6&&&### &&&&&&&rr cbeZdZdZdZedZdZdZdZ dZ dZ d Z d Z d d Zd S)Processc||_||_||_|j|_|j|_|j|_||_dSrM)r _protocolrrrrget_pidpid)rr1r+rs rrzProcess.__init__tsI#! ^ o o $$&&rc2d|jjd|jdS)N)rr"rYrHs rr'zProcess.__repr__}s"84>*88TX8888rc4|jSrM)rget_returncoderHs r returncodezProcess.returncodes--///rcDK|jd{VS)z?Wait until the process exit and return the process return code.N)r_waitrHs rwaitz Process.waits,_**,,,,,,,,,rc:|j|dSrM)r send_signal)rsignals rrdzProcess.send_signals ##F+++++rc8|jdSrM)r terminaterHs rrgzProcess.terminates !!#####rc8|jdSrM)rkillrHs rriz 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 debugrKdrainBrokenPipeErrorConnectionResetErrorr=)rinputrmrDs r _feed_stdinzProcess._feed_stdins $$&&   K L7s5zz K K K H*""$$ $ $ $ $ $ $ $ $!56 H H H H ;T3GGG H  > L6 = = = sA<<B/ B**B/c KdSrMrHs 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-rrrrkr rmreadr=)rr9r1rNnameoutputs 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)rrrurrzrr gatherrb)rrqrrrs r communicatezProcess.communicates  $$U++EEJJLLE ; "&&q))FFZZ\\F ; "&&q))FFZZ\\F&+l5&&&I&I I I I I I IvviikkrrM)r"rPrQrr'propertyr_rbrdrgrirrrurzr}rtrrrUrUss'''99900X0---,,,$$$""      rrUc 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_shellrU) 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_execrU) programrrrrargsrrr1r+rs ` @rrrs  " $ $DCCCCC 4 4!!!F !! !!Ix 9h - --r)__all__ subprocessrrrr logr PIPESTDOUTDEVNULLFlowControlMixinSubprocessProtocolr rU_DEFAULT_LIMITrrrtrrrsK =    _&_&_&_&_&w7(;_&_&_&DR R R R R R R R j.2$t(/(> . . . .8