
    Αi                        S SK Jr  S SKrS SKrS SK Jr  S SKJr  SSKJ	r	   " S S\R                  5      r " S S	\5      r " S
 S5      r\S:X  a/  \" S5      r\R!                  5         S SKr\R$                  " S5        gg)    N)
HTTPServer)Process   )SingleNodeTopologyc                   <    \ rS rSrS rS rS rS rS
S jrS r	Sr
g	)	KVHandler   c                    U R                   R                     0 nU R                   R                  R                  5        H8  u  p#UR	                  U R
                  5      (       d  M'  UR                  SS9X'   M:     U(       a6  U R                  S[        R                  " U5      R                  S5      5        OU R                  S5        S S S 5        g ! , (       d  f       g = f)Nzutf-8)encoding     )serverkv_lockkvitems
startswithpathdecodeoutputjsondumpsencode)selfretkvs       i/var/www/html/banglarbhumi/venv/lib/python3.13/site-packages/paddle/distributed/launch/utils/kv_server.pydo_GETKVHandler.do_GET   s    [[  C,,.<<		**XXwX7CF / CC!7!7!@AC  !  s   A
C%A#C
Cc                 $    U R                  5         g N)do_POSTr   s    r   do_PUTKVHandler.do_PUT$   s        c                 v   [        U R                  S   =(       d    S5      n U R                  R                  U5      nU R                  R
                     X R                  R                  U R                  '   U R                  S5         S S S 5        g ! , (       d  f       g = f!   U R                  S5         g = f)NContent-Lengthr   r   i  )	intheadersrfilereadr   r   r   r   r   )r   content_lengthvalues      r   r"   KVHandler.do_POST'   s    T\\*:;@qA	JJOON3E$$,1tyy)C  %$$	KKs)   1B# 5B	B# 
B B#  B# #B8c                 4   U R                   R                     U R                  U R                   R                  ;   a3  U R                   R                  U R                  	 U R	                  S5        OU R	                  S5        S S S 5        g ! , (       d  f       g = f)Nr   r   )r   r   r   r   r   r#   s    r   	do_DELETEKVHandler.do_DELETE2   s[    [[  yyDKKNN*KKNN499-C C  !  s   A)B		
Bc                     U R                  U5        U R                  S[        U5      5        U R                  SS5        U R                  5         U(       a  U R                  R                  U5        g g )Nr(   zContent-Typezapplication/json; charset=utf8)send_responsesend_headerlenend_headerswfilewrite)r   coder.   s      r   r   KVHandler.output:   s\    4 )3u:6)IJJJU# r&   c                     g r!    )r   formatargss      r   log_messageKVHandler.log_messageB   s    r&   r=   N) )__name__
__module____qualname____firstlineno__r   r$   r"   r1   r   r@   __static_attributes__r=   r&   r   r   r      s     	!	!$r&   r   c                   :   ^  \ rS rSrU 4S jrS rS rS rSrU =r	$ )KVServerF   c                    > [         TU ]  SU4[        5        [        R                  " 5       U l        SS0U l        Xl        SU l        SU l	        S U l
        g )NrB   z/healthys   okF)super__init__r   	threadingLockr   r   portstoppedstarted	node_topo)r   rP   	__class__s     r   rM   KVServer.__init__G   sJ    "dY/ ~~'u%	r&   c                     [         R                  " U R                  S9U l        U R                  R	                  5         SU l        g N)targetT)rN   Threadserve_foreverlisten_threadstartrR   r#   s    r   r\   KVServer.startP   s4    &--T5G5GH  "r&   c                     U R                  5         U R                  R                  5         U R                  5         SU l        g )NT)shutdownr[   joinserver_closerQ   r#   s    r   stopKVServer.stopU   s0    !r&   c                     U R                   c  [        5       U l         U R                   R                  5         U R                   R                  $ r!   )rS   r   detectjson_objectr#   s    r   get_topologyKVServer.get_topology[   s6    >>!/1DN~~)))r&   )r   r   r[   rS   rP   rR   rQ   )
rC   rD   rE   rF   rM   r\   rb   rg   rG   __classcell__)rT   s   @r   rI   rI   F   s    
* *r&   rI   c                   F    \ rS rSrS rS rS r\S 5       r\S 5       r	Sr
g)		PKVServerb   c                 $    [        U5      U l        g r!   )rI   _server)r   rP   s     r   rM   PKVServer.__init__c   s    ~r&   c                     [        U R                  R                  S9U l        SU R                  l        U R                  R                  5         g rW   )r   rn   r\   procdaemonr#   s    r   r\   PKVServer.startf   s2    4<<#5#56					r&   c                 l    U R                   R                  5         U R                  R                  5         g r!   )rn   rb   rq   r`   r#   s    r   rb   PKVServer.stopk   s     		r&   c                 .    U R                   R                  $ r!   )rn   rR   r#   s    r   rR   PKVServer.startedo       ||###r&   c                 .    U R                   R                  $ r!   )rn   rQ   r#   s    r   rQ   PKVServer.stoppeds   rx   r&   )rn   rq   N)rC   rD   rE   rF   rM   r\   rb   propertyrR   rQ   rG   r=   r&   r   rk   rk   b   s9    &
 $ $ $ $r&   rk   __main__i  iX  )http.serverr   SimpleHTTPServerr   rN   r   multiprocessingr   topologyr   SimpleHTTPRequestHandlerr   rI   rk   rC   r   r\   timesleepr=   r&   r   <module>r      st    '   " # (+ 99 +\*z *8$ $, z	$BHHJ 	JJsO r&   