
    c(                         S SK r S SKrS SKrS SKrS SKrS SKrSSKJr  SSKJr  SSK	J
r
   " S S\R                  5      r " S S	\R                  5      r " S
 S\\R                  5      rg)    N   )	protocols)
transports)loggerc                      ^  \ rS rSr SU 4S jjrS rS rS rS rS r	S r
\R                  4S	 jrS
 rS rS rS r\R&                  S:X  a
  S rS rS rO	S rS rS rS rS rS rS rS rS rS rS rSrU =r $ )BaseSubprocessTransport   c           
        > [         TU ]  U
5        SU l        X l        Xl        S U l        S U l        S U l        / U l        [        R                  " 5       U l        0 U l        SU l        SU l        U[        R                   :X  a  S U R                  S'   U[        R                   :X  a  S U R                  S'   U[        R                   :X  a  S U R                  S'    U R"                  " SX4XVXxS.UD6  U R
                  R&                  U l        U R
                  U R(                  S'   U R                  R+                  5       (       aD  [-        U[.        [0        45      (       a  UnOUS   n[2        R4                  " SXR                  5        U R                  R7                  U R9                  U	5      5        g !   U R%                  5         e = f)	NFr   r      )argsshellstdinstdoutstderrbufsize
subprocesszprocess %r created: pid %s )super__init___closed	_protocol_loop_proc_pid_returncode_exit_waiterscollectionsdeque_pending_calls_pipes	_finished_pipes_connectedr   PIPE_startclosepid_extra	get_debug
isinstancebytesstrr   debugcreate_task_connect_pipes)selfloopprotocolr   r   r   r   r   r   waiterextrakwargsprogram	__class__s                Dplatform/bundledpythonunix/lib/python3.13/asyncio/base_subprocess.pyr    BaseSubprocessTransport.__init__   sx    	!

	)//1 %JOO#!DKKNZ__$!DKKNZ__$!DKKN	KK BTe%B:@B JJNN	$(JJL!::!!$--q'LL5 ))- 	

t226:;	JJLs   F1 1Gc                 v   U R                   R                  /nU R                  (       a  UR                  S5        U R                  b  UR                  SU R                   35        U R
                  b  UR                  SU R
                   35        O0U R                  b  UR                  S5        OUR                  S5        U R                  R                  S5      nUb  UR                  SUR                   35        U R                  R                  S5      nU R                  R                  S	5      nUb#  XCL a  UR                  S
UR                   35        OBUb  UR                  SUR                   35        Ub  UR                  SUR                   35        SR                  SR                  U5      5      $ )Nclosedzpid=zreturncode=runningznot startedr   zstdin=r   r   zstdout=stderr=zstdout=zstderr=z<{}> )r6   __name__r   appendr   r   r    getpipeformatjoin)r/   infor   r   r   s        r7   __repr__ BaseSubprocessTransport.__repr__;   sV   ''(<<KK!99 KK$tyyk*+'KK+d&6&6%789YY"KK	"KK&"KK&-.##&"2KK.67!gfkk]34!gfkk]34}}SXXd^,,    c                     [         eN)NotImplementedError)r/   r   r   r   r   r   r   r4   s           r7   r$   BaseSubprocessTransport._startX   s    !!rF   c                     Xl         g rH   r   )r/   r1   s     r7   set_protocol$BaseSubprocessTransport.set_protocol[   s    !rF   c                     U R                   $ rH   rL   r/   s    r7   get_protocol$BaseSubprocessTransport.get_protocol^   s    ~~rF   c                     U R                   $ rH   )r   rP   s    r7   
is_closing"BaseSubprocessTransport.is_closinga   s    ||rF   c                 \   U R                   (       a  g SU l         U R                  R                  5        HV  nUc  M  U R                  (       d  M  U R                  R	                  5       (       a  M<  UR
                  R                  5         MX     U R                  b|  U R                  cn  U R                  R                  5       cR  U R                  R                  5       (       a  [        R                  " SU 5         U R                  R                  5         g g g g ! [        [        4 a     g f = f)NTz$Close running child process: kill %r)r   r    valuesr   	is_closedr@   r%   r   r   pollr(   r   warningkillProcessLookupErrorPermissionError)r/   protos     r7   r%   BaseSubprocessTransport.closed   s    <<[['')E}
 zzz$**"6"6"8"8

  " * JJ"  ( 

!)zz##%%EtL

! * ) # '8 s   :D D+*D+c                 h    U R                   (       d!  U" SU < 3[        U S9  U R                  5         g g )Nzunclosed transport )source)r   ResourceWarningr%   )r/   _warns     r7   __del__BaseSubprocessTransport.__del__   s+    ||'x0/$OJJL rF   c                     U R                   $ rH   )r   rP   s    r7   get_pidBaseSubprocessTransport.get_pid   s    yyrF   c                     U R                   $ rH   )r   rP   s    r7   get_returncode&BaseSubprocessTransport.get_returncode   s    rF   c                 T    XR                   ;   a  U R                   U   R                  $ g rH   )r    r@   )r/   fds     r7   get_pipe_transport*BaseSubprocessTransport.get_pipe_transport   s#    ;;r?'''rF   c                 2    U R                   c
  [        5       eg rH   )r   r\   rP   s    r7   _check_proc#BaseSubprocessTransport._check_proc   s    ::$&& rF   win32c                 Z    U R                  5         U R                  R                  U5        g rH   )rq   r   send_signalr/   signals     r7   ru   #BaseSubprocessTransport.send_signal   s     JJ""6*rF   c                 X    U R                  5         U R                  R                  5         g rH   )rq   r   	terminaterP   s    r7   rz   !BaseSubprocessTransport.terminate   s    JJ  "rF   c                 X    U R                  5         U R                  R                  5         g rH   )rq   r   r[   rP   s    r7   r[   BaseSubprocessTransport.kill   s    JJOOrF   c                     U R                  5          [        R                  " U R                  R                  U5        g ! [
         a     g f = frH   )rq   osr[   r   r&   r\   rv   s     r7   ru   rx      s;    

/% s   +> 
A
Ac                 B    U R                  [        R                  5        g rH   )ru   rw   SIGTERMrP   s    r7   rz   r{          V^^,rF   c                 B    U R                  [        R                  5        g rH   )ru   rw   SIGKILLrP   s    r7   r[   r}      r   rF   c                   ^ #     T R                   nT R                  nUR                  b9  UR                  U 4S jUR                  5      I S h  vN u  pEUT R                  S'   UR
                  b9  UR                  U 4S jUR
                  5      I S h  vN u  pEUT R                  S'   UR                  b9  UR                  U 4S jUR                  5      I S h  vN u  pEUT R                  S'   T R                  c   eUR                  T R                  R                  T 5        T R                   H  u  pgUR                  " U/UQ76   M     S T l        Ub&  UR                  5       (       d  UR                  S 5        ST l        g  GN7 N N! [        [         4 a    e ["         a=  nUb0  UR                  5       (       d  UR%                  U5         S nAg  S nAg  S nAg S nAff = f7f)Nc                     > [        T S5      $ )Nr   )WriteSubprocessPipeProtorP   s   r7   <lambda>8BaseSubprocessTransport._connect_pipes.<locals>.<lambda>   s    4T1=rF   r   c                     > [        T S5      $ )Nr   ReadSubprocessPipeProtorP   s   r7   r   r          3D!<rF   r   c                     > [        T S5      $ )Nr   r   rP   s   r7   r   r      r   rF   r   T)r   r   r   connect_write_piper    r   connect_read_piper   r   	call_soonr   connection_made	cancelled
set_resultr"   
SystemExitKeyboardInterruptBaseExceptionset_exception)	r/   r2   procr0   _r@   callbackdataexcs	   `        r7   r.   &BaseSubprocessTransport._connect_pipes   s    $	)::D::Dzz% $ 7 7=JJ!    "&A{{& $ 6 6<KK!! ! "&A{{& $ 6 6<KK!! ! "&A&&222NN4>>994@"&"5"5x/$/ #6"&D !&*:*:*<*<!!$'$(D!? !! -. 	 	*!&*:*:*<*<$$S)) +=!	*sh   G%AF FAF FAF F	A9F 1G%F F 	F G"%)GG%G""G%c                     U R                   b  U R                   R                  X45        g U R                  R                  " U/UQ76   g rH   )r   r>   r   r   )r/   cbr   s      r7   _callBaseSubprocessTransport._call   s;    *&&z2JJ  +d+rF   c                 p    U R                  U R                  R                  X5        U R                  5         g rH   )r   r   pipe_connection_lost_try_finish)r/   rm   r   s      r7   _pipe_connection_lost-BaseSubprocessTransport._pipe_connection_lost   s&    

4>>66@rF   c                 P    U R                  U R                  R                  X5        g rH   )r   r   pipe_data_received)r/   rm   r   s      r7   _pipe_data_received+BaseSubprocessTransport._pipe_data_received   s    

4>>44b?rF   c                    Uc   U5       eU R                   b   U R                   5       eU R                  R                  5       (       a  [        R                  " SX5        Xl         U R
                  R                  c  XR
                  l        U R                  U R                  R                  5        U R                  5         g )Nz%r exited with return code %r)r   r   r(   r   rC   r   
returncoder   r   process_exitedr   )r/   r   s     r7   _process_exited'BaseSubprocessTransport._process_exited   s    %1z1%'9)9)99'::!!KK7J%::  ( %/JJ!

4>>001rF   c                    #    U R                   b  U R                   $ U R                  R                  5       nU R                  R	                  U5        UI Sh  vN $  N7f)z\Wait until the process exit and return the process return code.

This method is a coroutine.N)r   r   create_futurer   r>   r/   r2   s     r7   _waitBaseSubprocessTransport._wait   sO      '###))+!!&)||s   AAAAc                    U R                   (       a   eU R                  c  g U R                  (       dE  U R                   H5  nUR	                  5       (       a  M  UR                  U R                  5        M7     [        S U R                  R                  5        5       5      (       a$  SU l         U R                  U R                  S 5        g g )Nc              3   P   #    U  H  nUS L=(       a    UR                   v   M     g 7frH   )disconnected).0ps     r7   	<genexpr>6BaseSubprocessTransport._try_finish.<locals>.<genexpr>  s'      .,1 }//,s   $&T)r!   r   r"   r   r   r   allr    rW   r   _call_connection_lostr   s     r7   r   #BaseSubprocessTransport._try_finish  s    >>!!#$$ ,,''))%%d&6&67 -  .**,. . .!DNJJt1148.rF   c                     U R                   R                  U5        U R                   H5  nUR                  5       (       a  M  UR	                  U R
                  5        M7     S U l        S U l        S U l        S U l         g ! U R                   H5  nUR                  5       (       a  M  UR	                  U R
                  5        M7     S U l        S U l        S U l        S U l         f = frH   )r   connection_lostr   r   r   r   r   r   )r/   r   r2   s      r7   r   -BaseSubprocessTransport._call_connection_lost  s    
	"NN**3/ ,,''))%%d&6&67 - "&DDJDJ!DN ,,''))%%d&6&67 - "&DDJDJ!DNs   A? ?#C"&<C")r   r   r!   r   r   r   r    r"   r   r   r   )NN)!r=   
__module____qualname____firstlineno__r   rD   r$   rM   rQ   rT   r%   warningswarnrd   rg   rj   rn   rq   sysplatformru   rz   r[   r.   r   r   r   r   r   r   r   __static_attributes____classcell__)r6   s   @r7   r   r      s     %)*<X-:""B %MM 
 ' ||w	+	#			-	-%)N,@	9$" "rF   r   c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
r   i!  c                 8    Xl         X l        S U l        SU l        g )NF)r   rm   r@   r   )r/   r   rm   s      r7   r   !WriteSubprocessPipeProto.__init__#  s    		!rF   c                     Xl         g rH   )r@   )r/   	transports     r7   r   (WriteSubprocessPipeProto.connection_made)  s    	rF   c                 l    SU R                   R                   SU R                   SU R                  < S3$ )N<z fd=z pipe=>)r6   r=   rm   r@   rP   s    r7   rD   !WriteSubprocessPipeProto.__repr__,  s0    4>>**+4ytyym1MMrF   c                 l    SU l         U R                  R                  U R                  U5        S U l        g )NT)r   r   r   rm   )r/   r   s     r7   r   (WriteSubprocessPipeProto.connection_lost/  s)     		''5	rF   c                 L    U R                   R                  R                  5         g rH   )r   r   pause_writingrP   s    r7   r   &WriteSubprocessPipeProto.pause_writing4  s    		))+rF   c                 L    U R                   R                  R                  5         g rH   )r   r   resume_writingrP   s    r7   r   'WriteSubprocessPipeProto.resume_writing7  s    		**,rF   )r   rm   r@   r   N)r=   r   r   r   r   r   rD   r   r   r   r   r   rF   r7   r   r   !  s!    "N
,-rF   r   c                       \ rS rSrS rSrg)r   i;  c                 P    U R                   R                  U R                  U5        g rH   )r   r   rm   )r/   r   s     r7   data_received%ReadSubprocessPipeProto.data_received>  s    		%%dggt4rF   r   N)r=   r   r   r   r   r   r   rF   r7   r   r   ;  s    5rF   r   )r   r   r   r   rw   r    r   r   logr   SubprocessTransportr   BaseProtocolr   Protocolr   r   rF   r7   <module>r      s]       	  
   Q"j<< Q"h-y55 -456'005rF   