
    [Th                     t    S SK r S SKrS SKJr  S SKJr  S\S\4S jrS\R                  4S jr " S S	5      r	g)
    N)Template)Anyenv_namereturnc                 n    [         R                  R                  U S5      nUc  SU  S3n[        U5      eU$ )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/auris/envauris/lib/python3.13/site-packages/torch/distributed/elastic/utils/api.pyget_env_variable_or_raiser      s;     JJNN8T*E}%hZ/EFoL    c                  X   [         R                  " SS [         R                  [         R                  S9n U  HF  nUu  p#n  n[         R                   " X#U5      n UR	                  S5        UR                  S5        Us  $    [        S5      e! [         a    UR                  5          Mr  f = f)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_ss          r   get_socket_with_portr%      s    tF,<,<6CUCUE $(!eQMM&.	FF#$HHQKH  2
33  	GGI	s   #BB)(B)c                   H    \ rS rSrSrSr\S\\   S\	S\\	   4S j5       r
Srg	)
macros.   zK
Defines simple macros for caffe2.distributed.launch cmd args substitution
z${local_rank}args
local_rankr   c                     / nU  HT  n[        U[        5      (       a+  [        U5      R                  US9nUR	                  U5        MC  UR	                  U5        MV     U$ )N)r*   )
isinstancestrr   safe_substituteappend)r)   r*   args_subargsubs        r   
substitutemacros.substitute5   sT    C#s##sm33z3J$$  r    N)__name__
__module____qualname____firstlineno____doc__r*   staticmethodlistr   r-   r3   __static_attributes__r5   r   r   r'   r'   .   s=     !Jc  S	  r   r'   )
r   r   stringr   typingr   r-   r   r%   r'   r5   r   r   <module>r@      s@    
     4fmm 4  r   