o
    * i                     @   s  d dl Z d dlZG dd dZedkre jddZejdedd	 ejd
edd	 ejdedd	 ejdedd	 e Z	e	j
pDedZe	jpLedZee	jdd  p^eedd ZeeeZe	jdkrnee e	jdkrwe  ede	j d e  dS dS )    Nc                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )Commandc                 C   sL   dd l }|d\}}|j||d| _d| | _| jd | _| jd | _d S )Nr   :)hostportz/paddle/z/nodesz/np)etcd3splitclientetcdprefixZnode_prefixnp_path)selfservernamer   Zsrvr    r   f/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/paddle/distributed/elastic.py__init__   s   
zCommand.__init__c                 C   s   | j | j| d d S )Nzlatin-1)r	   putr   encoder   npr   r   r   set_np   s   zCommand.set_npc                 C   s(   | j | jd d ur| | dS dS )Nr   TF)r	   getr   r   r   r   r   r   scale_np!   s   
zCommand.scale_npc                 C   s   | j | j d S N)r	   Zdelete_prefixr
   r   r   r   r   clean'   s   zCommand.cleanc                 C   s   | j   d S r   )r	   closer   r   r   r   r   *   s   zCommand.closeN)__name__
__module____qualname__r   r   r   r   r   r   r   r   r   r      s    
r   __main__zElastic Command)descriptionz--elastic_serverzetcd server host:port)typehelpz--job_idzjob unique idz--npz9job pod/node number, need to be 'MIN' or 'MIN:MAX' formatactionzaction to takeZPADDLE_ELASTIC_SERVERZPADDLE_ELASTIC_JOB_IDr   ZPADDLE_ELASTIC_NPscaler   zaction z done)argparseosr   r   ArgumentParserparseradd_argumentstr
parse_argsargsZelastic_servergetenvr   Zjob_idr   intr   r   cmdr$   r   r   printr   r   r   r   r   <module>   s6   $



