Ë
    òT•j¥"  ã                   óÀ   — d dl Z d dlZd dlZddlmZ ddlmZ ddlmZ  G d„ dej                  «      Z	 G d„ d	ej                  «      Z G d
„ deej                  «      Zy)é    Né   )Ú	protocols)Ú
transports)Úloggerc                   ó¾   ‡ — e Zd Z	 dˆ fd„	Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	e
j                  fd„Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zˆ xZS )ÚBaseSubprocessTransportc           
      ón  •— t         ‰| �  |
«       d| _        || _        || _        d | _        d | _        d | _        g | _        t        j                  «       | _        i | _        d| _        |t        j                  k(  rd | j                  d<   |t        j                  k(  rd | j                  d<   |t        j                  k(  rd | j                  d<   	  | j                   d||||||dœ|¤Ž | j
                  j$                  | _        | j
                  | j&                  d<   | j                  j)                  «       r?t+        |t,        t.        f«      r|}n|d   }t1        j2                  d|| j                  «       | j                  j5                  | j7                  |	«      «       y #  | j#                  «        ‚ xY w)	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Ú	_finishedr   Ú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                €ú./usr/lib/python3.12/asyncio/base_subprocess.pyr   z BaseSubprocessTransport.__init__   sx  ø€ ô 	‰Ñ˜ÔØˆŒØ!ˆŒØˆŒ
ØˆŒ
ØˆŒ	ØˆÔØˆÔÜ)×/Ñ/Ó1ˆÔØˆŒØˆŒà”J—O‘OÒ#Ø!ˆD�K‰K˜‰NØ”Z—_‘_Ò$Ø!ˆD�K‰K˜‰NØ”Z—_‘_Ò$Ø!ˆD�K‰K˜‰Nð	ØˆD�K‰Kð B˜T¨°eÀFØ%¨wñBØ:@òBð —J‘J—N‘NˆŒ	Ø$(§J¡Jˆ�‰�LÑ!à�:‰:×ÑÔ!Ü˜$¤¬ Ô-Ø‘à˜q™'�Ü�L‰LÐ5Ø  $§)¡)ô-ð 	�
‰
×Ñ˜t×2Ñ2°6Ó:Õ;øð	Ø�J‰JŒLØús   ÃF! Æ!F4c                 ó^  — | j                   j                  g}| j                  r|j                  d«       | j                  �|j                  d| j                  › �«       | j
                  �|j                  d| j
                  › �«       n/| j                  �|j                  d«       n|j                  d«       | j                  j                  d«      }|�|j                  d|j                  › �«       | j                  j                  d«      }| j                  j                  d	«      }|�#||u r|j                  d
|j                  › �«       n@|�|j                  d|j                  › �«       |�|j                  d|j                  › �«       dj                  dj                  |«      «      S )NÚclosedzpid=zreturncode=Úrunningznot startedr   zstdin=r   r
   zstdout=stderr=zstdout=zstderr=z<{}>ú )r4   Ú__name__r   Úappendr   r   r   ÚgetÚpipeÚformatÚjoin)r-   Úinfor   r   r   s        r5   Ú__repr__z BaseSubprocessTransport.__repr__7   sX  € Ø—‘×'Ñ'Ð(ˆØ�<Š<Ø�K‰K˜Ô!Ø�9‰9Ð Ø�K‰K˜$˜tŸy™y˜kÐ*Ô+Ø×ÑÐ'Ø�K‰K˜+ d×&6Ñ&6Ð%7Ð8Õ9Ø�Y‰YÐ"Ø�K‰K˜	Õ"à�K‰K˜Ô&à—‘—‘ Ó"ˆØÐØ�K‰K˜& §¡ Ð-Ô.à—‘—‘ Ó#ˆØ—‘—‘ Ó#ˆØÐ &¨FÑ"2Ø�K‰K˜.¨¯©¨Ð6Õ7àÐ!Ø—‘˜g f§k¡k ]Ð3Ô4ØÐ!Ø—‘˜g f§k¡k ]Ð3Ô4à�}‰}˜SŸX™X d›^Ó,Ð,ó    c                 ó   — t         ‚©N)ÚNotImplementedError)r-   r   r   r   r   r   r   r2   s           r5   r"   zBaseSubprocessTransport._startT   s   € Ü!Ð!rB   c                 ó   — || _         y rD   ©r   )r-   r/   s     r5   Úset_protocolz$BaseSubprocessTransport.set_protocolW   s	   € Ø!ˆ�rB   c                 ó   — | j                   S rD   rG   ©r-   s    r5   Úget_protocolz$BaseSubprocessTransport.get_protocolZ   s   € Ø�~‰~ÐrB   c                 ó   — | j                   S rD   )r   rJ   s    r5   Ú
is_closingz"BaseSubprocessTransport.is_closing]   s   € Ø�|‰|ÐrB   c                 óÂ  — | j                   ry d| _         | j                  j                  «       D ]  }|€Œ|j                  j	                  «        Œ! | j
                  �t| j                  €g| j
                  j                  «       €L| j                  j                  «       rt        j                  d| «       	 | j
                  j                  «        y y y y # t        $ r Y y w xY w)NTz$Close running child process: kill %r)r   r   Úvaluesr=   r#   r   r   Úpollr   r&   r   ÚwarningÚkillÚProcessLookupError)r-   Úprotos     r5   r#   zBaseSubprocessTransport.close`   sÇ   € Ø�<Š<ØØˆŒà—[‘[×'Ñ'Ó)ò 	ˆEØˆ}ØØ�J‰J×ÑÕð	ð
 �J‰JÐ"à× Ñ Ð(ð —
‘
—‘Ó!Ð)à�z‰z×#Ñ#Ô%Ü—‘ÐEÀtÔLðØ—
‘
—‘Õ!ð *ð )ð #øô &ò Ùðús   Â4C Ã	CÃCc                 ób   — | j                   s# |d| ›�t        | ¬«       | j                  «        y y )Nzunclosed transport )Úsource)r   ÚResourceWarningr#   )r-   Ú_warns     r5   Ú__del__zBaseSubprocessTransport.__del__{   s+   € Ø�|Š|ÙÐ'¨ xÐ0´/È$ÕOØ�J‰J�Lð rB   c                 ó   — | j                   S rD   )r   rJ   s    r5   Úget_pidzBaseSubprocessTransport.get_pid€   s   € Ø�y‰yÐrB   c                 ó   — | j                   S rD   )r   rJ   s    r5   Úget_returncodez&BaseSubprocessTransport.get_returncodeƒ   s   € Ø×ÑÐrB   c                 óR   — || j                   v r| j                   |   j                  S y rD   )r   r=   )r-   Úfds     r5   Úget_pipe_transportz*BaseSubprocessTransport.get_pipe_transport†   s%   € Ø�—‘ÑØ—;‘;˜r‘?×'Ñ'Ð'àrB   c                 ó0   — | j                   €
t        «       ‚y rD   )r   rS   rJ   s    r5   Ú_check_procz#BaseSubprocessTransport._check_procŒ   s   € Ø�:‰:ÐÜ$Ó&Ð&ð rB   c                 óZ   — | j                  «        | j                  j                  |«       y rD   )rb   r   Úsend_signal)r-   Úsignals     r5   rd   z#BaseSubprocessTransport.send_signal�   s    € Ø×ÑÔØ�
‰
×Ñ˜vÕ&rB   c                 óX   — | j                  «        | j                  j                  «        y rD   )rb   r   Ú	terminaterJ   s    r5   rg   z!BaseSubprocessTransport.terminate”   s   € Ø×ÑÔØ�
‰
×ÑÕrB   c                 óX   — | j                  «        | j                  j                  «        y rD   )rb   r   rR   rJ   s    r5   rR   zBaseSubprocessTransport.kill˜   s   € Ø×ÑÔØ�
‰
�‰ÕrB   c              ƒ   óž  ‡ K  — 	 ‰ j                   }‰ j                  }|j                  �9|j                  ˆ fd„|j                  «      ƒ d {  –—† \  }}|‰ j                  d<   |j
                  �9|j                  ˆ fd„|j
                  «      ƒ d {  –—† \  }}|‰ j                  d<   |j                  �9|j                  ˆ fd„|j                  «      ƒ d {  –—† \  }}|‰ j                  d<   ‰ j                  €J ‚|j                  ‰ j                  j                  ‰ «       ‰ j                  D ]  \  }} |j                  |g|¢­Ž  Œ d ‰ _        |�#|j                  «       s|j                  d «       y y y 7 �Œ)7 Œæ7 Œ£# t        t        f$ r ‚ t         $ r7}|�+|j                  «       s|j#                  |«       Y d }~y Y d }~y Y d }~y d }~ww xY w­w)Nc                  ó   •— t        ‰ d«      S )Nr   )ÚWriteSubprocessPipeProtorJ   s   €r5   ú<lambda>z8BaseSubprocessTransport._connect_pipes.<locals>.<lambda>£   s   ø€ Ô4°T¸1Ó=€ rB   r   c                  ó   •— t        ‰ d«      S )Nr   ©ÚReadSubprocessPipeProtorJ   s   €r5   rl   z8BaseSubprocessTransport._connect_pipes.<locals>.<lambda>©   ó   ø€ Ô3°D¸!Ó<€ rB   r   c                  ó   •— t        ‰ d«      S )Nr
   rn   rJ   s   €r5   rl   z8BaseSubprocessTransport._connect_pipes.<locals>.<lambda>¯   rp   rB   r
   )r   r   r   Úconnect_write_piper   r   Úconnect_read_piper   r   Ú	call_soonr   Úconnection_madeÚ	cancelledÚ
set_resultÚ
SystemExitÚKeyboardInterruptÚBaseExceptionÚset_exception)	r-   r0   Úprocr.   Ú_r=   ÚcallbackÚdataÚexcs	   `        r5   r,   z&BaseSubprocessTransport._connect_pipesœ   s¶  øè ø€ ð#	(Ø—:‘:ˆDØ—:‘:ˆDà�z‰zÐ%Ø $× 7Ñ 7Û=Ø—J‘Jó! ÷  ‘��4ð "&�—‘˜A‘à�{‰{Ð&Ø $× 6Ñ 6Û<Ø—K‘Kó!!÷ !‘��4ð "&�—‘˜A‘à�{‰{Ð&Ø $× 6Ñ 6Û<Ø—K‘Kó!!÷ !‘��4ð "&�—‘˜A‘à×&Ñ&Ð2Ð2Ð2à�N‰N˜4Ÿ>™>×9Ñ9¸4Ô@Ø"&×"5Ñ"5ò 0‘�˜$Ø�—‘˜xÐ/¨$Ô/ð0à"&ˆDÔð Ð!¨&×*:Ñ*:Ô*<Ø×!Ñ! $Õ'ð +=Ð!ð; ùð!øð!ùô Ô-Ð.ò 	ØÜò 	*ØÐ!¨&×*:Ñ*:Ô*<Ø×$Ñ$ S×)Ñ)ô +=Ô!ûð	*üsh   ƒG…AE; ÁE4ÁAE; ÂE7ÂAE; ÃE9ÃA8E; Å&GÅ4E; Å7E; Å9E; Å;G
Æ#GÆ6GÇG
Ç
Gc                 ó’   — | j                   �| j                   j                  ||f«       y  | j                  j                  |g|¢­Ž  y rD   )r   r;   r   rt   )r-   Úcbr   s      r5   Ú_callzBaseSubprocessTransport._callÂ   s?   € Ø×ÑÐ*Ø×Ñ×&Ñ&¨¨D zÕ2à ˆD�J‰J× Ñ  Ð+ dÔ+rB   c                 ór   — | j                  | j                  j                  ||«       | j                  «        y rD   )rƒ   r   Úpipe_connection_lostÚ_try_finish)r-   r_   r€   s      r5   Ú_pipe_connection_lostz-BaseSubprocessTransport._pipe_connection_lostÈ   s(   € Ø�
‰
�4—>‘>×6Ñ6¸¸CÔ@Ø×ÑÕrB   c                 óR   — | j                  | j                  j                  ||«       y rD   )rƒ   r   Úpipe_data_received)r-   r_   r   s      r5   Ú_pipe_data_receivedz+BaseSubprocessTransport._pipe_data_receivedÌ   s   € Ø�
‰
�4—>‘>×4Ñ4°b¸$Õ?rB   c                 óx  — |€J |«       ‚| j                   �J | j                   «       ‚| j                  j                  «       rt        j                  d| |«       || _         | j
                  j                  €|| j
                  _        | j                  | j                  j                  «       | j                  «        y )Nz%r exited with return code %r)r   r   r&   r   r@   r   Ú
returncoderƒ   r   Úprocess_exitedr†   )r-   rŒ   s     r5   Ú_process_exitedz'BaseSubprocessTransport._process_exitedÏ   s™   € ØÐ%Ð1 zÓ1Ð%Ø×ÑÐ'Ð9¨×)9Ñ)9Ó9Ð'Ø�:‰:×ÑÔ!Ü�K‰KÐ7¸¸zÔJØ%ˆÔØ�:‰:× Ñ Ð(ð %/ˆD�J‰JÔ!Ø�
‰
�4—>‘>×0Ñ0Ô1à×ÑÕrB   c              ƒ   ó¼   K  — | j                   �| j                   S | j                  j                  «       }| j                  j	                  |«       |ƒ d{  –—† S 7 Œ­w)zdWait until the process exit and return the process return code.

        This method is a coroutine.N)r   r   Úcreate_futurer   r;   )r-   r0   s     r5   Ú_waitzBaseSubprocessTransport._waitÝ   sP   è ø€ ð ×ÑÐ'Ø×#Ñ#Ð#à—‘×)Ñ)Ó+ˆØ×Ñ×!Ñ! &Ô)Ø�|Ðˆ|ús   ‚AAÁAÁAc                 óÖ   — | j                   rJ ‚| j                  €y t        d„ | j                  j	                  «       D «       «      r$d| _         | j                  | j                  d «       y y )Nc              3   ó@   K  — | ]  }|d uxr |j                   –— Œ y ­wrD   )Údisconnected)Ú.0Úps     r5   ú	<genexpr>z6BaseSubprocessTransport._try_finish.<locals>.<genexpr>ì   s(   è ø€ ò .Øð ˜ˆ}Ò/ §¡Ó/ñ .ùs   ‚T)r    r   Úallr   rO   rƒ   Ú_call_connection_lostrJ   s    r5   r†   z#BaseSubprocessTransport._try_finishè   s`   € Ø—>’>Ð!Ð!Ø×ÑÐ#ØÜñ .ØŸ™×*Ñ*Ó,ô.ô .à!ˆDŒNØ�J‰J�t×1Ñ1°4Õ8ð.rB   c                 óª  — 	 | j                   j                  |«       | j                  D ].  }|j                  «       rŒ|j	                  | j
                  «       Œ0 d | _        d | _        d | _        d | _         y # | j                  D ].  }|j                  «       rŒ|j	                  | j
                  «       Œ0 d | _        d | _        d | _        d | _         w xY wrD   )r   Úconnection_lostr   rv   rw   r   r   r   )r-   r€   r0   s      r5   r™   z-BaseSubprocessTransport._call_connection_lostñ   sÇ   € ð
	"Ø�N‰N×*Ñ*¨3Ô/ð ×,Ñ,ò 8�Ø×'Ñ'Õ)Ø×%Ñ% d×&6Ñ&6Õ7ð8ð "&ˆDÔØˆDŒJØˆDŒJØ!ˆD�Nøð ×,Ñ,ò 8�Ø×'Ñ'Õ)Ø×%Ñ% d×&6Ñ&6Õ7ð8ð "&ˆDÔØˆDŒJØˆDŒJØ!ˆD�Nús   ‚A7 Á7 CÂ:C)NN)r:   Ú
__module__Ú__qualname__r   rA   r"   rH   rK   rM   r#   ÚwarningsÚwarnrY   r[   r]   r`   rb   rd   rg   rR   r,   rƒ   r‡   rŠ   rŽ   r‘   r†   r™   Ú__classcell__)r4   s   @r5   r   r   
   s‡   ø„ ð %)õ)<òV-ò:"ò"òòòð6 %ŸM™Mó ò
ò òò'ò'òòò$(òL,òò@òò	ò9ö"rB   r   c                   ó0   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)rk   c                 ó<   — || _         || _        d | _        d| _        y )NF)r|   r_   r=   r”   )r-   r|   r_   s      r5   r   z!WriteSubprocessPipeProto.__init__  s   € ØˆŒ	ØˆŒØˆŒ	Ø!ˆÕrB   c                 ó   — || _         y rD   )r=   )r-   Ú	transports     r5   ru   z(WriteSubprocessPipeProto.connection_made  s	   € Øˆ�	rB   c                 ój   — d| j                   j                  › d| j                  › d| j                  ›d�S )Nú<z fd=z pipe=ú>)r4   r:   r_   r=   rJ   s    r5   rA   z!WriteSubprocessPipeProto.__repr__
  s0   € Ø�4—>‘>×*Ñ*Ð+¨4°·±¨y¸¸t¿y¹y¸mÈ1ÐMÐMrB   c                 ól   — d| _         | j                  j                  | j                  |«       d | _        y )NT)r”   r|   r‡   r_   )r-   r€   s     r5   r›   z(WriteSubprocessPipeProto.connection_lost  s)   € Ø ˆÔØ�	‰	×'Ñ'¨¯©°Ô5Øˆ�	rB   c                 óL   — | j                   j                  j                  «        y rD   )r|   r   Úpause_writingrJ   s    r5   rª   z&WriteSubprocessPipeProto.pause_writing  s   € Ø�	‰	×Ñ×)Ñ)Õ+rB   c                 óL   — | j                   j                  j                  «        y rD   )r|   r   Úresume_writingrJ   s    r5   r¬   z'WriteSubprocessPipeProto.resume_writing  s   € Ø�	‰	×Ñ×*Ñ*Õ,rB   N)	r:   rœ   r�   r   ru   rA   r›   rª   r¬   r   rB   r5   rk   rk   ÿ   s!   „ ò"òòNòò
,ó-rB   rk   c                   ó   — e Zd Zd„ Zy)ro   c                 óP   — | j                   j                  | j                  |«       y rD   )r|   rŠ   r_   )r-   r   s     r5   Údata_receivedz%ReadSubprocessPipeProto.data_received  s   € Ø�	‰	×%Ñ% d§g¡g¨tÕ4rB   N)r:   rœ   r�   r¯   r   rB   r5   ro   ro     s   „ ó5rB   ro   )r   r   rž   Ú r   r   Úlogr   ÚSubprocessTransportr   ÚBaseProtocolrk   ÚProtocolro   r   rB   r5   ú<module>rµ      sT   ðÛ Û Û å Ý Ý ôr"˜j×<Ñ<ô r"ôj-˜y×5Ñ5ô -ô45Ð6Ø'×0Ñ0õ5rB   