o
    -wi!                     @   s   d dl Z d dlZd dlZd dlmZmZ d dlmZ d dlm	Z	m
Z
 eddG dd dZe d	Zdd
dde	de
e defddZ	dde	dede
e fddZdS )    N)ThreadPoolExecutoras_completed)	dataclass)IterableOptionalT)frozenc                   @   sL   e Zd ZU dZeed< eed< edef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.entityprojectpathc                 C   s   | d\}}| ||S N/)split)clsr   r	   r
    r   `/home/ubuntu/sommelier/.venv/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)__name__
__module____qualname____doc__str__annotations__classmethodr   propertyr   r   r   r   r   r   r   	   s   
 
r   import_loggerF)max_workersraise_on_erroriterabler    r!   c          	         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_func.   s   


,zparallelize.<locals>.safe_funcc                    s(   i | ]}j |g R i |qS r   )submit.0x)r-   excr.   r4   r   r   
<dictcomp>>   s   ( zparallelize.<locals>.<dictcomp>)r   r   appendresult)	r3   r"   r    r!   r-   r.   resultsfuturesfuturer   )r-   r9   r3   r.   r!   r4   r   parallelize&   s   

r@   parallelc                    s$   |r	t  ||dS  fdd|D S )N)r    c                    s   g | ]} |qS r   r   r6   r3   r   r   
<listcomp>N   s    zfor_each.<locals>.<listcomp>)r@   )r3   r"   rA   r    r   rB   r   for_eachD   s   rD   )TN)loggingr%   r'   concurrent.futuresr   r   dataclassesr   typingr   r   r   	getLoggerr+   intboolr@   rD   r   r   r   r   <module>   s4    

