
    ]iT                     x    S SK r S SKrS SKJr  S SKrS SKJr  SSKJ	r	  \R                  " \5      r " S S5      rg)    N)Path)retry   )utilsc                       \ rS rSrSrSS\R                  \   4S jjr\	" SS9S 5       r
S	 rS
\R                  \   4S jrS\4S jrSrg)Link   z
Connection with Dora for your trainer.
This is minimalistic and won't do much.

This can also be used to simulate a fake link by passing `None`
as the history file.
Nhistory_filec                     / U l         Xl        g)z 
Initialize the Link with Dora.
Nhistoryr
   )selfr
   s     F/mnt/rpi/tmp/demucs-venv-sys/lib/python3.13/site-packages/dora/link.py__init__Link.__init__   s     ')(    
   )stop_max_attempt_numberc                     U R                   c  g U R                   R                  5       (       a9  [        R                  " U R                   [        R
                  SS9nUb  Xl        g g g )Nr)loadmode)r
   existsr   try_loadjsonr   r   r   r   s     r   r   	Link.load"   sW    $##%%nnT%6%6TYYSQG"& # &r   c                    U R                   c  g SSKJn  UR                  5       (       d  g [        R
                  " U R                   S5       n[        R                  " U R                  USS9  S S S 5        g ! , (       d  f       g = f)Nr   )distribw   )indent)	r
    r   	is_masterr   write_and_renamer   dumpr   )r   r   tmps      r   _commitLink._commit+   s^    $  ""##D$5$5s;sIIdllC2 <;;s   !A66
Br   c                     [         R                  " U5      n[        U[        5      (       d  [	        S[        U5       35      eXR                  S S & U R                  5         g )Nz history must be a list, but got )r   jsonable
isinstancelist
ValueErrortyper   r(   r   s     r   update_historyLink.update_history5   sH    ..)'4((?WOPP!Qr   metricsc                     [         R                  " U5      nU R                  R                  U5        U R	                  5         g N)r   r+   r   appendr(   )r   r2   s     r   push_metricsLink.push_metrics<   s+    ..)G$r   r   r4   )__name__
__module____qualname____firstlineno____doc__tpOptionalr   r   r   r   r(   Listdictr0   r6   __static_attributes__ r   r   r   r      sZ    )R[[%6 ) 2&' ''3bggdm D r   r   )r   loggingpathlibr   typingr=   retryingr   r#   r   	getLoggerr8   loggerr   rB   r   r   <module>rI      s3         			8	$- -r   