HEX
Server: Apache
System: Linux sh-pro142.hostgator.com.br 5.14.0-162.23.1.9991722448259.nf.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jul 31 18:11:45 UTC 2024 x86_64
User: okform09 (1324)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: //usr/libexec/oracle-cloud-agent/plugins/osms/asyncio/base_subprocess.pyc
a

���d�"�@sxddlZddlZddlZddlmZddlmZddlmZGdd�dej�Z	Gdd	�d	ej
�ZGd
d�deej�Z
dS)�N�)�	protocols)�
transports)�loggercs�eZdZd0�fdd�	Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	e
jfdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Z�ZS)1�BaseSubprocessTransportNc
	s&t��|
�d|_||_||_d|_d|_d|_g|_t	�
�|_i|_d|_
|tjkr`d|jd<|tjkrtd|jd<|tjkr�d|jd<z"|jf||||||d�|��Wn|���Yn0|jj|_|j|jd<|j���rt|ttf�r�|}n|d}t�d||j�|j�|�|	��dS)NFrr�)�args�shell�stdin�stdout�stderr�bufsize�
subprocesszprocess %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�protocolrr	r
rrr
�waiter�extra�kwargs�program��	__class__��//usr/lib64/python3.9/asyncio/base_subprocess.pyrsH






��

�z BaseSubprocessTransport.__init__cCs|jjg}|jr|�d�|jdur6|�d|j���|jdurT|�d|j���n |jdurj|�d�n
|�d�|j�d�}|dur�|�d|j���|j�d�}|j�d	�}|dur�||ur�|�d
|j���n6|dur�|�d|j���|du�r|�d|j���d
�	d�
|��S)N�closedzpid=zreturncode=�runningznot startedrzstdin=rrzstdout=stderr=zstdout=zstderr=z<{}>� )r1�__name__r�appendrrr�get�pipe�format�join)r)�infor
rrr2r2r3�__repr__7s,






z BaseSubprocessTransport.__repr__cKst�dS�N)�NotImplementedError)r)rr	r
rrr
r.r2r2r3rTszBaseSubprocessTransport._startcCs
||_dSr?�r)r)r+r2r2r3�set_protocolWsz$BaseSubprocessTransport.set_protocolcCs|jSr?rA�r)r2r2r3�get_protocolZsz$BaseSubprocessTransport.get_protocolcCs|jSr?)rrCr2r2r3�
is_closing]sz"BaseSubprocessTransport.is_closingcCs�|jr
dSd|_|j��D]}|dur(q|j��q|jdur�|jdur�|j��dur�|j�	�rlt
�d|�z|j��Wnt
y�Yn0dS)NTz$Close running child process: kill %r)rr�valuesr:rrr�pollrr"r�warning�kill�ProcessLookupError)r)�protor2r2r3r`s$
��
zBaseSubprocessTransport.closecCs&|js"|d|��t|d�|��dS)Nzunclosed transport )�source)r�ResourceWarningr)r)�_warnr2r2r3�__del__{szBaseSubprocessTransport.__del__cCs|jSr?)rrCr2r2r3�get_pid�szBaseSubprocessTransport.get_pidcCs|jSr?)rrCr2r2r3�get_returncode�sz&BaseSubprocessTransport.get_returncodecCs||jvr|j|jSdSdSr?)rr:)r)�fdr2r2r3�get_pipe_transport�s
z*BaseSubprocessTransport.get_pipe_transportcCs|jdurt��dSr?)rrJrCr2r2r3�_check_proc�s
z#BaseSubprocessTransport._check_proccCs|��|j�|�dSr?)rTr�send_signal)r)�signalr2r2r3rU�sz#BaseSubprocessTransport.send_signalcCs|��|j��dSr?)rTr�	terminaterCr2r2r3rW�sz!BaseSubprocessTransport.terminatecCs|��|j��dSr?)rTrrIrCr2r2r3rI�szBaseSubprocessTransport.killc	
�srz�j}�j}|jdurB|��fdd�|j�IdH\}}|�jd<|jdurv|��fdd�|j�IdH\}}|�jd<|jdur�|��fdd�|j�IdH\}}|�jd<�jdus�J�|�	�j
j���jD]\}}|j	|g|�R�q�d�_Wn\tt
f�y�Ynbt�yN}z*|du�r:|���s:|�|�WYd}~n(d}~00|du�rn|���sn|�d�dS)Ncs
t�d�S)Nr)�WriteSubprocessPipeProtor2rCr2r3�<lambda>��z8BaseSubprocessTransport._connect_pipes.<locals>.<lambda>rcs
t�d�S)Nr��ReadSubprocessPipeProtor2rCr2r3rY�rZrcs
t�d�S)Nrr[r2rCr2r3rY�rZr)rrr
�connect_write_piperr�connect_read_piperr�	call_soonr�connection_made�
SystemExit�KeyboardInterrupt�
BaseException�	cancelled�
set_exception�
set_result)	r)r,�procr*�_r:�callback�data�excr2rCr3r(�sB

�


�


�

 z&BaseSubprocessTransport._connect_pipescGs4|jdur|j�||f�n|jj|g|�R�dSr?)rr8rr_)r)�cbrjr2r2r3�_call�s
zBaseSubprocessTransport._callcCs|�|jj||�|��dSr?)rmr�pipe_connection_lost�_try_finish)r)rRrkr2r2r3�_pipe_connection_lost�sz-BaseSubprocessTransport._pipe_connection_lostcCs|�|jj||�dSr?)rmr�pipe_data_received)r)rRrjr2r2r3�_pipe_data_received�sz+BaseSubprocessTransport._pipe_data_receivedcCs�|dusJ|��|jdus$J|j��|j��r<t�d||�||_|jjdurV||j_|�|jj	�|�
�|jD]}|��sr|�
|�qrd|_dS)Nz%r exited with return code %r)rrr"rr=r�
returncodermr�process_exitedrorrdrf)r)rsr,r2r2r3�_process_exited�s

z'BaseSubprocessTransport._process_exitedc�s0|jdur|jS|j��}|j�|�|IdHS)zdWait until the process exit and return the process return code.

        This method is a coroutine.N)rr�
create_futurerr8)r)r,r2r2r3�_wait�s


zBaseSubprocessTransport._waitcCsH|jr
J�|jdurdStdd�|j��D��rDd|_|�|jd�dS)Ncss|]}|duo|jVqdSr?)�disconnected)�.0�pr2r2r3�	<genexpr>�s�z6BaseSubprocessTransport._try_finish.<locals>.<genexpr>T)rr�allrrFrm�_call_connection_lostrCr2r2r3ro�s

�z#BaseSubprocessTransport._try_finishcCs<z"|j�|�Wd|_d|_d|_nd|_d|_d|_0dSr?)r�connection_lostrr�r)rkr2r2r3r}�s�z-BaseSubprocessTransport._call_connection_lost)NN)r7�
__module__�__qualname__rr>rrBrDrEr�warnings�warnrOrPrQrSrTrUrWrIr(rmrprrrurwror}�
__classcell__r2r2r0r3r
s0�+&	rc@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)rXcCs||_||_d|_d|_dS)NF)rgrRr:rx)r)rgrRr2r2r3rsz!WriteSubprocessPipeProto.__init__cCs
||_dSr?)r:)r)�	transportr2r2r3r`sz(WriteSubprocessPipeProto.connection_madecCs d|jj�d|j�d|j�d�S)N�<z fd=z pipe=�>)r1r7rRr:rCr2r2r3r>
sz!WriteSubprocessPipeProto.__repr__cCs d|_|j�|j|�d|_dS)NT)rxrgrprRrr2r2r3r~
sz(WriteSubprocessPipeProto.connection_lostcCs|jj��dSr?)rgr�
pause_writingrCr2r2r3r�sz&WriteSubprocessPipeProto.pause_writingcCs|jj��dSr?)rgr�resume_writingrCr2r2r3r�sz'WriteSubprocessPipeProto.resume_writingN)	r7r�r�rr`r>r~r�r�r2r2r2r3rX�srXc@seZdZdd�ZdS)r\cCs|j�|j|�dSr?)rgrrrR)r)rjr2r2r3�
data_receivedsz%ReadSubprocessPipeProto.data_receivedN)r7r�r�r�r2r2r2r3r\sr\)rrr��rr�logr�SubprocessTransportr�BaseProtocolrX�Protocolr\r2r2r2r3�<module>sv�