§
    ×§g¼  ã                   ó„   — 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d
S )é   )Úrendezvous_handler_registryÚRendezvousHandlerÚRendezvousParameters)Úcreate_handlerÚget_rendezvous_handlerÚparamsÚreturnc                 ó8   — ddl m} |                     | ¦  «        S )Nr   )Ústatic_tcp_rendezvous)Ú r   Úcreate_rdzv_handler)r   r   s     úi/var/www/html/ai-engine/env/lib/python3.11/site-packages/torch/distributed/elastic/rendezvous/registry.pyÚ_create_static_handlerr      s(   € Ø'Ð'Ð'Ð'Ð'Ð'à ×4Ò4°VÑ<Ô<Ð<ó    c                 ó8   — ddl m} |                     | ¦  «        S )Nr   )Úetcd_rendezvous)r   r   r   )r   r   s     r   Ú_create_etcd_handlerr      s(   € Ø!Ð!Ð!Ð!Ð!Ð!à×.Ò.¨vÑ6Ô6Ð6r   c                 óL   — ddl m}  || ¦  «        \  }}t          ||| ¦  «        S ©Nr   )Úcreate_backend)Úetcd_rendezvous_backendr   r   ©r   r   ÚbackendÚstores       r   Ú_create_etcd_v2_handlerr      ó9   € Ø7Ð7Ð7Ð7Ð7Ð7à#^ FÑ+Ô+N€GˆUå˜% ¨&Ñ1Ô1Ð1r   c                 óL   — 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
          ¦  «         d S )NÚetcdzetcd-v2Úc10dÚstatic)Úhandler_registryÚregisterr   r   r   r   © r   r   Ú_register_default_handlersr'   .   sX   € ÝÔ˜fÕ&:Ñ;Ô;Ð;ÝÔ˜iÕ)@ÑAÔAÐ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Ô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ð 7ð 7ð 7ð2Ð$8ð 2Ð=Nð 2ð 2ð 2ð 2ð2Ð!5ð 2Ð:Kð 2ð 2ð 2ð 2ð@ð @ð @ð @ð3Ð#7ð 3Ð<Mð 3ð 3ð 3ð 3ð 3ð 3r   