§
    (¶Õi¥"  ã                   ó¶   — 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dS )é    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 )ÚBaseSubprocessTransportNc           
      óD  •— 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œ|¤Ž n#  |                      ¦   «          ‚ xY w| j        j        | _        | j        | j        d<   | j                             ¦   «         rBt+          |t,          t.          f¦  «        r|}n|d         }t1          j        d|| j        ¦  «         | j                             |                      |	¦  «        ¦  «         d S )	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.11/asyncio/base_subprocess.pyr   z BaseSubprocessTransport.__init__   sµ  ø€ õ 	‰Œ×Ò˜ÑÔÐØˆŒØ!ˆŒØˆŒ
ØˆŒ
ØˆŒ	ØˆÔØˆÔÝ)Ô/Ñ1Ô1ˆÔØˆŒØˆŒà•J”OÒ#Ð#Ø!ˆDŒK˜‰NØ•Z”_Ò$Ð$Ø!ˆDŒK˜‰NØ•Z”_Ò$Ð$Ø!ˆDŒK˜‰Nð	ØˆDŒKð B˜T¨°eÀFØ%¨wðBð BØ:@ðBð Bð Bð Bøð	Ø�JŠJ‰LŒLˆLØøøøà”J”NˆŒ	Ø$(¤JˆŒ�LÑ!àŒ:×ÒÑ!Ô!ð 	-Ý˜$¥­ Ñ-Ô-ð "Ø��à˜qœ'�ÝŒLÐ5Ø  $¤)ñ-ô -ð -ð 	Œ
×Ò˜t×2Ò2°6Ñ:Ô:Ñ;Ô;Ð;Ð;Ð;s   Ã	C ÃC5c                 ó8  — | j         j        g}| j        r|                     d¦  «         | j        �|                     d| j        › �¦  «         | j        �|                     d| j        › �¦  «         n2| j        �|                     d¦  «         n|                     d¦  «         | j                             d¦  «        }|�|                     d|j        › �¦  «         | j                             d¦  «        }| j                             d	¦  «        }|�"||u r|                     d
|j        › �¦  «         n>|�|                     d|j        › �¦  «         |�|                     d|j        › �¦  «         d 	                    d 
                    |¦  «        ¦  «        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   s—  € Ø”Ô'Ð(ˆØŒ<ð 	"Ø�KŠK˜Ñ!Ô!Ð!ØŒ9Ð Ø�KŠKÐ*˜tœyÐ*Ð*Ñ+Ô+Ð+ØÔÐ'Ø�KŠKÐ8 dÔ&6Ð8Ð8Ñ9Ô9Ð9Ð9ØŒYÐ"Ø�KŠK˜	Ñ"Ô"Ð"Ð"à�KŠK˜Ñ&Ô&Ð&à”—’ Ñ"Ô"ˆØÐØ�KŠKÐ- ¤Ð-Ð-Ñ.Ô.Ð.à”—’ Ñ#Ô#ˆØ”—’ Ñ#Ô#ˆØÐ &¨FÐ"2Ð"2Ø�KŠKÐ6¨¬Ð6Ð6Ñ7Ô7Ð7Ð7àÐ!Ø—’Ð3 f¤kÐ3Ð3Ñ4Ô4Ð4ØÐ!Ø—’Ð3 f¤kÐ3Ð3Ñ4Ô4Ð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                 ó   — || _         d S 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d S d| _         | j                             ¦   «         D ]}|€Œ|j                             ¦   «          Œ| j        �{| j        €v| j                             ¦   «         €_| j         	                    ¦   «         rt          j        d| ¦  «         	 | j                             ¦   «          d S # t          $ r Y d S w xY wd S d S d S )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ø   € ØŒ<ð 	ØˆFØˆŒà”[×'Ò'Ñ)Ô)ð 	ð 	ˆEØˆ}ØØŒJ×ÒÑÔÐÐàŒJÐ"àÔ Ð(ð ”
—’Ñ!Ô!Ð)àŒz×#Ò#Ñ%Ô%ð MÝ”ÐEÀtÑLÔLÐLðØ”
—’Ñ!Ô!Ð!Ð!Ð!øÝ%ð ð ð Ø��ðøøøð #Ð"à(Ð(ð *Ð)s   ÂB: Â:
CÃCc                 ól   — | j         s, |d| ›�t          | ¬¦  «         |                      ¦   «          d S d S )Nzunclosed transport )Úsource)r   ÚResourceWarningr#   )r-   Ú_warns     r5   Ú__del__zBaseSubprocessTransport.__del__{   sG   € ØŒ|ð 	ØˆEÐ0¨Ð0Ð0µ/È$ÐOÑOÔOÐOØ�JŠJ‰LŒLˆLˆLˆLð	ð 	rB   c                 ó   — | j         S rD   )r   rJ   s    r5   Úget_pidzBaseSubprocessTransport.get_pid€   s
   € ØŒyÐrB   c                 ó   — | j         S rD   )r   rJ   s    r5   Úget_returncodez&BaseSubprocessTransport.get_returncodeƒ   s   € ØÔÐrB   c                 ó<   — || j         v r| j         |         j        S d S rD   )r   r=   )r-   Úfds     r5   Úget_pipe_transportz*BaseSubprocessTransport.get_pipe_transport†   s#   € Ø�”ÐÐØ”;˜r”?Ô'Ð'à�4rB   c                 ó0   — | j         €t          ¦   «         ‚d S rD   )r   rS   rJ   s    r5   Ú_check_procz#BaseSubprocessTransport._check_procŒ   s   € ØŒ:ÐÝ$Ñ&Ô&Ð&ð ÐrB   c                 ób   — |                       ¦   «          | j                             |¦  «         d S rD   )rb   r   Úsend_signal)r-   Úsignals     r5   rd   z#BaseSubprocessTransport.send_signal�   s0   € Ø×ÒÑÔÐØŒ
×Ò˜vÑ&Ô&Ð&Ð&Ð&rB   c                 ó`   — |                       ¦   «          | j                             ¦   «          d S rD   )rb   r   Ú	terminaterJ   s    r5   rg   z!BaseSubprocessTransport.terminate”   s.   € Ø×ÒÑÔÐØŒ
×ÒÑÔÐÐÐrB   c                 ó`   — |                       ¦   «          | j                             ¦   «          d S rD   )rb   r   rR   rJ   s    r5   rR   zBaseSubprocessTransport.kill˜   s,   € Ø×ÒÑÔÐØŒ
�ŠÑÔÐÐÐrB   c              ƒ   ó.  ‡ K  — 	 ‰ j         }‰ j        }|j        �1|                     ˆ fd„|j        ¦  «        ƒ d {V —†\  }}|‰ j        d<   |j        �1|                     ˆ fd„|j        ¦  «        ƒ d {V —†\  }}|‰ j        d<   |j        �1|                     ˆ fd„|j        ¦  «        ƒ d {V —†\  }}|‰ j        d<   ‰ j        €J ‚| 	                    ‰ j
        j        ‰ ¦  «         ‰ j        D ]\  }} |j	        |g|¢R Ž  Œd ‰ _        |�+|                     ¦   «         s|                     d ¦  «         d S d S d S # t          t          f$ r ‚ t           $ rB}|�/|                     ¦   «         s!|                     |¦  «         Y d }~d S Y d }~d S Y d }~d S d }~ww xY 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œ   st  øè è € ð#	(Ø”:ˆDØ”:ˆDàŒzÐ%Ø $× 7Ò 7Ø=Ð=Ð=Ð=Ø”Jñ! ô ! ð  ð  ð  ð  ð  ð  ‘��4ð "&�”˜A‘àŒ{Ð&Ø $× 6Ò 6Ø<Ð<Ð<Ð<Ø”Kñ!!ô !!ð !ð !ð !ð !ð !ð !‘��4ð "&�”˜A‘àŒ{Ð&Ø $× 6Ò 6Ø<Ð<Ð<Ð<Ø”Kñ!!ô !!ð !ð !ð !ð !ð !ð !‘��4ð "&�”˜A‘àÔ&Ð2Ð2Ð2à�NŠN˜4œ>Ô9¸4Ñ@Ô@Ð@Ø"&Ô"5ð 0ð 0‘�˜$Ø�”˜xÐ/¨$Ð/Ð/Ð/Ð/Ð/Ø"&ˆDÔð Ð!¨&×*:Ò*:Ñ*<Ô*<Ð!Ø×!Ò! $Ñ'Ô'Ð'Ð'Ð'ð "Ð!Ð!Ð!øõ Õ-Ð.ð 	ð 	ð 	ØÝð 	*ð 	*ð 	*ØÐ!¨&×*:Ò*:Ñ*<Ô*<Ð!Ø×$Ò$ SÑ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)Ð)ð "Ð!Ð!Ð!Ð!Ð!Ð!Ð!Ð!Ð!Ð!Ð!øøøøð	*øøøs   …DD7 Ä7FÅ+FÆFc                 óv   — | j         �| j                              ||f¦  «         d S  | j        j        |g|¢R Ž  d S rD   )r   r;   r   rt   )r-   Úcbr   s      r5   Ú_callzBaseSubprocessTransport._callÂ   sO   € ØÔÐ*ØÔ×&Ò&¨¨D zÑ2Ô2Ð2Ð2Ð2à ˆDŒJÔ  Ð+ dÐ+Ð+Ð+Ð+Ð+Ð+rB   c                 óp   — |                       | j        j        ||¦  «         |                      ¦   «          d S rD   )rƒ   r   Úpipe_connection_lostÚ_try_finish)r-   r_   r€   s      r5   Ú_pipe_connection_lostz-BaseSubprocessTransport._pipe_connection_lostÈ   s5   € Ø�
Š
�4”>Ô6¸¸CÑ@Ô@Ð@Ø×ÒÑÔÐÐÐrB   c                 óH   — |                       | j        j        ||¦  «         d S rD   )rƒ   r   Úpipe_data_received)r-   r_   r   s      r5   Ú_pipe_data_receivedz+BaseSubprocessTransport._pipe_data_receivedÌ   s#   € Ø�
Š
�4”>Ô4°b¸$Ñ?Ô?Ð?Ð?Ð?rB   c                 óL  — |€
J |¦   «         ‚| j         �J | j         ¦   «         ‚| j                             ¦   «         rt          j        d| |¦  «         || _         | j        j        €|| j        _        |                      | j        j	        ¦  «         |  
                    ¦   «          d S )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ª   € ØÐ%Ð% zÑ%Ô%Ð%ØÔÐ'Ð'¨Ô)9Ñ'Ô'Ð'ØŒ:×ÒÑ!Ô!ð 	KÝŒKÐ7¸¸zÑJÔJÐJØ%ˆÔØŒ:Ô Ð(ð %/ˆDŒJÔ!Ø�
Š
�4”>Ô0Ñ1Ô1Ð1à×ÒÑÔÐÐÐrB   c              ƒ   ó˜   K  — | j         �| j         S | j                             ¦   «         }| j                             |¦  «         |ƒ d{V —†S )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Ý   sV   è è € ð ÔÐ'ØÔ#Ð#à”×)Ò)Ñ+Ô+ˆØÔ×!Ò! &Ñ)Ô)Ð)Øˆ|ˆ|ˆ|ˆ|ˆ|ˆ|ÐrB   c                 óÒ   — | j         rJ ‚| j        €d S t          d„ | j                             ¦   «         D ¦   «         ¦  «        r$d| _         |                      | j        d ¦  «         d S d S )Nc              3   ó,   K  — | ]}|d uo|j         V — Œd S rD   )Údisconnected)Ú.0Úps     r5   ú	<genexpr>z6BaseSubprocessTransport._try_finish.<locals>.<genexpr>ì   sA   è è € ð .ð .Øð ˜ˆ}Ð/ ¤ð .ð .ð .ð .ð .ð .rB   T)r    r   Úallr   rO   rƒ   Ú_call_connection_lostrJ   s    r5   r†   z#BaseSubprocessTransport._try_finishè   sˆ   € Ø”>Ð!Ð!Ð!ØÔÐ#ØˆFÝð .ð .Øœ×*Ò*Ñ,Ô,ð.ñ .ô .ñ .ô .ð 	9à!ˆDŒNØ�JŠJ�tÔ1°4Ñ8Ô8Ð8Ð8Ð8ð	9ð 	9rB   c                 ó–  — 	 | j                              |¦  «         | j        D ]0}|                     ¦   «         s|                     | j        ¦  «         Œ1d | _        d | _        d | _        d | _         d S # | j        D ]0}|                     ¦   «         s|                     | j        ¦  «         Œ1d | _        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×*Ò*¨3Ñ/Ô/Ð/ð Ô,ð 8ð 8�Ø×'Ò'Ñ)Ô)ð 8Ø×%Ò% dÔ&6Ñ7Ô7Ð7øØ!%ˆDÔØˆDŒJØˆDŒJØ!ˆDŒNˆNˆNøð Ô,ð 8ð 8�Ø×'Ò'Ñ)Ô)ð 8Ø×%Ò% dÔ&6Ñ7Ô7Ð7øØ!%ˆDÔØˆDŒJØˆDŒJØ!ˆDŒNÐ!Ð!Ð!Ð!s   ‚A2 Á2A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ð ð ð ð ð
ð ð ð ð  ð  ðð ð ð'ð 'ð 'ð'ð 'ð 'ðð ð ðð ð ð$(ð $(ð $(ðL,ð ,ð ,ðð ð ð@ð @ð @ðð ð ð	ð 	ð 	ð9ð 9ð 9ð"ð "ð "ð "ð "ð "ð "rB   r   c                   ó2   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )rk   c                 ó>   — || _         || _        d | _        d| _        d S )NF)r|   r_   r=   r”   )r-   r|   r_   s      r5   r   z!WriteSubprocessPipeProto.__init__  s%   € ØˆŒ	ØˆŒØˆŒ	Ø!ˆÔÐÐrB   c                 ó   — || _         d S rD   )r=   )r-   Ú	transports     r5   ru   z(WriteSubprocessPipeProto.connection_made  s   € ØˆŒ	ˆ	ˆ	rB   c                 óB   — 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__
  s,   € ØM�4”>Ô*ÐMÐM°´ÐMÐM¸t¼yÐMÐMÐMÐMrB   c                 ób   — d| _         | j                             | j        |¦  «         d | _        d S )NT)r”   r|   r‡   r_   )r-   r€   s     r5   r›   z(WriteSubprocessPipeProto.connection_lost  s/   € Ø ˆÔØŒ	×'Ò'¨¬°Ñ5Ô5Ð5ØˆŒ	ˆ	ˆ	rB   c                 óB   — | j         j                             ¦   «          d S rD   )r|   r   Úpause_writingrJ   s    r5   rª   z&WriteSubprocessPipeProto.pause_writing  s   € ØŒ	Ô×)Ò)Ñ+Ô+Ð+Ð+Ð+rB   c                 óB   — | j         j                             ¦   «          d S 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   ÿ   sq   € € € € € ð"ð "ð "ðð ð ðNð Nð Nðð ð ð
,ð ,ð ,ð-ð -ð -ð -ð -rB   rk   c                   ó   — e Zd Zd„ ZdS )ro   c                 óF   — | j                              | j        |¦  «         d S rD   )r|   rŠ   r_   )r-   r   s     r5   Údata_receivedz%ReadSubprocessPipeProto.data_received  s"   € ØŒ	×%Ò% d¤g¨tÑ4Ô4Ð4Ð4Ð4rB   N)r:   rœ   r�   r¯   r   rB   r5   ro   ro     s#   € € € € € ð5ð 5ð 5ð 5ð 5rB   ro   )r   r   rž   Ú r   r   Úlogr   ÚSubprocessTransportr   ÚBaseProtocolrk   ÚProtocolro   r   rB   r5   ú<module>rµ      sú   ðØ Ð Ð Ð Ø Ð Ð Ð Ø €€€à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ðr"ð r"ð r"ð r"ð r"˜jÔ<ñ r"ô r"ð r"ðj-ð -ð -ð -ð -˜yÔ5ñ -ô -ð -ð45ð 5ð 5ð 5ð 5Ð6Ø'Ô0ñ5ô 5ð 5ð 5ð 5rB   