o
    xi
                     @  sX   d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z
 edZG dd	 d	ZdS )
zmetric.    )annotationsN)Sequence)Callable)wandb_internal_pb2wandbc                   @  s   e Zd ZU dZded< ded< ded< ded	< ded
< ded< ded< ded< 						d.d/ddZd0ddZed1dd Zed2d!d"Z	ed3d#d$Z
ed4d&d'Zed3d(d)Zed2d*d+Zd5d,d-ZdS )6MetriczMetric object.z(Callable[[pb.MetricRecord], None] | None	_callbackstr_name
str | None_step_metricbool | None
_step_sync_hiddenSequence[str] | None_summary_goal
_overwriteNnamestep_metric	step_synchiddensummarygoal	overwritereturnNonec                 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   J/home/ubuntu/.local/lib/python3.10/site-packages/wandb/sdk/wandb_metric.py__init__   s   

zMetric.__init__cb!Callable[[pb.MetricRecord], None]c                 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   2      zMetric.namec                 C  r%   r   )r   r&   r   r   r    r   6   r'   zMetric.step_metricc                 C  r%   r   )r   r&   r   r   r    r   :   r'   zMetric.step_synctuple[str, ...] | Nonec                 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   D   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   H   s   zMetric.goalc                 C  s8  t  }d|j_| jdr| j|_n| j|_| jr| j|_	| j
r&| j
|j_| jr.| j|j_| jrvt| 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_d
|v rvd|j_| jdkr|j|_| jdkr|j|_| jr| j|j_| j r|  | d S d S )NT*r,   r-   meanlastcopynonebestfirst)!pbMetricRecordoptionsdefinedr
   endswith	glob_namer   r   r   r   r   r   r   r   setr   r,   r-   r1   r2   r3   r4   r5   r6   r   GOAL_MINIMIZEr   GOAL_MAXIMIZEr   _controlr   r   )r   msummary_setr   r   r    _commitM   sL   






zMetric._commit)NNNNNN)r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r"   r#   r   r   )r   r	   )r   r   )r   r   )r   r(   )r   r   )__name__
__module____qualname____doc____annotations__r!   r$   propertyr   r   r   r   r   r   rC   r   r   r   r    r      s>   
 
r   )rG   
__future__r   loggingcollections.abcr   typingr   wandb.protor   r7   	getLoggerloggerr   r   r   r   r    <module>   s    
