
    i                        S SK Jr  S SKrS SKJr  S SKJr  S SKJr  S SK	J
r
  S SKJr  S SKJr   " S	 S
5      r S     SS jjrSS jrg)    )annotationsN)cast)Gateway)	ExecModel)HostNotFound)Group)XSpecc                  f    \ rS rSr% S\S'   SS jrSS jrSS jrSS jrSS jr	SS	 jr
SS
 jrSrg)SocketIO   strremoteaddressc                <   Xl         X l        UR                  n UR                  UR                  UR
                  S5        UR                  UR                  UR                  S5        g ! [        [        4 a"    [        R                  R                  S5         g f = f)N      z WARNING: cannot set socketoption)sock	execmodelsocket
setsockoptSOL_IPIP_TOSSOL_TCPTCP_NODELAYAttributeErrorOSErrorsysstderrwrite)selfr   r   r   s       U/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/execnet/gateway_socket.py__init__SocketIO.__init__   sx    	"!!	AOOFMM6==$?OOFNNF,>,>B( 	AJJ?@	As   AA) )/BBc                    Sn[        U5      U:  aI  U R                  R                  U[        U5      -
  5      nU(       d  [        eX#-  n[        U5      U:  a  MI  U$ )z+Read exactly 'bytes' bytes from the socket.    )lenr   recvEOFError)r   numbytesbufts       r    readSocketIO.read   sR    #h!		x#c(23AHC	 #h!
 
r$   c                :    U R                   R                  U5        g N)r   sendall)r   datas     r    r   SocketIO.write%   s    		$r$   c                     U R                   R                  S5        g ! U R                  R                  R                   a     g f = f)Nr   r   shutdownr   r   errorr   s    r    
close_readSocketIO.close_read(   ;    	IIq!~~$$** 		    $AAc                     U R                   R                  S5        g ! U R                  R                  R                   a     g f = f)Nr   r3   r6   s    r    close_writeSocketIO.close_write.   r9   r:   c                    g r.    r6   s    r    waitSocketIO.wait4       r$   c                    g r.   r?   r6   s    r    killSocketIO.kill7   rB   r$   )r   r   N)r   r   returnNone)r(   intrF   bytes)r0   rI   rF   rG   )rF   rG   )__name__
__module____qualname____firstlineno____annotations__r!   r+   r   r7   r<   r@   rD   __static_attributes__r?   r$   r    r   r      s,    	A r$   r   c                    Uc  Su  p#OUu  p#SSK Jn  U R                  U5      nUR                  X#45        [	        SUR                  5       5      u  pgU(       a  US:X  a  SnXg4$ )zNInstantiate a socketserver on the given gateway.

Returns a host, port tuple.
)	localhostr   r   )socketservertuple[str, int]z0.0.0.0rQ   )execnet.scriptrR   remote_execsendr   receive)gatewayhostporthostportrR   channelrealhostrealports           r    	start_viar_   ;   sn     %
d
+ !!,/GLL$/1BCH x9,r$   c                   U R                   c   eU R                  (       a   S5       eU R                  nU(       a  [        X   5      u  pEO(U R                   R	                  S5      u  pF[        U5      nUR                   nUR                  UR                  UR                  5      n[        X5      n	SXE4-  U	l	         UR                  XE45        U	$ ! UR                   R                   a  n
[        5       U
eS n
A
ff = f)Nz7socket: specifying python executables not yet supported:z%s:%d)r   python
installviar_   splitrH   AF_INETSOCK_STREAMr   r   connectgaierrorr   )specgroupr   
gateway_idrZ   r[   port_strr   r   ioes              r    	create_ioro   T   s    ;;"""{{UUU?Ju01
d**3/8}F==););<D	$	"B$-B$d\" I $$ $n!#$s   <C C:*C55C:r.   )rX   r   rY   ztuple[str, int] | NonerF   rS   )ri   r	   rj   r   r   r   rF   r   )
__future__r   r   typingr   execnet.gatewayr   execnet.gateway_baser   execnet.gateway_bootstrapr   execnet.multir   execnet.xspecr	   r   r_   ro   r?   r$   r    <module>rw      sO    " 
  # * 2  + +^ :> 62r$   