
    sg                         d dl mZmZmZ d dlmZ dgZdedefdZdedefdZ	dedefdZ
dedefd	ZddZdedefdZy
)   )rendezvous_handler_registryRendezvousHandlerRendezvousParameters)create_handlerget_rendezvous_handlerparamsreturnc                 0    ddl m} |j                  |       S )Nr   )static_tcp_rendezvous) r   create_rdzv_handler)r   r   s     `/var/www/html/venv/lib/python3.12/site-packages/torch/distributed/elastic/rendezvous/registry.py_create_static_handlerr      s    ' 44V<<    c                 0    ddl m} |j                  |       S )Nr   )etcd_rendezvous)r   r   r   )r   r   s     r   _create_etcd_handlerr      s    !..v66r   c                 >    ddl m}  ||       \  }}t        |||       S Nr   )create_backend)etcd_rendezvous_backendr   r   r   r   backendstores       r   _create_etcd_v2_handlerr      "    7#F+NGU%&11r   c                 >    ddl m}  ||       \  }}t        |||       S r   )c10d_rendezvous_backendr   r   r   s       r   _create_c10d_handlerr   &   r   r   Nc                      t        j                  dt               t        j                  dt               t        j                  dt               t        j                  dt
               y )Netcdzetcd-v2c10dstatic)handler_registryregisterr   r   r   r    r   r   _register_default_handlersr'   .   sF    f&:;i)@Af&:;h(>?r   c                 ,    t        j                  |       S )a6  
    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   s    r   r   r   5   s    $ **622r   )r	   N)apir   r$   r   r   dynamic_rendezvousr   __all__r   r   r   r   r'   r   r&   r   r   <module>r,      s    
 / $
$=#7 =<M =7!5 7:K 72$8 2=N 22!5 2:K 2@3#7 3<M 3r   