
    i                     (   d dl mZmZmZmZmZmZmZmZm	Z	 d dl
Z
d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlZerd dlmZ g fd	ed
ee   fdZdddee   dee   dedeee   ee   ee   f   fdZ	 	 	 ddededee	eef      fdZddefdZy)    )	TYPE_CHECKINGDictAnyTupleCallableListOptionalIOUnionN)Path)util)Errors)registry)Printer)Languageproject_nameremove_config_valuesc                 h   	 	 dd l 	ddl m}m}m} t        j                  dd      } |d      t        j                  t        j                  fdd	d
t        dt        dt        t        t        t        t        f   gd f   t        g d f   f   f 	fd}|S # t        $ r d}t	        |      w xY w)Nr   )initlogjoinzThe 'wandb' library could not be found - did you install it? Alternatively, specify the 'ConsoleLogger' in the 'training.logger' config section, instead of the 'WandbLogger'.loggerszspacy.ConsoleLogger.v1F)progress_barnlpr   stdoutstderrreturnc                 >  	 | j                   j                         }t        j                  |      }D ]  }||=  t        j                  |      }j                  |d        
| ||      \  	dt        t        t        t        f      f	fd}dfd}||fS )NT)projectconfigreinitinfoc                      |        | }| d   }| d   }| d   }j                  d|i       |r6j                  |j                         D ci c]  \  }}d| | c}}       t        |t              rj                  |       y y y c c}}w )Nscoreother_scoreslossesloss_)r   items
isinstancedict)r"   r$   r%   r&   kvconsole_log_stepwandbs         e/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/spacy_legacy/loggers.pylog_stepz7wandb_logger_v1.<locals>.setup_logger.<locals>.log_step*   s    T"W#N3h		7E*+II&,,.I$!Qqc{A~IJlD1IIl+ 2   Js   B

c                  4              j                          y N)r   )console_finalizer.   s   r/   finalizez7wandb_logger_v1.<locals>.setup_logger.<locals>.finalize6   s    JJL    r   N)
r    interpolater   dict_to_dotdot_to_dictr   r	   r   strr   )r   r   r   r    
config_dotfieldr0   r4   r3   r-   consoler   r   r.   s           @@r/   setup_loggerz%wandb_logger_v1.<locals>.setup_logger   s     '')%%f-
) 	"E5!	"!!*-

<t
D-4S&&-I**
	,8DcN3 
	,	 !!r5   )r.   r   r   r   ImportErrorr   getsysr   r   r
   r   r   r   r:   r   )
r   r   r   r   r   err_msgconsole_loggerr>   r=   r.   s
   ``      @@r/   wandb_logger_v1rD      s    
#)) \\)-EFN%0G '*jjszz""!#":<"	xc3h($./"d(1CC	D" ": S  # 	 '""#s   B B1   )	max_widthcolswidthsrF   r   c                    g }g }t        | |      D ]a  \  }}t        |      |kD  r|d |dz
   dz   }|j                  |j                                |j                  t	        t        |      |             c |||D cg c]  }d c}fS c c}w )N   z...r)ziplenappenduppermax)rG   rH   rF   
final_colsfinal_widthscolwidth_s           r/   setup_tablerV   ?   s     JL$' 2
Us8io	A&.C#))+&CC%01	2
 |<%@ac%@@@%@s   ;	Br   console_outputoutput_filec                 P    t        j                  dd      } || du rdnd||      S )a  The ConsoleLogger.v2 prints out training logs in the console and/or saves them to a jsonl file.
    progress_bar (bool): Whether the logger should print a progress bar tracking the steps till the next evaluation pass.
    console_output (bool): Whether the logger should print the logs on the console.
    output_file (Optional[Union[str, Path]]): The file to save the training logs to.
    r   zspacy.ConsoleLogger.v3FNeval)r   rW   rX   )r   r@   )r   rW   rX   rC   s       r/   console_logger_v2r[   L   s4     \\)-EFN)U2T% r5   c                      t         j                  t         j                  fdddt        dt        dt        t
        t        t        t        t        f      gd f   t
        g d f   f   f fd}|S )Nr   r   r   r   r   c                 $   fdt        d      | j                  D cg c]  \  }}t        |d      r|j                  r|! c}}| j                  d   d   | j                  d   d   }|j                         D cg c]
  \  }}|	| c}}D cg c]  }d| 	 }	}d	t        d
dg|	z   z   dgz   ddg|	D 
cg c]  }
d c}
z   D 
cg c]  }
d c}
z   dgz         \  } j                  |              j                  D cg c]  }d|z  	 c}             d dt        t        t        t        f      dd ffd}dd}||fS c c}}w c c}}w c c}w c c}
w c c}
w c c}w )Nc                      t        | d      S )NT)fileflush)print)textr   s    r/   <lambda>z:console_logger_v1.<locals>.setup_printer.<locals>.<lambda>b   s    U4fDA r5   T)no_printis_trainabletrainingeval_frequencyscore_weightszLoss    E#ScorerJ         )rG   rH   )rH   spacing-)ro   r"   r   c           	         | j                  d       y 	D cg c]"  }dj                  t        | d   |               $ }}g }D ]M  }| d   j                  |d      }	 t        |      }|dk7  r|dz  }|j                  dj                  |             O | d	   | d
   g|z   |z   dj                  t        | d               gz   }j                           
j                  |             r4t        j                  d d      j                  d| d	   dz           y y c c}w # t        $ r7 t
        j                  j                  |t        |            }t        |      d w xY w)N   z{0:.2f}r&   r%   g        )name
score_typespeedd   epochstepr$   )rH   alignsro   F)totaldisableleaver_   zEpoch )updateformatfloatr@   	TypeErrorr   E916type
ValueErrorrN   closerowtqdmset_description)r"   	pipe_namer&   scoresrS   r$   errdatarg   logged_pipesmsgprogressr   
score_colsro   r   table_alignstable_widthswrites           r/   r0   z:console_logger_v1.<locals>.setup_printer.<locals>.log_stepw   s    |'OOA& ".   tH~i'@!ABF 
 F! 	7^,00c:4!%LE '>SLEi..u56	7 gV- ##E$w-$89:;  # \,PWX 99($e& ((6$w-/1B)CD 9 ! 4 ++,,#$u+,NC$S/t34s   'D,"D11A E1c                       y r2    r   r5   r/   r4   z:console_logger_v1.<locals>.setup_printer.<locals>.finalize   s    r5   r6   )r   pipelinehasattrre   r    r(   rV   r   r	   r   r:   r   )r   r   r   rs   procrh   rS   valuepipe	loss_colsrU   table_headerrT   r0   r4   rg   r   r   r   r   ro   r   r   r   r   s    ``            @@@@@@@@@r/   setup_printerz(console_logger_v1.<locals>.setup_printer_   s    Bt$ "ll
dt^,1B1B 

 J/0@A

:.?,9,?,?,AWjc5UEVcW
0<=uTF^=	=3>si'*4y@q6	21Q225LAa5LLPQsR4
0lL 	cggl<gIJcgg=usU{=wgOP)	E8DcN3 )	E )	E )	EV	 !!A
 X= 35L >s)   $E2
E8E8#E>	F	F#F)
rA   r   r   r
   r   r   r	   r   r:   r   )r   r   s   ` r/   console_logger_v1r   ^   sp    &)jjszzF"F"!#F":<F"	x$sCx.12D898BH;MM	NF"P r5   )FTN)F)typingr   r   r   r   r   r   r	   r
   r   rA   pathlibr   spacyr   spacy.errorsr   
spacy.utilr   wasabir   r   spacy.languager   r:   rD   intrV   boolr[   r   r   r5   r/   <module>r      s    W W W 
      ' JL -# -T#Y -b =?
A#Y
A $S	
A69
A
49d3ic*+
A .2 %T	*+$ID Ir5   