§
    W’j”  ã                   óÀ   — d dl Z d dlmZ ddlmZmZmZ ddlm	Z	  e j
        e¦  «        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d„Zdedefd„ZdS )é    N)Úentry_pointsé   )Ú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     úr/home/longshao/multi-rider-rag/.venv/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   c                  óÖ   — 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)   3   sX   € ÝÔ˜fÕ&:Ñ;Ô;Ð;ÝÔ˜iÕ)@ÑAÔAÐAÝÔ˜fÕ&:Ñ;Ô;Ð;ÝÔ˜hÕ(>Ñ?Ô?Ð?Ð?Ð?r   c                  ó  — t          d¬¦  «        } | D ]v}	 | |j                                      ¦   «         }t          j        |j         |¦   «         ¦  «         ŒE# t
          $ r% t                               d|j        d¬¦  «         Y Œsw xY wd S )Nztorchrun.handlers)Úgroupz3Exception while registering out of tree plugin %s: T)Úexc_info)r   ÚnameÚloadr&   r'   Ú	ExceptionÚlogÚwarning)Údiscovered_handler_generatorsÚhandler_generatorÚget_handlers      r   Ú_register_out_of_tree_handlersr5   :   s¹   € Ý$0Ð7JÐ$KÑ$KÔ$KÐ!à:ð 
ð 
Ðð		à7Ð8IÔ8NÔO×TÒTÑVÔVˆKÝÔ%Ð&7Ô&<¸k¸k¹m¼mÑLÔLÐLÐLøÝð 	ð 	ð 	ÝKŠKØEØ!Ô&Øð ñ ô ð ð ð ð	øøøð
ð 
s   –AAÁ,BÂBc                 ó*   — t          j        | ¦  «        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
   s    r   r	   r	   J   s   € õ, Ô*¨6Ñ2Ô2Ð2r   )r   N)ÚloggingÚimportlib.metadatar   Úapir   r&   r   r   Údynamic_rendezvousr   Ú	getLoggerÚ__name__r0   Ú__all__r   r   r   r!   r)   r5   r	   r(   r   r   ú<module>r>      sn  ðð €€€Ø +Ð +Ð +Ð +Ð +Ð +ðð ð ð ð ð ð ð ð ð ð
 /Ð .Ð .Ð .Ð .Ð .ð €gÔ˜Ñ!Ô!€à#Ð
$€ð=Ð#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   