§
    Ÿ²Åj  ã                   óì   — 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     rd dl
mZ n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é   )Úrendezvous_handler_registryÚRendezvousHandlerÚRendezvousParameters)Úcreate_handler)é   é
   )Úentry_pointsÚget_rendezvous_handlerÚparamsÚreturnc                 ó8   — ddl m} |                     | ¦  «        S )Nr   )Ústatic_tcp_rendezvous)Ú r   Úcreate_rdzv_handler)r   r   s     ú^C:\Projects\Historical\venv\Lib\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#   0   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+   8   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_handlersr7   ?   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 )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   N   s   € õ$ Ô*¨6Ñ2Ô2Ð2r   )r   N)ÚloggingÚsysÚapir   r(   r   r   Údynamic_rendezvousr   Úversion_infoÚimportlib_metadatar
   Úimportlib.metadataÚ	getLoggerÚ__name__r2   Ú__all__r   r   r   r#   r+   r7   r   r*   r   r   ú<module>rC      sš  ðð €€€Ø 
€
€
€
ðð ð ð ð ð ð ð ð ð ð
 /Ð .Ð .Ð .Ð .Ð .ð Ô�gÒÐØ/Ð/Ð/Ð/Ð/Ð/Ð/à/Ð/Ð/Ð/Ð/Ð/à€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   