o
    ÚÜÓhÏ  ã                   @   s–   d dl mZmZ d dl mZ d dlmZ dgZdedefdd„Zdedefd	d
„Z	dedefdd„Z
dedefdd„Zddd„Zdedefdd„ZdS )é   )ÚRendezvousHandlerÚRendezvousParameters)Úrendezvous_handler_registry)Úcreate_handlerÚget_rendezvous_handlerÚparamsÚreturnc                 C   ó   ddl m} | | ¡S )Nr   )Ústatic_tcp_rendezvous)Ú r
   Úcreate_rdzv_handler)r   r
   © r   úc/var/www/html/ai/venv/lib/python3.10/site-packages/torch/distributed/elastic/rendezvous/registry.pyÚ_create_static_handler   ó   
r   c                 C   r	   )Nr   )Úetcd_rendezvous)r   r   r   )r   r   r   r   r   Ú_create_etcd_handler   r   r   c                 C   ó$   ddl m} || ƒ\}}t||| ƒS ©Nr   )Úcreate_backend)Úetcd_rendezvous_backendr   r   ©r   r   ÚbackendÚstorer   r   r   Ú_create_etcd_v2_handler   ó   r   c                 C   r   r   )Úc10d_rendezvous_backendr   r   r   r   r   r   Ú_create_c10d_handler!   r   r   Nc                   C   s4   t  dt¡ t  dt¡ t  dt¡ t  dt¡ d S )NÚetcdzetcd-v2Úc10dÚstatic)Úhandler_registryÚregisterr   r   r   r   r   r   r   r   Ú_register_default_handlers)   s   r#   c                 C   s
   t  | ¡S )aL  
    This method is used to obtain a reference to a :py:class`RendezvousHandler`.
    Custom rendezvous handlers can be registered by

    ::

      from torch.distributed.elastid.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   0   s   
)r   N)Úapir   r   r   r!   Údynamic_rendezvousr   Ú__all__r   r   r   r   r#   r   r   r   r   r   Ú<module>   s   
