o
    "Õjà
  ã                   @   st   d dl Z d dlZd dlZddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 d dl
mZ d	d
„ Zdd„ ZdS )é    Né   )ÚElasticManager)ÚElasticStatus)ÚELASTIC_EXIT_CODE)ÚElasticLevel)ÚCollectiveLauncher)ÚDistributeModec                 C   s@   | j s
t d¡s
dS | jst d¡sdS | jst d¡sdS dS )NÚPADDLE_ELASTIC_SERVERFZPADDLE_ELASTIC_JOB_IDZPADDLE_ELASTIC_NPT)Úelastic_serverÚosÚgetenvZjob_idÚnp)ÚargsÚdistribute_mode© r   új/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/paddle/distributed/fleet/elastic/__init__.pyÚenable_elastic   s   	r   c           	      C   s  | j pt d¡}| d¡\}}dd l}|j||d}t| |ƒ}t tj|j	¡ t tj
|j	¡ t tj|j	¡ 	 | ¡  | ¡  | t¡ | ¡ }|tjkrOn!|tjkrUq7|tjkr[n|tjkret d¡ |tjkrot t¡ q8t|jƒdkrƒt dt|jƒ ¡ d S t d¡ d S )Nr	   ú:r   )ÚhostÚportTé   é€   )r
   r   r   ÚsplitÚetcd3Úclientr   ÚsignalÚSIGTERMZsignal_handlerÚSIGABRTÚSIGINTÚwaitZpre_hookÚrunr   Úwatchr   Z	COMPLETEDZHOLDZEXITÚERRORÚsysÚexitZRESTARTr   ÚintZsigint)	r   r   ÚserverZsrvr   r   Zetcd_clientZelasticÚretr   r   r   Úlaunch_elastic1   s6   








ër(   )r   r   r#   Úmanagerr   r   r   r   Z
collectiver   Z%paddle.distributed.fleet.launch_utilsr   r   r(   r   r   r   r   Ú<module>   s   