Ë
    è×ïi7  ã                   ón  — d dgZ ddl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 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e
ddddej(                  fd„«       Ze
ddddej(                  dœd„«       Zy)Úcreate_subprocess_execÚcreate_subprocess_shellé    Né   )Úevents)Úfutures)Ú	protocols)Ústreams)Útasks)Ú	coroutine)Úloggerc                   ó@   ‡ — e Zd ZdZˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	ˆ xZ
S )ÚSubprocessStreamProtocolz0Like StreamReaderProtocol, but for a subprocess.c                 ól   •— t         ‰| �  |¬«       || _        d x| _        x| _        | _        d | _        y )N©Úloop)ÚsuperÚ__init__Ú_limitÚstdinÚstdoutÚstderrÚ
_transport)ÚselfÚlimitr   Ú	__class__s      €úL/var/www/html/aiagents/fe/lib/python3.12/site-packages/asyncio/subprocess.pyr   z!SubprocessStreamProtocol.__init__   s6   ø€ Ü‰Ñ˜dÐÔ#ØˆŒØ15Ð5ˆŒ
Ð5�T”[ 4¤;Øˆ�ó    c                 óT  — | j                   j                  g}| j                  �|j                  d| j                  z  «       | j                  �|j                  d| j                  z  «       | j
                  �|j                  d| j
                  z  «       ddj                  |«      z  S )Nzstdin=%rz	stdout=%rz	stderr=%rz<%s>ú )r   Ú__name__r   Úappendr   r   Újoin)r   Úinfos     r   Ú__repr__z!SubprocessStreamProtocol.__repr__   s„   € Ø—‘×'Ñ'Ð(ˆØ�:‰:Ð!Ø�K‰K˜
 T§Z¡ZÑ/Ô0Ø�;‰;Ð"Ø�K‰K˜ d§k¡kÑ1Ô2Ø�;‰;Ð"Ø�K‰K˜ d§k¡kÑ1Ô2Ø˜Ÿ™ ›Ñ&Ð&r   c                 ó  — || _         |j                  d«      }|�Kt        j                  | j                  | j
                  ¬«      | _        | j                  j                  |«       |j                  d«      }|�Kt        j                  | j                  | j
                  ¬«      | _        | j                  j                  |«       |j                  d«      }|�)t        j                  || d | j
                  ¬«      | _
        y y )Nr   ©r   r   é   r   )ÚprotocolÚreaderr   )r   Úget_pipe_transportr	   ÚStreamReaderr   Ú_loopr   Úset_transportr   ÚStreamWriterr   )r   Ú	transportÚstdout_transportÚstderr_transportÚstdin_transports        r   Úconnection_madez(SubprocessStreamProtocol.connection_made(   sÙ   € Ø#ˆŒà$×7Ñ7¸Ó:ÐØÐ'Ü!×.Ñ.°T·[±[Ø48·J±Jô@ˆDŒKà�K‰K×%Ñ%Ð&6Ô7à$×7Ñ7¸Ó:ÐØÐ'Ü!×.Ñ.°T·[±[Ø48·J±Jô@ˆDŒKà�K‰K×%Ñ%Ð&6Ô7à#×6Ñ6°qÓ9ˆØÐ&Ü ×-Ñ-¨oØ7;Ø59Ø37·:±:ô?ˆD�Jð 'r   c                 óx   — |dk(  r| j                   }n|dk(  r| j                  }nd }|�|j                  |«       y y )Nr   r'   )r   r   Ú	feed_data)r   ÚfdÚdatar)   s       r   Úpipe_data_receivedz+SubprocessStreamProtocol.pipe_data_received>   s@   € Ø�Š7Ø—[‘[‰FØ�1ŠWØ—[‘[‰FàˆFØÐØ×Ñ˜TÕ"ð r   c                 ó  — |dk(  r0| j                   }|�|j                  «        | j                  |«       y |dk(  r| j                  }n|dk(  r| j                  }nd }|d k7  r%|€|j                  «        y |j                  |«       y y )Nr   r   r'   )r   ÚcloseÚconnection_lostr   r   Úfeed_eofÚset_exception)r   r6   ÚexcÚpiper)   s        r   Úpipe_connection_lostz-SubprocessStreamProtocol.pipe_connection_lostH   s€   € Ø�Š7Ø—:‘:ˆDØÐØ—
‘
”Ø× Ñ  Ô%ØØ�Š7Ø—[‘[‰FØ�1ŠWØ—[‘[‰FàˆFØ�TŠ>Øˆ{Ø—‘Õ!à×$Ñ$ SÕ)ð	 r   c                 óF   — | j                   j                  «        d | _         y ©N)r   r:   ©r   s    r   Úprocess_exitedz'SubprocessStreamProtocol.process_exited[   s   € Ø�‰×ÑÔØˆ�r   )r    Ú
__module__Ú__qualname__Ú__doc__r   r$   r3   r8   r@   rD   Ú__classcell__)r   s   @r   r   r      s$   ø„ á:ôò'ò?ò,#ò*ö&r   r   c                   óŒ   — e Zd Zd„ Zd„ Zed„ «       Zed„ «       Zd„ Z	d„ Z
d„ Zed„ «       Zed	„ «       Zed
„ «       Zedd„«       Zy)ÚProcessc                 ó¾   — || _         || _        || _        |j                  | _        |j                  | _        |j
                  | _        |j                  «       | _        y rB   )r   Ú	_protocolr,   r   r   r   Úget_pidÚpid)r   r/   r(   r   s       r   r   zProcess.__init__a   sH   € Ø#ˆŒØ!ˆŒØˆŒ
Ø—^‘^ˆŒ
Ø—o‘oˆŒØ—o‘oˆŒØ×$Ñ$Ó&ˆ�r   c                 óP   — d| j                   j                  ›d| j                  ›d�S )Nú<r   ú>)r   r    rN   rC   s    r   r$   zProcess.__repr__j   s   � Ø ŸN™N×3Ó3°T·X³XÐ>Ð>r   c                 ó6   — | j                   j                  «       S rB   )r   Úget_returncoderC   s    r   Ú
returncodezProcess.returncodem   s   € à�‰×-Ñ-Ó/Ð/r   c              #   óR   K  — | j                   j                  «       E d{  –—† S 7 Œ­w)zdWait until the process exit and return the process return code.

        This method is a coroutine.N)r   Ú_waitrC   s    r   ÚwaitzProcess.waitq   s!   è ø€ ð
  Ÿ?™?×0Ñ0Ó2×2Ð3Ð2ús   ‚' %¡'c                 ó:   — | j                   j                  |«       y rB   )r   Úsend_signal)r   Úsignals     r   rY   zProcess.send_signalx   s   € Ø�‰×#Ñ# FÕ+r   c                 ó8   — | j                   j                  «        y rB   )r   Ú	terminaterC   s    r   r\   zProcess.terminate{   s   € Ø�‰×!Ñ!Õ#r   c                 ó8   — | j                   j                  «        y rB   )r   ÚkillrC   s    r   r^   zProcess.kill~   s   € Ø�‰×ÑÕr   c              #   óÒ  K  — | j                   j                  «       }| j                  j                  |«       |r t	        j
                  d| t        |«      «       	 | j                  j                  «       E d {  –—†  |rt	        j
                  d| «       | j                  j                  «        y 7 Œ7# t        t        f$ r#}|rt	        j
                  d| |«       Y d }~Œbd }~ww xY w­w)Nz%%r communicate: feed stdin (%s bytes)z%r communicate: stdin got %rz%r communicate: close stdin)r,   Ú	get_debugr   Úwriter   ÚdebugÚlenÚdrainÚBrokenPipeErrorÚConnectionResetErrorr:   )r   Úinputrb   r>   s       r   Ú_feed_stdinzProcess._feed_stdin�   s¶   è ø€ à—
‘
×$Ñ$Ó&ˆØ�
‰
×Ñ˜ÔÙÜ�L‰LÐ@Øœc %›jô*ð	HØ—z‘z×'Ñ'Ó)×)Ð)ñ Ü�L‰LÐ6¸Ô=Ø�
‰
×ÑÕð *ùÜÔ!5Ð6ò 	HáÜ—‘Ð;¸TÀ3ÔGÿøð	HüsB   ‚AC'ÁB2 Á8B0Á9B2 Á=3C'Â0B2 Â2C$ÃCÃC'ÃC$Ã$C'c                  ó   — y rB   © rC   s    r   Ú_noopzProcess._noop“   s   € àr   c              #   óÊ  K  — | j                   j                  |«      }|dk(  r| j                  }n|dk(  sJ ‚| j                  }| j                  j                  «       r |dk(  rdnd}t        j                  d| |«       |j                  «       E d {  –—† }| j                  j                  «       r |dk(  rdnd}t        j                  d| |«       |j                  «        |S 7 ŒP­w)Nr'   r   r   r   z%r communicate: read %sz%r communicate: close %s)
r   r*   r   r   r,   r`   r   rb   Úreadr:   )r   r6   r/   ÚstreamÚnameÚoutputs         r   Ú_read_streamzProcess._read_stream—   s¼   è ø€ à—O‘O×6Ñ6°rÓ:ˆ	Ø�Š7Ø—[‘[‰Fà˜’7ˆN�7Ø—[‘[ˆFØ�:‰:×ÑÔ!Ø! Qšw‘8¨HˆDÜ�L‰LÐ2°D¸$Ô?Ø"ŸK™K›M×)ˆØ�:‰:×ÑÔ!Ø! Qšw‘8¨HˆDÜ�L‰LÐ3°T¸4Ô@Ø�‰ÔØˆð *ús   ‚BC#ÂC!ÂAC#Nc              #   ó¨  K  — |r| j                  |«      }n| j                  «       }| j                  �| j                  d«      }n| j                  «       }| j                  �| j                  d«      }n| j                  «       }t        j                  |||| j                  ¬«      E d {  –—† \  }}}| j                  «       E d {  –—†  ||fS 7 Œ$7 Œ
­w)Nr   r'   r   )	rh   rk   r   rq   r   r
   Úgatherr,   rW   )r   rg   r   r   r   s        r   ÚcommunicatezProcess.communicate©   s»   è ø€ áØ×$Ñ$ UÓ+‰Eà—J‘J“LˆEØ�;‰;Ð"Ø×&Ñ& qÓ)‰Fà—Z‘Z“\ˆFØ�;‰;Ð"Ø×&Ñ& qÓ)‰Fà—Z‘Z“\ˆFÜ+0¯<©<¸¸vÀvØ=A¿Z¹Zô,I÷ !IÑˆˆv�và—9‘9“;×ÐØ˜ÐÐð!Iøàús$   ‚B'CÂ)CÂ*CÃCÃ	CÃCrB   )r    rE   rF   r   r$   ÚpropertyrT   r   rW   rY   r\   r^   rh   rk   rq   rt   rj   r   r   rJ   rJ   `   s“   „ ò'ò?ð ñ0ó ð0ð ñ4ó ð4ò,ò$òð ñó ðð" ñó ðð ñó ðð" ò ó ñ r   rJ   c              +   óª   ‡‡K  — ‰€t        j                  «       Šˆˆfd„} ‰j                  || f|||dœ|¤ŽE d {  –—† \  }}	t        ||	‰«      S 7 Œ­w)Nc                  ó   •— t        ‰ ‰¬«      S ©Nr&   ©r   r&   s   €€r   ú<lambda>z)create_subprocess_shell.<locals>.<lambda>Â   ó   ø€ Ô7¸eØ=Aô C€ r   ©r   r   r   )r   Úget_event_loopÚsubprocess_shellrJ   )
Úcmdr   r   r   r   r   ÚkwdsÚprotocol_factoryr/   r(   s
       ``    r   r   r   ½   sz   ùè ø€ ð €|Ü×$Ñ$Ó&ˆôCÐà%: T×%:Ñ%:Ø,<Ø,/ð&Cà7<ÀVØ39ñ&Cð >Bñ&C÷ CÑ€Iˆxô �9˜h¨Ó-Ð-ð	Cús   „8A¼A½A)r   r   r   r   r   c             /   ó°   ‡‡K  — ‰€t        j                  «       Šˆˆfd„} ‰j                  || g|¢­|||dœ|¤ŽE d {  –—† \  }	}
t        |	|
‰«      S 7 Œ­w)Nc                  ó   •— t        ‰ ‰¬«      S rx   ry   r&   s   €€r   rz   z(create_subprocess_exec.<locals>.<lambda>Ð   r{   r   r|   )r   r}   Úsubprocess_execrJ   )Úprogramr   r   r   r   r   Úargsr€   r�   r/   r(   s       ``     r   r   r   Ê   s…   ùè ø€ ð €|Ü×$Ñ$Ó&ˆôCÐà%9 T×%9Ñ%9Ø,<Ø,3ð&Cà6:ñ&Cð 38ÀØ39ñ	&Cð >Bñ	&C÷ CÑ€Iˆxô
 �9˜h¨Ó-Ð-ðCús   „;A¿AÁ A)Ú__all__ÚcollectionsÚ
subprocessÚ r   r   r   r	   r
   Ú
coroutinesr   Úlogr   ÚPIPEÚSTDOUTÚDEVNULLÚFlowControlMixinÚSubprocessProtocolr   rJ   Ú_DEFAULT_LIMITr   r   rj   r   r   ú<module>r“      sÄ   ðØ#Ð%>Ð
?€ã Û å Ý Ý Ý Ý Ý !Ý ð ‡�€Ø	×	Ñ	€Ø
×
Ñ
€ôI˜w×7Ñ7Ø(×;Ñ;ôI÷XZ ñ Z ðz Ø'+°DÀØ!%¨W×-CÑ-Cò
.ó ð
.ð Ø15¸dØ"&¨TØ!(×!7Ñ!7ó.ó ñ.r   