
    i^                       % S r SSKJr  SSKrSSKrSSKJr   SSKr\(       a  SSK	J
r
  SSK	Jr  SrSr\(       a/  \" SS	5      r\R                   \R"                  4r\=\l        \l        SS
 jr\" S5        SS jrSS jrSSS jjr\S:X  aK  SSKr\" \R4                  5      S:  a  \R4                  S   rOSrSSK	Jr  \" S5      r\" \\5      r\" \SS9  g\S:X  az  \" 5       S   r S\!S'   \ RD                  R:                  r\ RG                  5       r$\%" \$\&\'45      (       d   e\" \$\5      r(\(RS                  5       r*\ RW                  \*5        \" \(5        gg! \ a    Sr GNHf = f)z
start socket based minimal readline exec server

it can exeuted in 2 modes of operation

1. as normal script, that listens for new connections

2. via existing_gateway.remote_exec (as imported module)

    )annotationsN)TYPE_CHECKING)Channel)	ExecModelzsocket_readline_exec_server-1.2z/tmp/execnet-socket-pyout.logwc                 F    [        SR                  S U  5       5      5        g )N c              3  8   #    U  H  n[        U5      v   M     g 7f)N)str).0args     Z/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/execnet/script/socketserver.py	<genexpr>print_.<locals>.<genexpr>*   s     ,t3s88ts   )printjoin)argss    r   print_r   )   s    	#((,t,
,-    z/def exec_(source, locs):
    exec(source, locs)c                   [        [        SU R                  5       5        U R                  5       u  p[        [        SR                  " U6 5        UR                  S5      n[        S5        UR                  5       R                  5       nUR                  5         X[        S.n[        U5      nU(       a=  [        US-   SS5      n[        [        S	5         [        Xe5        [        [        S
5        g g ! [        [        S
5        f = f)NzEntering Accept loopzgot new connection from {} {}rbzreading line)
clientsockaddress	execmodel
z<socket server>execzcompiled source, executingzfinished executing code)r   prognamegetsocknameacceptformatmakefilereadlinerstripcloser   evalcompileexec_)
serversockr   r   
clientfilesourcegcos          r   exec_from_one_connectionr-   3   s    
8+Z-C-C-EF$++-J
84;;WEF$$T*J
>  "))+F!INA&\FVd]$5v>x56	8"L867  867s   C2 2Dc                   UR                   n[        U [        5      (       a   U R                  S5      u  p4U[	        U5      4n UR                  UR
                  UR                  5      n[        [        S5      (       ax  [        R                  " UR                  5       [        R                  5      n[        R                  " UR                  5       [        R                  U[        R                  -  5        [        R                  S:X  a;  [        R                   S:w  a'  UR#                  UR$                  UR&                  S5        UR)                  U 5        UR+                  S5        U$ )N:
FD_CLOEXECposixcygwin      )socket
isinstancer   splitintAF_INETSOCK_STREAMhasattrfcntlfilenoF_GETFDF_SETFDr0   osnamesysplatform
setsockopt
SOL_SOCKETSO_REUSEADDRbindlisten)hostportr   r5   hostportr(   olds          r   bind_and_listenrM   I   s    F(C  ^^C(
#d)$v~~v/A/ABJul##kk*++-u}}=J%%'e>N>N8NO	ww'cllh6f//1D1DaHOOHar   c                   [         R                  " 5       n   [        U 5        [         R                  " U5        U(       d  OM,  [        S5        U R                  S5        g ! [        [        4 a    e [
         a:  n[        (       a  SS KnUR                  5          S nAN{[        SU5         S nANS nAff = f! [        S5        U R                  S5        f = f)Nr   zgot exceptionzleaving socketserver execloop   )r@   getcwdr-   KeyboardInterrupt
SystemExitBaseExceptiondebug	traceback	print_excr   chdirshutdown)r(   loopexecute_pathexcrU   s        r   startserverr\   \   s    99;L
1(4 HH\"   	./A &z2   15$''))?C001 	./As?   B8 A!  B8 !B5;B0B8 B0+B8 0B55B8 8C__main__r3   z:8888)get_execmodelthreadT)rY   __channelexec__channelr   chan)returnNone)rI   zstr | tuple[str, int]r   r   )F)rY   boolrc   rd   ),__doc__
__future__r   r@   rB   typingr   r<   ImportErrorexecnet.gateway_baser   r   r   rT   openfstdoutstderrrL   r   r   r-   rM   r\   __name__lenargvrI   r^   r   r(   globalsrb   __annotations__gatewayreceivebindnamer6   r   tuplesockr   rK   send r   r   <module>r{      sp  	 # 	 
   ,., 	
,c2A
**cjj
 CCJ. 8,&. z
388}q88A;2h'I 95J
&""Ii(D'(&&I||~Hhe----8Y/DDIIdO #S  Es   E E&%E&