o
    -wi                     @   sb   d dl Z d dlmZmZ d dlZG dd deZG dd deZG dd deZG d	d
 d
ZdS )    N)MutableMapping
NamedTuplec                   @   s6   e Zd ZU eed< eed< eed< eed< eed< dS )	FileStatsdedupedtotaluploadedfailedartifact_fileN)__name__
__module____qualname__bool__annotations__int r   r   Q/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/wandb/filesync/stats.pyr      s   
 r   c                   @   s&   e Zd ZU eed< eed< eed< dS )Summaryuploaded_bytestotal_bytesdeduped_bytesNr
   r   r   r   r   r   r   r   r   r      s   
 r   c                   @   s.   e Zd ZU eed< eed< eed< eed< dS )FileCountsByCategoryartifactwandbmediaotherNr   r   r   r   r   r      s
   
 r   c                	   @   s   e Zd ZdddZ	ddedededdfd	d
ZdeddfddZdededdfddZ	deddfddZ
defddZdefddZdS )StatsreturnNc                 C   s   i | _ t | _d S N)_stats	threadingLock_lock)selfr   r   r   __init__   s   zStats.__init__F	save_namesizeis_artifact_filec                 C   sD   | j  td|dd|d| j|< W d    d S 1 sw   Y  d S )NFr   )r   r   r   r   r	   )r"   r   r   )r#   r%   r&   r'   r   r   r   	init_file!   s   "zStats.init_filec                 C   sL   | j  | j| }|jd|jd| j|< W d    d S 1 sw   Y  d S )NT)r   r   )r"   r   _replacer   )r#   r%   origr   r   r   set_file_deduped-   s   
"zStats.set_file_dedupedtotal_uploadedc                 C   sD   | j  | j| j|d| j|< W d    d S 1 sw   Y  d S )Nr   r"   r   r)   )r#   r%   r,   r   r   r   update_uploaded_file5   s
   
"zStats.update_uploaded_filec                 C   sF   | j  | j| jddd| j|< W d    d S 1 sw   Y  d S )Nr   T)r   r   r.   )r#   r%   r   r   r   update_failed_file;   s   
"zStats.update_failed_filec                 C   sl   | j  t| j }W d    n1 sw   Y  ttdd |D tdd |D tdd |D dS )Nc                 s       | ]}|j V  qd S r   r-   .0fr   r   r   	<genexpr>H       z Stats.summary.<locals>.<genexpr>c                 s   r1   r   )r   r2   r   r   r   r5   I   r6   c                 s   s    | ]	}|j r|jV  qd S r   )r   r   r2   r   r   r   r5   J   s    )r   r   r   )r"   listr   valuesr   sum)r#   statsr   r   r   summaryB   s   zStats.summaryc                 C   s   d}d}d}d}| j  t| j }W d    n1 sw   Y  |D ]&\}}|jr0|d7 }q$tjj|r<|d7 }q$|	drF|d7 }q$|d7 }q$t
||||dS )Nr      r   )r   r   r   r   )r"   r7   r   itemsr	   r   	wandb_lib	filenamesis_wandb_file
startswithr   )r#   artifact_fileswandb_filesmedia_filesother_files
file_statsr%   r:   r   r   r   file_counts_by_categoryM   s*   




zStats.file_counts_by_category)r   N)F)r
   r   r   r$   strr   r   r(   r+   r/   r0   r   r;   r   rG   r   r   r   r   r      s"    

r   )	r    typingr   r   r   r   r   r   r   r   r   r   r   <module>   s    