
    i
                       S r SSKJr  SSKrSSKrSSKrSSKJr  SSKJr  SSK	J
r
  \R                  R                  \R                  R                  \R                  5      5      r " S S	\5      rSS
 jrSS jrSS jrSS jrSS jrg)zGCode to initialize the remote side of a gateway once the IO is created.    )annotationsN   )gateway_base)IO)XSpecc                      \ rS rSrSrg)HostNotFound    N)__name__
__module____qualname____firstlineno____static_attributes__r       X/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/execnet/gateway_bootstrap.pyr	   r	      s    r   r	   c                    [        U SS[        -  S[        -  SSSSUR                  -  SUR                  -  5	        U R	                  S	5      nUS
:X  d   [        U5      5       eg )Nz
import syszif %r not in sys.path:z    sys.path.insert(0, %r)zDfrom execnet.gateway_base import serve, init_popen_io, get_execmodelzsys.stdout.write('1')zsys.stdout.flush()execmodel = get_execmodel(%r)z/serve(init_popen_io(execmodel), id='%s-worker')r      1)sendexec	importdir	execmodelidreadrepr)iospecss      r   bootstrap_importr      sg     
 9,$y0N'$..89DGGC
 	
A9d1g9r   c           	     Z    [        U [        R                  " [        5      SUR                  -  SSSUR
                  -  5        U R                  S5      nUS:X  d   eg ! [         aB    U R                  5       nUS:X  a)  [        U S5      (       a  [        U R                  5      S e g  g f = f)	Nr   zio = init_popen_io(execmodel)io.write('1'.encode('ascii'))serve(io, id='%s-worker')r   r      remoteaddress)r   inspect	getsourcer   r   r   r   EOFErrorwaithasattrr	   r$   )r   r   r   rets       r   bootstrap_execr+   (   s    ;l++dnn<++'$''1	
 GGAJDyy ;ggi#:'"o66r//0d: 7:;s   AA AB*)B*c                    SSK Jn  [        U [        R                  " [
        5      S[        R                  " U5      SSSSSS	U-  5
        U R                  S
5      nUS:X  d   eg )Nr   )SocketIOzimport socketztry: execmodelzexcept NameError:z&   execmodel = get_execmodel('thread')z$io = SocketIO(clientsock, execmodel)r!   r"   r   r   )execnet.gateway_socketr-   r   r%   r&   r   r   )r   r   r-   r   s       r   bootstrap_socketr/   :   sa    /
,'(#0.'#b( 	
A99r   c                ~    SR                  U5      nU R                  [        U5      S-   R                  S5      5        g )N
zutf-8)joinwriter   encode)r   sourcessources      r   r   r   N   s0    YYwFHHd6lT!))'23r   c                t   UR                   (       a:  UR                  (       d  UR                  (       a  [        X5        Ob[	        X5        OVUR
                  (       d  UR                  (       a  [        X5        O(UR                  (       a  [        X5        O[        S5      e[        R                  " X5      nU$ )Nz%unknown gateway type, can't bootstrap)popenviapythonr+   r   sshvagrant_sshsocketr/   
ValueErrorexecnetGateway)r   r   gws      r   	bootstraprB   S   sk    zz88t{{2$R&	T%%r 	"@AA		"BIr   )r   r   r   r   returnNone)r   r   rC   rD   )r   r   r5   strrC   rD   )r   r   r   r   rC   zexecnet.Gateway)__doc__
__future__r   r%   osr?    r   r   xspecr   pathdirname__file__r   	Exceptionr	   r   r+   r/   r   rB   r   r   r   <module>rO      sg    M "  	    GGOOBGGOOG,<,<=>		9 	&;$(4
r   