
    bcg                         d dl Z d dlZd dlmZmZ d dlmZmZmZ d dl	m
Z
 d dlmZmZmZ  G d de      Z G d d	e      Zy)
    N)ThreadEvent)UnicodeDictdefault)display)	DOMWidgetLayoutwidget_serializationc                   |   e Zd Z ed      j	                  d      Z ed      j	                  d      Z ed      j	                  d      Z ed      j	                  d      Z ed      j	                  d      Z	 ed      j	                  d      Z
  ei       j                  dddieZ ed      d	        Zy
)MetricWidgetCatboostWidgetViewT)syncCatboostWidgetModelzcatboost-widgetz^1.0.0r   layoutc                     t        dd      S )N500pxstretch)height
align_self)r
   selfs    X/var/www/html/bid-api/venv/lib/python3.12/site-packages/catboost/widget/ipythonwidget.py_default_layoutzMetricWidget._default_layout   s    W;;    N )__name__
__module____qualname__r   tag
_view_name_model_name_view_module_model_module_view_module_version_model_module_versionr   r   datar   r   r   r   r   r   r   	   s    -.222=J/044$4?K,-11t1<L-.222=M"8,00d0;#H-11t1<48<<:T:%9:DX< <r   r   c                   T     e Zd Zd	 fd	Zd Zd Zd Zd Zd Zd Z	e
d        Z xZS )
MetricVisualizerc                 <   t         | j                  |           t        |t              r|g}|r+g }|D ]"  }|j                  | j                  |             $ |}|d d  | _        g | _        t        j                  j                  t        j                  j                        }|D ]`  }t        j                  j                  |      }| j                  j                  ||k7  rt        j                  j                  |      nd       b t               | _        d| _        y )NcurrentF)super	__class____init__
isinstancestrextend_get_subdirectories_train_dirs_namesospathabspathcurdirappendbasenamer   _need_to_stop_update_after_stop_signal)r   
train_dirssubdirstrain_subdirs	train_dirr8   r7   r-   s          r   r.   zMetricVisualizer.__init__   s    dnnd,.j#&$JM'	$$T%=%=i%HI (&J%a=0#Iggooi0GKKGv<Mrww//8S\] $ #W).&r   c                    t        |        | j                          | j                  j                  d      s,| j                          | j                  j                  d      s,| j                  r| j                          y y )Ng      ?)r   _update_datar;   waitr<   r   s    r   startzMetricVisualizer.start+   sg    $$))#. $$))#. )) *r   c                 p    t        | j                  d      | _        | j                  j                          y )Nr   )targetargs)r   rD   threadr   s    r   _run_updatezMetricVisualizer._run_update4   s$    DJJR8r   c                 z    d| _         | j                  j                          | j                  j	                          y )NT)r<   r;   setrH   joinr   s    r   _stop_updatezMetricVisualizer._stop_update8   s,    )-& r   c           	      
   t        j                  |      D cg c]`  }t         j                  j                  t         j                  j	                  ||            sAt         j                  j	                  ||      b c}S c c}w N)r5   listdirr6   isdirrL   )r   a_dirnames      r   r2   z$MetricVisualizer._get_subdirectories=   sY    68jj6Gt6Gd277==Y[Y`Y`YeYefkmqYrKsUD)6Gttts   AB "B c                    i }t        | j                  | j                        D cg c]
  \  }}||d }}}d}|D ]g  }|j                  d      }| j	                  |      }|s(||j                  d      |d||<   ||   d   d   }||   d   d   }	||d	z   |	k\  xr |	d
k7  z  }i |r| j
                  j                          || _        y c c}}w )N)rS   r6   Tr6   rS   )r6   rS   contentrU   passed_iterationstotal_iterations   r   )zipr4   r3   get_update_data_from_dirr;   rK   r'   )
r   r'   rS   r6   dirsall_completeddir_inforU   rV   rW   s
             r   rB   zMetricVisualizer._update_data@   s    ?B4;;PTP`P`?ab?att,?abH<<'D006G  V,"DJ !%T
9 56I J#Dz)45GH/!37GGaL\`aLabM " ""$	/ cs   C
c                    g i d}t         j                  j                  |d      }t         j                  j                  |      r;	 t	        |d      5 }t        j                  |      }|d   |d<   |d   |d<   d d d        |d   r|d   d   d   nd|d   r|d   d	   |d
S d|d
S # 1 sw Y   /xY w# t        $ r Y =w xY w)N)
iterationsmetazcatboost_training.jsonrra   r`   	iterationr   iteration_count)rV   rW   r'   )r5   r6   rL   isfileopenjsonload
ValueError)r   r6   r'   training_json	json_datatraining_datas         r   r[   z&MetricVisualizer._update_data_from_dir[   s    

 T+CD77>>-(--$(IIi$8M#0#8DL)6|)DD& . IM\HZl!3B!7!D`aCG<V-> ?
 	
UV
 	
 .-  s*   B2 &B&8B2 &B/+B2 2	B>=B>c                     t         j                  j                  t         j                  j                  t              |       S rO   )r5   r6   rL   dirname__file__)	file_names    r   _get_static_pathz!MetricVisualizer._get_static_pathr   s$    ww||BGGOOH5yAAr   )F)r   r   r   r.   rD   rI   rM   r2   rB   r[   staticmethodrr   __classcell__)r-   s   @r   r)   r)      s=    /$ 
u6
. B Br   r)   )r5   rh   	threadingr   r   	traitletsr   r   r   IPython.displayr   
ipywidgetsr	   r
   r   r   r)   r   r   r   <module>ry      s9    	  # , , # > ><9 <\B| \Br   