
    x-j                        d dl mZ d dlZd dlZd dl mZ d dlmZ ddlm	Z	  G d dej
                  Z G d d	e          Z G d
 d          Zedk    r5 ed          Ze                                 d dlZ ej        d           dS dS )    N)
HTTPServer)Process   )SingleNodeTopologyc                   4    e Zd Zd Zd Zd Zd Zd	dZd ZdS )
	KVHandlerc                    | j         j        5  i }| j         j                                        D ]8\  }}|                    | j                  r|                    d          ||<   9|r<|                     dt          j	        |          
                    d                     n|                     d           d d d            d S # 1 swxY w Y   d S )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.11/site-packages/paddle/distributed/launch/utils/kv_server.pydo_GETzKVHandler.do_GET   s   [  	! 	!C,,.. 8 81<<	** 8XXwX77CF !CC!7!7!@!@AAAAC   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s   B-CCCc                 .    |                                   d S N)do_POSTr   s    r   do_PUTzKVHandler.do_PUT$   s        c                 L   t          | j        d         pd          }	 | j                            |          }| j        j        5  || j        j        | j        <   |                     d           	 d d d            d S # 1 swxY w Y   d S #  |                     d           Y d S xY w)NContent-Lengthr   r   i  )	intheadersrfilereadr   r   r   r   r   )r   content_lengthvalues      r   r    zKVHandler.do_POST'   s    T\*:;@qAA	JOON33E$  ,1ty)C                    	KKs/   &B	 +A</B	 <B  B	 B B	 	B#c                     | j         j        5  | j        | j         j        v r(| j         j        | j        = |                     d           n|                     d           d d d            d S # 1 swxY w Y   d S )Nr   r   )r   r   r   r   r   r!   s    r   	do_DELETEzKVHandler.do_DELETE2   s    [  	! 	!yDKN**KN49-C    C   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s   AA++A/2A/ c                    |                      |           |                     dt          |                     |                     dd           |                                  |r| j                            |           d S d S )Nr%   zContent-Typezapplication/json; charset=utf8)send_responsesend_headerlenend_headerswfilewrite)r   coder+   s      r   r   zKVHandler.output:   s    4   )3u::666)IJJJ 	$JU#####	$ 	$r#   c                     d S r    )r   formatargss      r   log_messagezKVHandler.log_messageB   s    r#   N)r.   )	__name__
__module____qualname__r   r"   r    r-   r   r;   r8   r#   r   r   r      ss        	! 	! 	!  	 	 	! ! !$ $ $ $    r#   r   c                   0     e Zd Z fdZd Zd Zd Z xZS )KVServerc                     t                                          d|ft                     t          j                    | _        ddi| _        || _        d| _        d| _	        d | _
        d S )Nr.   z/healthys   okF)super__init__r   	threadingLockr   r   portstoppedstarted	node_topo)r   rF   	__class__s     r   rC   zKVServer.__init__G   s\    "dY/// ~''u%	r#   c                     t          j        | j                  | _        | j                                         d| _        d S N)targetT)rD   Threadserve_foreverlisten_threadstartrH   r!   s    r   rQ   zKVServer.startP   s;    &-T5GHHH  """r#   c                     |                                   | j                                         |                                  d| _        d S )NT)shutdownrP   joinserver_closerG   r!   s    r   stopzKVServer.stopU   sA    !!!r#   c                     | j         t                      | _         | j                                          | j         j        S r   )rI   r   detectjson_objectr!   s    r   get_topologyzKVServer.get_topology[   s6    >!/11DN~))r#   )r<   r=   r>   rC   rQ   rV   rZ   __classcell__)rJ   s   @r   r@   r@   F   se              
  * * * * * * *r#   r@   c                   L    e Zd Zd Zd Zd Zed             Zed             ZdS )	PKVServerc                 .    t          |          | _        d S r   )r@   _server)r   rF   s     r   rC   zPKVServer.__init__c   s    ~~r#   c                     t          | j        j                  | _        d| j        _        | j                                         d S rL   )r   r_   rQ   procdaemonr!   s    r   rQ   zPKVServer.startf   s;    4<#5666			r#   c                 j    | j                                          | j                                         d S r   )r_   rV   ra   rT   r!   s    r   rV   zPKVServer.stopk   s.    	r#   c                     | j         j        S r   )r_   rH   r!   s    r   rH   zPKVServer.startedo       |##r#   c                     | j         j        S r   )r_   rG   r!   s    r   rG   zPKVServer.stoppeds   re   r#   N)	r<   r=   r>   rC   rQ   rV   propertyrH   rG   r8   r#   r   r]   r]   b   sw        & & &  
   $ $ X$ $ $ X$ $ $r#   r]   __main__i  iX  )http.serverr   SimpleHTTPServerr   rD   r   multiprocessingr   topologyr   SimpleHTTPRequestHandlerr   r@   r]   r<   r   rQ   timesleepr8   r#   r   <module>rp      s2   ' & & & & &      " " " " " " # # # # # # ( ( ( ( ( (+ + + + + 9 + + +\* * * * *z * * *8$ $ $ $ $ $ $ $, z	$BHHJJJKKK DJsOOOOO r#   