o
    wii                     @   s   d dl Z d dlZd dlmZ d dlmZmZmZmZm	Z	 ddl
mZ er0ddlmZ ddlmZ dd	 Ze  d
eee	d  ed f fddZe  d
eee	d f fddZdddZe  d
eedf fddZdS )    N)metadata)TYPE_CHECKINGListMappingTupleType   )logger)Executor)JobEnvironmentc                  C   sd   t  } t| dr| jddS zt  d W S  ty   Y nw t| dr+| dg S dd | D S )zrReturn an iterable of EntryPoint objects in the 'submitit' group
    compatible with Python 3.8+ and the backport.selectsubmitit)groupgetc                 S   s    g | ]}t |d ddkr|qS )r   Nr   )getattr).0ep r   R/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/submitit/core/plugins.py
<listcomp>(   s     z._iter_submitit_entrypoints.<locals>.<listcomp>)r   entry_pointshasattrr   	TypeErrorr   )epsr   r   r   _iter_submitit_entrypoints   s   

r   returnr
   r   c                  C   s^  ddl m} m } ddlm} |j|j| jg}| | |  g}t	 D ]}|j
dvr8t|j
 d|j  q$|jddd }z| }W n tyd } ztd	| d
|  W Y d }~q$d }~ww |j
dkrp|| q$z| }	W n/ ty } z#t|dt|dt|}
td|
 d| d| d
|  W Y d }~q$d }~ww ||	 q$||fS )Nr   )debuglocal)slurm)executorjob_environmentz = :   r   z Failed to load submitit plugin 'z': r   name__name__zFailed to init JobEnvironment 'z' (z) from submitit plugin ')r   r   r   SlurmExecutorLocalExecutorDebugExecutorSlurmJobEnvironmentLocalJobEnvironmentDebugJobEnvironmentr   r#   r	   warningvaluesplitload	Exception	exceptionappendr   str)r   r   r   	executorsjob_envsentry_pointmodule_nameobjejob_envr#   r   r   r   _get_plugins+   s<   



r:   c                   C      dd t  d D S )Nc                 S      i | ]}|  |qS r   r#   )r   exr   r   r   
<dictcomp>U       z!get_executors.<locals>.<dictcomp>r   r:   r   r   r   r   get_executorsR   s   rB   c                  C   s|   t  } dtjv r"tjd }|| v sJ d| d|   d| | S |  D ]
}| r0|  S q&tdd|   d)N_TEST_CLUSTER_zUnknown $_TEST_CLUSTER_='z', available: .zSCould not figure out which environment the job is runnning in. Known environments: z, )get_job_environmentsosenvironkeysvalues	activatedRuntimeErrorjoin)envscenvr   r   r   get_job_environmentX   s   

"rP   c                   C   r;   )Nc                 S   r<   r   r=   )r   rO   r   r   r   r?   l   r@   z(get_job_environments.<locals>.<dictcomp>r"   rA   r   r   r   r   rE   j   s   rE   )r   r   )	functoolsrF   	importlibr   typingr   r   r   r   r   corer	   	core.corer
   core.job_environmentr   r   	lru_cacher:   r2   rB   rP   rE   r   r   r   r   <module>   s    $&
