o
    ni                     @   sL   d Z ddlZddlmZmZmZmZ ddlmZ	 e
dZG dd dZdS )zmetric.    N)CallableOptionalSequenceTuple)wandb_internal_pb2wandbc                   @   s  e Zd ZU dZeeejgdf  ed< e	ed< ee	 ed< ee
 ed< ee
 ed< eee	  ed< ee	 ed	< ee
 ed
< 						d'de	dee	 dee
 dee
 deee	  dee	 dee
 ddfddZdeejgdf ddfddZede	fddZedee	 fddZedee
 fddZedeee	df  fdd Zedee
 fd!d"Zedee	 fd#d$Zd(d%d&ZdS ))MetriczMetric object.N	_callback_name_step_metric
_step_sync_hidden_summary_goal
_overwritenamestep_metric	step_synchiddensummarygoal	overwritereturnc                 C   sH   d | _ || _|| _|d ur|n|d u}|| _|| _|| _|| _|| _d S N)r	   r
   r   r   r   r   r   r   )selfr   r   r   r   r   r   r    r   T/home/ubuntu/SoloSpeech/.venv/lib/python3.10/site-packages/wandb/sdk/wandb_metric.py__init__   s   

zMetric.__init__cbc                 C   s
   || _ d S r   )r	   )r   r   r   r   r   _set_callback,   s   
zMetric._set_callbackc                 C      | j S r   )r
   r   r   r   r   r   /      zMetric.namec                 C   r    r   )r   r!   r   r   r   r   3   r"   zMetric.step_metricc                 C   r    r   )r   r!   r   r   r   r   7   r"   zMetric.step_sync.c                 C   s   | j d u rd S t| j S r   )r   tupler!   r   r   r   r   ;   s   

zMetric.summaryc                 C   r    r   )r   r!   r   r   r   r   A   r"   zMetric.hiddenc                 C   s    t ddd}| jr|| j S d S )Nminimizemaximize)minmax)dictr   )r   	goal_dictr   r   r   r   E   s   zMetric.goalc                 C   s(  t  }d|j_| jdr| j|_n| j|_| jr| j|_	| j
r&| j
|j_| jr.| j|j_| jrnt| j}d|v r>d|j_d|v rFd|j_d|v rNd|j_d|v rVd|j_d|v r^d|j_d|v rfd|j_d	|v rnd|j_| jdkrw|j|_| jdkr|j|_| jr| j|j_| jr| | d S d S )
NT*r&   r'   meanlastcopynonebest) pbMetricRecordoptionsdefinedr
   endswith	glob_namer   r   r   r   r   r   r   r   setr   r&   r'   r+   r,   r-   r.   r/   r   GOAL_MINIMIZEr   GOAL_MAXIMIZEr   _controlr   r	   )r   msummary_setr   r   r   _commitJ   sH   






zMetric._commit)NNNNNN)r   N)__name__
__module____qualname____doc__r   r   r0   r1   __annotations__strboolr   r   r   propertyr   r   r   r   r   r   r   r<   r   r   r   r   r      s^   
 
	
r   )r@   loggingtypingr   r   r   r   wandb.protor   r0   	getLoggerloggerr   r   r   r   r   <module>   s    
