f92dZddlZddlmZddlmZddlmZddlmZddlmZejZ ejZ ejZ Gd d ejejZGd d Zdddej fd Zdddej ddZy))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|_|jj|_ y)N)loopF) super__init___limitstdinstdoutstderr _transport_process_exited _pipe_fds_loop create_future _stdin_closed)selflimitr __class__s )/usr/lib/python3.12/asyncio/subprocess.pyrz!SubprocessStreamProtocol.__init__sZ d# 155 5T[4;$!ZZ557cl|jjg}|j|jd|j|j|jd|j|j |jd|j dj dj|S)Nzstdin=zstdout=zstderr=z<{}> )r__name__rappendrrformatjoin)rinfos r__repr__z!SubprocessStreamProtocol.__repr__s''( :: ! KK&/ 0 ;; " KK'$++1 2 ;; " KK'$++1 2}}SXXd^,,rcn||_|jd}|ftj|j|j |_|j j||jjd|jd}|ftj|j|j |_ |jj||jjd|jd}|)tj||d|j |_ yy)Nrrrr)protocolreaderr) rget_pipe_transportr StreamReaderrrr set_transportrr#r StreamWriterr)r transportstdout_transportstderr_transportstdin_transports rconnection_madez(SubprocessStreamProtocol.connection_made(s#$77:  '!..T[[48JJ@DK KK % %&6 7 NN ! !! $$77:  '!..T[[48JJ@DK KK % %&6 7 NN ! !! $#66q9  & --o7;5937::?DJ 'rcx|dk(r |j}n|dk(r |j}nd}||j|yyNrr*)rr feed_data)rfddatar,s rpipe_data_receivedz+SubprocessStreamProtocol.pipe_data_received@s@ 7[[F 1W[[FF     T " rc |dk(rz|j}||j|j|||jj dy|jj |d|j_y|dk(r |j}n|dk(r |j}nd}|$||jn|j |||jvr|jj||jy)NrFrr*) rcloseconnection_lostr set_result set_exception_log_tracebackrrfeed_eofrremove_maybe_close_transport)rr9excpiper,s rpipe_connection_lostz-SubprocessStreamProtocol.pipe_connection_lostJs 7::D   %{""--d3  ""0055:""1  7[[F 1W[[FF  {!$$S)   NN ! !" % ##%rc2d|_|jy)NT)rrDrs rprocess_exitedz'SubprocessStreamProtocol.process_exitedhs# ##%rct|jdk(r/|jr"|jj d|_yyy)Nr)lenrrrr=rIs rrDz/SubprocessStreamProtocol._maybe_close_transportls: t~~ ! #(<(< OO ! ! #"DO)= #rc8||jur |jSyN)rr)rstreams r_get_close_waiterz*SubprocessStreamProtocol._get_close_waiterqs TZZ %% % r) r" __module__ __qualname____doc__rr'r5r;rGrJrDrP __classcell__)rs@rr r s.:8-?0#&<&# &rr cZeZdZdZdZedZdZdZdZ dZ dZ d Z d Z d d Zy )Processc||_||_||_|j|_|j|_|j |_|j |_yrN)r _protocolrrrrget_pidpid)rr1r+rs rrzProcess.__init__wsH#! ^^ oo oo $$&rcPd|jjd|jdS)N)rr"rZrIs rr'zProcess.__repr__s&4>>**+1TXXJa88rc6|jjSrN)rget_returncoderIs r returncodezProcess.returncodes--//rcRK|jjd{S7w)z?Wait until the process exit and return the process return code.N)r_waitrIs rwaitz Process.waits__**,,,,s '%'c:|jj|yrN)r send_signal)rsignals rrezProcess.send_signals ##F+rc8|jjyrN)r terminaterIs rrhzProcess.terminates !!#rc8|jjyrN)rkillrIs rrjz Process.kills rcK|jj} |=|jj||r t j d|t ||jjd{|rt j d||jjy77#ttf$r#}|rt j d||Yd}~bd}~wwxYww)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 $$& H    'LL?s5zS**""$ $ $  LL6 =  %!56 H ;T3G  HsAC)AB4:B2;B4?3C)2B44C&C!C)!C&&C)c KywrNrIs r_noopz Process._noops scK|jj|}|dk(r |j}n|dk(sJ|j}|jj r |dk(rdnd}t jd|||jd{}|jj r |dk(rdnd}t jd|||j|S7Pw)Nr*rrrz%r communicate: read %sz%r communicate: close %s) rr-rrrrlr rnreadr=)rr9r1rOnameoutputs r _read_streamzProcess._read_streamsOO66r: 7[[F7N7[[F ::   !!Qw8HD LL2D$ ?{{}$ ::   !!Qw8HD LL3T4 @ %sBC#C!AC#NcK|j|j|}n|j}|j|j d}n|j}|j |j d}n|j}t j|||d{\}}}|jd{||fS7$7 wr7) rrsrvrr{rr gatherrc)rrrrrrs r communicatezProcess.communicates :: !$$U+EJJLE ;; "&&q)FZZ\F ;; "&&q)FZZ\F&+ll5&&&I Ivviik!Js$B%C'C (CC CCrN)r"rQrRrr'propertyr`rcrerhrjrsrvr{r~rurrrVrVvsH'900-,$(" rrVc Ktj  fd} j||f|||d|d{\}}t|| S7w)NctSNr)r r)srz)create_subprocess_shell..7e=A Crrrr)rget_running_loopsubprocess_shellrV) cmdrrrrkwdsprotocol_factoryr1r+rs ` @rrrsm  " " $DC 5 5 5 !!!Ix 9h -- s6AAA)rrrrc Ktj  fd} j||g||||d|d{\}} t|| S7w)NctSrrr)srrz(create_subprocess_exec..rrr)rrsubprocess_execrV) programrrrrargsrrr1r+rs ` @rrrsy  " " $DC 4 4 4!!F ! !Ix 9h -- s9AAA)__all__ subprocessrrrr logr PIPESTDOUTDEVNULLFlowControlMixinSubprocessProtocolr rV_DEFAULT_LIMITrrrurrrs =      b&w77(;;b&JU U p.2$t(/(>(> .8