a
    h                     @   s   d dl Z d dlZddlmZmZmZ ddlmZ ej	dk rHd dl
mZ nd dlmZ e eZdgZeedd	d
ZeedddZeedddZeedddZddddZddddZeedddZdS )    N   )rendezvous_handler_registryRendezvousHandlerRendezvousParameters)create_handler)   
   )entry_pointsget_rendezvous_handler)paramsreturnc                 C   s   ddl m} || S )Nr   )static_tcp_rendezvous) r   create_rdzv_handler)r   r    r   [/var/www/auris/lib/python3.9/site-packages/torch/distributed/elastic/rendezvous/registry.py_create_static_handler   s    r   c                 C   s   ddl m} || S )Nr   )etcd_rendezvous)r   r   r   )r   r   r   r   r   _create_etcd_handler"   s    r   c                 C   s$   ddl m} || \}}t||| S Nr   )create_backend)Zetcd_rendezvous_backendr   r   r   r   backendstorer   r   r   _create_etcd_v2_handler(   s    r   c                 C   s$   ddl m} || \}}t||| S r   )Zc10d_rendezvous_backendr   r   r   r   r   r   _create_c10d_handler0   s    r   )r   c                   C   s4   t dt t dt t dt t dt d S )NZetcdzetcd-v2Zc10dZstatic)handler_registryregisterr   r   r   r   r   r   r   r   _register_default_handlers8   s    r   c               	   C   s`   t dd} | D ]L}z"| |j  }t|j|  W q tyX   tjd|jdd Y q0 qd S )Nztorchrun.handlers)groupz3Exception while registering out of tree plugin %s: T)exc_info)r	   nameloadr   r   	Exceptionlogwarning)Zdiscovered_handler_generatorsZhandler_generatorZget_handlerr   r   r   _register_out_of_tree_handlers?   s    
r&   c                 C   s
   t | S )aL  
    Obtain a reference to a :py:class`RendezvousHandler`.

    Custom rendezvous handlers can be registered by

    ::

      from torch.distributed.elastic.rendezvous import rendezvous_handler_registry
      from torch.distributed.elastic.rendezvous.registry import get_rendezvous_handler


      def create_my_rdzv(params: RendezvousParameters):
          return MyCustomRdzv(params)


      rendezvous_handler_registry.register("my_rdzv_backend_name", create_my_rdzv)

      my_rdzv_handler = get_rendezvous_handler(
          "my_rdzv_backend_name", RendezvousParameters
      )
    )r   r   )r   r   r   r   r
   N   s    )loggingsysapir   r   r   r   Zdynamic_rendezvousr   version_infoZimportlib_metadatar	   importlib.metadata	getLogger__name__r$   __all__r   r   r   r   r   r&   r
   r   r   r   r   <module>   s   

