
    קg                     r    d dl Z d dlZd dlmZ d dlmZmZ dedefdZdej        fdZ	 G d d	          Z
dS )
    N)Template)AnyListenv_namereturnc                 t    t           j                            | d          }|d|  d}t          |          |S )z
    Tries to retrieve environment variable. Raises ``ValueError``
    if no environment variable found.

    Args:
        env_name (str): Name of the env variable
    NzEnvironment variable z expected, but not set)osenvironget
ValueError)r   valuemsgs      _/var/www/html/ai-engine/env/lib/python3.11/site-packages/torch/distributed/elastic/utils/api.pyget_env_variable_or_raiser      s?     JNN8T**E}FhFFFooL    c                  p   t          j        dd t           j        t           j                  } | D ]y}|\  }}}}}t          j         |||          }	 |                    d           |                    d           |c S # t          $ r}|                                 Y d }~rd }~ww xY wt          d          )N	localhost)hostportfamilytype)r   r   r   zFailed to create a socket)	socketgetaddrinfo	AF_UNSPECSOCK_STREAMbindlistenOSErrorcloseRuntimeError)addrsaddrr   r   proto_ses           r   get_socket_with_portr'      s    tF,<6CU  E   $(!eQM&$..	FF#$$$HHQKKKHHH 	 	 	GGIIIIIIII	
2
3
33s   +A>>
B&B!!B&c                   R    e Zd ZdZdZedee         dedee         fd            Z	dS )macroszS
    Defines simple macros for caffe2.distributed.launch cmd args substitution
    z${local_rank}args
local_rankr   c                     g }| D ]e}t          |t                    r9t          |                              |          }|                    |           P|                    |           f|S )N)r+   )
isinstancestrr   safe_substituteappend)r*   r+   args_subargsubs        r   
substitutezmacros.substitute5   ss     	% 	%C#s## %smm33z3JJ$$$$$$$$r   N)
__name__
__module____qualname____doc__r+   staticmethodr   r   r.   r4    r   r   r)   r)   .   s`          !Jc  S	    \  r   r)   )r	   r   stringr   typingr   r   r.   r   r'   r)   r:   r   r   <module>r=      s    
			                    4fm 4 4 4 4          r   