o
    1 i5                     @   s   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Zd dlm	Z	 d dl
mZ d dlmZ d dlmZmZ d dlmZ eeZed	d
eG dd deZdee defddZG dd deZdS )    N)	dataclass)List)build_address)BaseWorkerGroup)get_address_and_port)BackendBackendConfig)	PublicAPIbeta)Z	stabilityc                   @   s   e Zd Zedd ZdS )TensorflowConfigc                 C   s   t S N)_TensorflowBackend)self r   g/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/ray/train/tensorflow/config.pybackend_cls   s   zTensorflowConfig.backend_clsN)__name__
__module____qualname__propertyr   r   r   r   r   r      s    r   worker_addressesindexc                 C   s(   d| id|dd}t |tjd< dS )zSet up distributed Tensorflow training information.

    This function should be called on each worker.

    Args:
        worker_addresses: Addresses of all the workers.
        index: Index (i.e. world rank) of the current worker.
    Zworker)typer   )ZclustertaskZ	TF_CONFIGN)jsondumpsosenviron)r   r   Z	tf_configr   r   r   _setup_tensorflow_environment   s   
r   c                   @   s   e Zd ZdedefddZdS )r   worker_groupbackend_configc              	   C   sN   dd }| |}g }tt|D ]}||j|t||d qt| d S )Nc                  S   s   t  \} }t| |S r   )r   r   )addressportr   r   r   get_url,   s   

z,_TensorflowBackend.on_start.<locals>.get_url)r   r   )executerangelenappendZexecute_single_asyncr   rayget)r   r   r    r#   urlsZsetup_futuresir   r   r   on_start*   s   
z_TensorflowBackend.on_startN)r   r   r   r   r   r,   r   r   r   r   r   )   s    r   )r   loggingr   dataclassesr   typingr   r(   Zray._common.network_utilsr   Z%ray.train._internal.base_worker_groupr   Zray.train._internal.utilsr   Zray.train.backendr   r   Zray.utilr	   	getLoggerr   loggerr   strintr   r   r   r   r   r   <module>   s"    
