§
    ’dîi  ã                   óú   — d Z ddlZddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ej	        Z	ej
        Z
ej        Z G d	„ d
ej        ej        ¦  «        Z G d„ d¦  «        Zdddej        fd„Zdddej        dœd„ZdS ))Úcreate_subprocess_execÚcreate_subprocess_shellé    Né   )Úevents)Ú	protocols)Ústreams)Útasks)Úloggerc                   óL   ‡ — e Zd ZdZˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zˆ xZS )
ÚSubprocessStreamProtocolz0Like StreamReaderProtocol, but for a subprocess.c                 óê   •— t          ¦   «                              |¬¦  «         || _        d x| _        x| _        | _        d | _        d| _        g | _        | j	         
                    ¦   «         | _        d S )N)ÚloopF)ÚsuperÚ__init__Ú_limitÚstdinÚstdoutÚstderrÚ
_transportÚ_process_exitedÚ	_pipe_fdsÚ_loopÚcreate_futureÚ_stdin_closed)ÚselfÚlimitr   Ú	__class__s      €úg/home/div/.local/share/uv/python/cpython-3.11.15-linux-aarch64-gnu/lib/python3.11/asyncio/subprocess.pyr   z!SubprocessStreamProtocol.__init__   sl   ø€ Ý‰Œ×Ò˜dÐÑ#Ô#Ð#ØˆŒØ15Ð5ˆŒ
Ð5�T”[ 4¤;ØˆŒØ$ˆÔØˆŒØ!œZ×5Ò5Ñ7Ô7ˆÔÐÐó    c                 óD  — | j         j        g}| j        �|                     d| j        ›�¦  «         | j        �|                     d| j        ›�¦  «         | j        �|                     d| j        ›�¦  «         d                     d                     |¦  «        ¦  «        S )Nzstdin=zstdout=zstderr=z<{}>Ú )r   Ú__name__r   Úappendr   r   ÚformatÚjoin)r   Úinfos     r   Ú__repr__z!SubprocessStreamProtocol.__repr__   sš   € Ø”Ô'Ð(ˆØŒ:Ð!Ø�KŠKÐ/ ¤Ð/Ð/Ñ0Ô0Ð0ØŒ;Ð"Ø�KŠKÐ1 $¤+Ð1Ð1Ñ2Ô2Ð2ØŒ;Ð"Ø�KŠKÐ1 $¤+Ð1Ð1Ñ2Ô2Ð2Ø�}Š}˜SŸXšX d™^œ^Ñ,Ô,Ð,r   c                 óJ  — || _         |                     d¦  «        }|�Yt          j        | j        | j        ¬¦  «        | _        | j                             |¦  «         | j         	                    d¦  «         |                     d¦  «        }|�Yt          j        | j        | j        ¬¦  «        | _
        | j
                             |¦  «         | j         	                    d¦  «         |                     d¦  «        }|�$t          j        || d | j        ¬¦  «        | _        d S d S )Nr   ©r   r   é   r   )ÚprotocolÚreaderr   )r   Úget_pipe_transportr   ÚStreamReaderr   r   r   Úset_transportr   r#   r   ÚStreamWriterr   )r   Ú	transportÚstdout_transportÚstderr_transportÚstdin_transports        r   Úconnection_madez(SubprocessStreamProtocol.connection_made(   s,  € Ø#ˆŒà$×7Ò7¸Ñ:Ô:ÐØÐ'Ý!Ô.°T´[Ø48´Jð@ñ @ô @ˆDŒKàŒK×%Ò%Ð&6Ñ7Ô7Ð7ØŒN×!Ò! !Ñ$Ô$Ð$à$×7Ò7¸Ñ:Ô:ÐØÐ'Ý!Ô.°T´[Ø48´Jð@ñ @ô @ˆDŒKàŒK×%Ò%Ð&6Ñ7Ô7Ð7ØŒN×!Ò! !Ñ$Ô$Ð$à#×6Ò6°qÑ9Ô9ˆØÐ&Ý Ô-¨oØ7;Ø59Ø37´:ð?ñ ?ô ?ˆDŒJˆJˆJð 'Ð&r   c                 ót   — |dk    r| j         }n|dk    r| j        }nd }|�|                     |¦  «         d S d S ©Nr   r*   )r   r   Ú	feed_data)r   ÚfdÚdatar,   s       r   Úpipe_data_receivedz+SubprocessStreamProtocol.pipe_data_received@   sS   € Ø�Š7ˆ7Ø”[ˆFˆFØ�1ŠWˆWØ”[ˆFˆFàˆFØÐØ×Ò˜TÑ"Ô"Ð"Ð"Ð"ð Ðr   c                 ó  — |dk    rw| j         }|�|                     ¦   «          |                      |¦  «         |€| j                             d ¦  «         n&| j                             |¦  «         d| j        _        d S |dk    r| j        }n|dk    r| j        }nd }|�,|€| 	                    ¦   «          n|                     |¦  «         || j
        v r| j
                             |¦  «         |                      ¦   «          d S )Nr   Fr   r*   )r   ÚcloseÚconnection_lostr   Ú
set_resultÚset_exceptionÚ_log_tracebackr   r   Úfeed_eofr   ÚremoveÚ_maybe_close_transport)r   r9   ÚexcÚpiper,   s        r   Úpipe_connection_lostz-SubprocessStreamProtocol.pipe_connection_lostJ   s  € Ø�Š7ˆ7Ø”:ˆDØÐØ—
’
‘”�Ø× Ò  Ñ%Ô%Ð%Øˆ{ØÔ"×-Ò-¨dÑ3Ô3Ð3Ð3àÔ"×0Ò0°Ñ5Ô5Ð5ð 5:�Ô"Ô1ØˆFØ�Š7ˆ7Ø”[ˆFˆFØ�1ŠWˆWØ”[ˆFˆFàˆFØÐØˆ{Ø—’Ñ!Ô!Ð!Ð!à×$Ò$ SÑ)Ô)Ð)à�”ÐÐØŒN×!Ò! "Ñ%Ô%Ð%Ø×#Ò#Ñ%Ô%Ð%Ð%Ð%r   c                 ó<   — d| _         |                      ¦   «          d S )NT)r   rD   ©r   s    r   Úprocess_exitedz'SubprocessStreamProtocol.process_exitedh   s"   € Ø#ˆÔØ×#Ò#Ñ%Ô%Ð%Ð%Ð%r   c                 óŒ   — t          | j        ¦  «        dk    r)| j        r$| j                             ¦   «          d | _        d S d S d S )Nr   )Úlenr   r   r   r=   rI   s    r   rD   z/SubprocessStreamProtocol._maybe_close_transportl   sL   € ÝˆtŒ~ÑÔ !Ò#Ð#¨Ô(<Ð#ØŒO×!Ò!Ñ#Ô#Ð#Ø"ˆDŒOˆOˆOð $Ð#Ð#Ð#r   c                 ó&   — || j         u r| j        S d S ©N)r   r   )r   Ústreams     r   Ú_get_close_waiterz*SubprocessStreamProtocol._get_close_waiterq   s    € Ø�T”ZÐÐØÔ%Ð%ð  Ðr   )r"   Ú
__module__Ú__qualname__Ú__doc__r   r'   r5   r;   rG   rJ   rD   rP   Ú__classcell__)r   s   @r   r   r      s§   ø€ € € € € à:Ð:ð8ð 8ð 8ð 8ð 8ð-ð -ð -ð?ð ?ð ?ð0#ð #ð #ð&ð &ð &ð<&ð &ð &ð#ð #ð #ð
&ð &ð &ð &ð &ð &ð &r   r   c                   ób   — e Zd Zd„ Zd„ Zed„ ¦   «         Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zdd„ZdS )ÚProcessc                 óª   — || _         || _        || _        |j        | _        |j        | _        |j        | _        |                     ¦   «         | _        d S rN   )r   Ú	_protocolr   r   r   r   Úget_pidÚpid)r   r1   r+   r   s       r   r   zProcess.__init__w   sI   € Ø#ˆŒØ!ˆŒØˆŒ
Ø”^ˆŒ
Ø”oˆŒØ”oˆŒØ×$Ò$Ñ&Ô&ˆŒˆˆr   c                 ó2   — d| j         j        › d| j        › d�S )NÚ<r!   Ú>)r   r"   rZ   rI   s    r   r'   zProcess.__repr__€   s"   € Ø8�4”>Ô*Ð8Ð8¨T¬XÐ8Ð8Ð8Ð8r   c                 ó4   — | j                              ¦   «         S rN   )r   Úget_returncoderI   s    r   Ú
returncodezProcess.returncodeƒ   s   € àŒ×-Ò-Ñ/Ô/Ð/r   c              ƒ   óD   K  — | j                              ¦   «         ƒ d{V —†S )z?Wait until the process exit and return the process return code.N)r   Ú_waitrI   s    r   ÚwaitzProcess.wait‡   s,   è è € à”_×*Ò*Ñ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,r   c                 ó:   — | j                              |¦  «         d S rN   )r   Úsend_signal)r   Úsignals     r   re   zProcess.send_signal‹   s   € ØŒ×#Ò# FÑ+Ô+Ð+Ð+Ð+r   c                 ó8   — | j                              ¦   «          d S rN   )r   Ú	terminaterI   s    r   rh   zProcess.terminateŽ   s   € ØŒ×!Ò!Ñ#Ô#Ð#Ð#Ð#r   c                 ó8   — | j                              ¦   «          d S rN   )r   ÚkillrI   s    r   rj   zProcess.kill‘   s   € ØŒ×ÒÑÔÐÐÐr   c              ƒ   óÈ  K  — | j                              ¦   «         }	 | j                             |¦  «         |r#t	          j        d| t          |¦  «        ¦  «         | j                             ¦   «         ƒ d {V —† n6# t          t          f$ r"}|rt	          j        d| |¦  «         Y d }~nd }~ww xY w|rt	          j        d| ¦  «         | j         
                    ¦   «          d S )Nz%%r communicate: feed stdin (%s bytes)z%r communicate: stdin got %rz%r communicate: close stdin)r   Ú	get_debugr   Úwriter
   ÚdebugrL   ÚdrainÚBrokenPipeErrorÚConnectionResetErrorr=   )r   Úinputrn   rE   s       r   Ú_feed_stdinzProcess._feed_stdin”   s  è è € Ø”
×$Ò$Ñ&Ô&ˆð	HØŒJ×Ò˜UÑ#Ô#Ð#Øð OÝ”Ø;¸TÅ3ÀuÁ:Ä:ñOô Oð Oð ”*×"Ò"Ñ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$øÝÕ!5Ð6ð 	Hð 	Hð 	Hð ð HÝ”Ð;¸TÀ3ÑGÔGÐGøøøøøøøøøð		Høøøð ð 	>ÝŒLÐ6¸Ñ=Ô=Ð=ØŒ
×ÒÑÔÐÐÐs   �AA< Á<B/ÂB*Â*B/c              ƒ   ó
   K  — d S rN   © rI   s    r   Ú_noopzProcess._noop§   s   è è € Øˆtr   c              ƒ   ó¸  K  — | j                              |¦  «        }|dk    r| j        }n|dk    sJ ‚| j        }| j                             ¦   «         r |dk    rdnd}t          j        d| |¦  «         |                     ¦   «         ƒ d {V —†}| j                             ¦   «         r |dk    rdnd}t          j        d| |¦  «         | 	                    ¦   «          |S )Nr*   r   r   r   z%r communicate: read %sz%r communicate: close %s)
r   r-   r   r   r   rl   r
   rn   Úreadr=   )r   r9   r1   rO   ÚnameÚoutputs         r   Ú_read_streamzProcess._read_streamª   sï   è è € Ø”O×6Ò6°rÑ:Ô:ˆ	Ø�Š7ˆ7Ø”[ˆFˆFà˜’7�7�7�7Ø”[ˆFØŒ:×ÒÑ!Ô!ð 	@Ø! Qšw˜w�8�8¨HˆDÝŒLÐ2°D¸$Ñ?Ô?Ð?Ø—{’{‘}”}Ð$Ð$Ð$Ð$Ð$Ð$ˆØŒ:×ÒÑ!Ô!ð 	AØ! Qšw˜w�8�8¨HˆDÝŒLÐ3°T¸4Ñ@Ô@Ð@Ø�ŠÑÔÐØˆr   Nc              ƒ   óž  K  — |�|                       |¦  «        }n|                      ¦   «         }| j        �|                      d¦  «        }n|                      ¦   «         }| j        �|                      d¦  «        }n|                      ¦   «         }t          j        |||¦  «        ƒ d {V —†\  }}}|                      ¦   «         ƒ d {V —† ||fS r7   )rs   rv   r   r{   r   r	   Úgatherrc   )r   rr   r   r   r   s        r   ÚcommunicatezProcess.communicate»   sÙ   è è € ØÐØ×$Ò$ UÑ+Ô+ˆEˆEà—J’J‘L”LˆEØŒ;Ð"Ø×&Ò& qÑ)Ô)ˆFˆFà—Z’Z‘\”\ˆFØŒ;Ð"Ø×&Ò& qÑ)Ô)ˆFˆFà—Z’Z‘\”\ˆFÝ&+¤l°5¸&À&Ñ&IÔ&IÐ IÐ IÐ IÐ IÐ IÐ IÑˆˆv�vØ�iŠi‰kŒkÐÐÐÐÐÐÐØ˜ÐÐr   rN   )r"   rQ   rR   r   r'   Úpropertyr`   rc   re   rh   rj   rs   rv   r{   r~   ru   r   r   rV   rV   v   sÊ   € € € € € ð'ð 'ð 'ð9ð 9ð 9ð ð0ð 0ñ „Xð0ð-ð -ð -ð,ð ,ð ,ð$ð $ð $ðð ð ðð ð ð&ð ð ðð ð ð" ð  ð  ð  ð  ð  r   rV   c              ‹   ó–   ‡‡	K  — t          j        ¦   «         Š	ˆˆ	fd„} ‰	j        || f|||dœ|¤Žƒ d {V —†\  }}t          ||‰	¦  «        S )Nc                  ó&   •— t          ‰ ‰¬¦  «        S ©Nr)   ©r   r)   s   €€r   ú<lambda>z)create_subprocess_shell.<locals>.<lambda>Ð   ó   ø€ Õ7¸eØ=Að Cñ  Cô  C€ r   ©r   r   r   )r   Úget_running_loopÚsubprocess_shellrV   )
Úcmdr   r   r   r   ÚkwdsÚprotocol_factoryr1   r+   r   s
       `    @r   r   r   Í   s¤   øøè è € åÔ"Ñ$Ô$€DðCð Cð Cð Cð CÐà 5 Ô 5ØØð!à Øð!ð !ð ð!ð !ð ð ð ð ð ð Ñ€Iˆxõ �9˜h¨Ñ-Ô-Ð-r   )r   r   r   r   c             �   óœ   ‡‡
K  — t          j        ¦   «         Š
ˆˆ
fd„} ‰
j        || g|¢R |||dœ|¤Žƒ d {V —†\  }}	t          ||	‰
¦  «        S )Nc                  ó&   •— t          ‰ ‰¬¦  «        S r‚   rƒ   r)   s   €€r   r„   z(create_subprocess_exec.<locals>.<lambda>Ý   r…   r   r†   )r   r‡   Úsubprocess_execrV   )Úprogramr   r   r   r   ÚargsrŠ   r‹   r1   r+   r   s       `     @r   r   r   Ù   sµ   øøè è € õ Ô"Ñ$Ô$€DðCð Cð Cð Cð CÐà 4 Ô 4ØØð!àð!ð !ð ˜FØð	!ð !ð ð	!ð !ð ð ð ð ð ð Ñ€Iˆxõ
 �9˜h¨Ñ-Ô-Ð-r   )Ú__all__Ú
subprocessÚ r   r   r   r	   Úlogr
   ÚPIPEÚSTDOUTÚDEVNULLÚFlowControlMixinÚSubprocessProtocolr   rV   Ú_DEFAULT_LIMITr   r   ru   r   r   ú<module>r›      sK  ðØ
=€à Ð Ð Ð à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ð „€Ø	Ô	€Ø
Ô
€ðb&ð b&ð b&ð b&ð b&˜wÔ7Ø(Ô;ñb&ô b&ð b&ðJT ð T ð T ð T ð T ñ T ô T ð T ðn .2¸$ÀtØ(/Ô(>ð	.ð 	.ð 	.ð 	.ð 8<ÀDØ(,°GÔ4Jð.ð .ð .ð .ð .ð .ð .r   