o
    wi>                     @  s   d dl mZ d dlZd dlZd dlZd dlmZ d dlmZm	Z	 d dl
mZ eddG dd	 d	Zed
ZddddddZ	ddddZdS )    )annotationsN)Iterable)ThreadPoolExecutoras_completed)	dataclassT)frozenc                   @  sH   e Zd ZU dZded< ded< edddZedd	 Zed
d Z	dS )	NamespacezQConfigure an alternate entity/project at the dst server your data will end up in.strentityprojectpathc                 C  s   | d\}}| ||S N/)split)clsr   r
   r    r   W/home/ubuntu/.local/lib/python3.10/site-packages/wandb/apis/importers/internals/util.py	from_path   s   
zNamespace.from_pathc                 C  s   | j  d| j S r   r
   r   )selfr   r   r   r      s   zNamespace.pathc                 C  s(   i }| j r
| j |d< | jr| j|d< |S )Nr
   r   r   )r   	overridesr   r   r   send_manager_overrides   s   

z Namespace.send_manager_overridesN)r   r	   )
__name__
__module____qualname____doc____annotations__classmethodr   propertyr   r   r   r   r   r   r      s   
 
r   import_loggerF)max_workersraise_on_erroriterabler   r    
int | Noner!   boolc          	        st   fddg }t |# fdd|D }t|D ]	}||  qW d    |S 1 s3w   Y  |S )Nc                    s   z | i |W S  t yN } z:t \}}}t|}|d j}|d j}td d| d|d|d|d|d| rC W Y d }~d S d }~ww )	NzException: func=z args=z kwargs=z e=z
 filename=z lineno=z. traceback_details=)		Exceptionsysexc_info	traceback
extract_tbfilenamelinenologgerdebug)argskwargse_exc_tracebacktraceback_detailsr+   r,   )funcr!   r   r   	safe_func0   s   


,zparallelize.<locals>.safe_funcc                   s(   i | ]}j |g R i |qS r   )submit.0x)r/   excr0   r6   r   r   
<dictcomp>@   s   ( zparallelize.<locals>.<dictcomp>)r   r   appendresult)	r5   r"   r    r!   r/   r0   resultsfuturesfuturer   )r/   r;   r5   r0   r!   r6   r   parallelize(   s   

rB   parallelc                   s$   |r	t  ||dS  fdd|D S )N)r    c                   s   g | ]} |qS r   r   r8   r5   r   r   
<listcomp>P   s    zfor_each.<locals>.<listcomp>)rB   )r5   r"   rC   r    r   rD   r   for_eachF   s   rF   )r"   r   r    r#   r!   r$   )TN)r"   r   rC   r$   r    r#   )
__future__r   loggingr'   r)   collections.abcr   concurrent.futuresr   r   dataclassesr   r   	getLoggerr-   rB   rF   r   r   r   r   <module>   s    
