Ë
    Áš¾j>  ã                   ó:  — d Z ddlmZmZmZmZmZmZm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mZmZ dd	lmZmZ  e«       dddddddfd
edee   dee   dee   dee   dee   dee   dee   deee      defd„Z e«       ddddddfd
edee   dee   dee   dee   dee   dee   dee   defd„Z e«       ddddfd
edee   dee   dee   dee   dee   defd„Z e«       ddfd
edee   dee   dee   def
d„Z e«       fd
edee   defd„Zde
fd„Zd e«       fde
dddedee   dee   defd„Zde
deeeef      fd „Z	 d+de
deeeef      d!edee   fd"„Z 	 	 d,de
d#ed$ed%ed&eeeef      d'eee      fd(„Z!de
deeeef      d)eege"f   fd*„Z#y)-z=
A logger that logs training activity to Weights and Biases.
é    )ÚDictÚAnyÚTupleÚCallableÚListÚIOÚOptional)Ú
ModuleTypeN)ÚLanguage)ÚSimpleFrozenListé   )Údict_to_dotÚdot_to_dictÚmatcher_for_regex_patterns)Úsetup_default_console_loggerÚLoggerTÚproject_nameÚremove_config_valuesÚmodel_log_intervalÚlog_dataset_dirÚentityÚrun_nameÚlog_best_dirÚlog_latest_dirÚlog_custom_statsÚreturnc	                 ó  ‡ ‡‡‡‡‡‡‡‡‡
— t        «       Š
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 )a×  Creates a logger that interoperates with the Weights & Biases framework.

    Args:
        project_name (str):
            The name of the project in the Weights & Biases interface. The project will be created automatically if it doesn't exist yet.
        remove_config_values (List[str]):
            A list of values to exclude from the config before it is uploaded to W&B. Defaults to [].
        model_log_interval (Optional[int]):
            Steps to wait between logging model checkpoints to the W&B dasboard. Defaults to None.
        log_dataset_dir (Optional[str]):
            Directory containing the dataset to be logged and versioned as a W&B artifact. Defaults to None.
        entity (Optional[str]):
            An entity is a username or team name where you're sending runs. If you don't specify an entity, the run will be sent to your default entity, which is usually your username. Defaults to None.
        run_name (Optional[str]):
            The name of the run. If you don't specify a run name, the name will be created by the `wandb` library. Defaults to None.
        log_best_dir (Optional[str]):
            Directory containing the best trained model as saved by spaCy, to be logged and versioned as a W&B artifact. Defaults to None.
        log_latest_dir (Optional[str]):
            Directory containing the latest trained model as saved by spaCy, to be logged and versioned as a W&B artifact. Defaults to None.
        log_custom_stats (Optional[List[str]]):
            A list of regular expressions that will be applied to the info dictionary passed to the logger. Statistics and metrics that match these regexps will be automatically logged. Defaults to None.

    Returns:
        LoggerT: Logger instance.
    Únlpr   ÚstdoutÚstderrr   Nc                 óä   •
‡‡— t        ‰	«      Št        ‰| ‰‰‰¬«      Š‰r‰‰j                  _        ‰
rt	        ‰‰
dd¬«       dt
        t        t        t        f      fˆˆˆˆfd„}dˆˆˆfd„}||fS )N©r   r   Údataset©ÚpathÚnameÚtypeÚinfoc                 óT   •— t        ‰| «       t        ‰| ‰‰«       t        ‰| ‰«       y ©N)Ú_log_scoresÚ_log_model_artifactÚ_log_custom_stats)r(   Ú
match_statr   ÚrunÚwandbs    €€€€ú]/home/spazio/kingdom_calls/work5/transenv/lib/python3.12/site-packages/spacy_loggers/wandb.pyÚlog_stepz7wandb_logger_v5.<locals>.setup_logger.<locals>.log_stepJ   s(   ø€ Ü˜˜tÔ$Ü  t¨SÐ2DÔEÜ˜e T¨:Õ6ó    c                  ój   •— ‰ rt        ‰‰ dd¬«       ‰rt        ‰‰dd¬«       ‰j                  «        y ©NÚ
model_bestÚmodelr$   Ú
model_last©Ú_log_dir_artifactÚjoin)r   r   r0   s   €€€r1   Úfinalizez7wandb_logger_v5.<locals>.setup_logger.<locals>.finalizeO   s>   ø€ ÙÜ!ØØ%Ø%Ø õ	ñ Ü!ØØ'Ø%Ø õ	ð �J‰J�Lr3   ©r   N)	r   Ú_setup_wandbr/   r&   r:   r	   r   Ústrr   )r   r   r    r2   r<   r.   r/   r   r   r   r   r   r   r   r   r   r0   s        @@€€€€€€€€€€r1   Úsetup_loggerz%wandb_logger_v5.<locals>.setup_logger7   s}   ú€ ô 0Ð0@ÓAˆ
ÜØØØØ!5Øô
ˆñ Ø%ˆE�I‰IŒNáÜØ˜O°)À)õð	7œ8¤D¬¬c¨¡NÑ3÷ 	7ð 	7÷
	ð$ ˜Ð!Ð!r3   ©
Ú_import_wandbÚsysr   r    r   r   r   r   r?   r   )r   r   r   r   r   r   r   r   r   r@   r0   s   ````````` @r1   Úwandb_logger_v5rD      sx   ÿù€ ôH ‹O€Eô '*§j¡j¼s¿z¹zñ*"Øð*"Ü!#ð*"Ü:<ð*"ä	Œxœœc¤3˜h™Ð(¨$Ð.Ñ/´¸"¸d¸(Ñ1CÐCÑ	D÷*"ö *"ðX Ðr3   c                 ó   ‡ ‡‡‡‡‡‡‡‡	— t        «       Š	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 )aÛ  Creates a logger that interoperates with the Weights & Biases framework.

    Args:
        project_name (str):
            The name of the project in the Weights & Biases interface. The project will be created automatically if it doesn't exist yet.
        remove_config_values (List[str]):
            A list of values to exclude from the config before it is uploaded to W&B. Defaults to [].
        model_log_interval (Optional[int]):
            Steps to wait between logging model checkpoints to the W&B dasboard. Defaults to None.
        log_dataset_dir (Optional[str]):
            Directory containing the dataset to be logged and versioned as a W&B artifact. Defaults to None.
        entity (Optional[str]):
            An entity is a username or team name where you're sending runs. If you don't specify an entity, the run will be sent to your default entity, which is usually your username. Defaults to None.
        run_name (Optional[str]):
            The name of the run. If you don't specify a run name, the name will be created by the `wandb` library. Defaults to None.
        log_best_dir (Optional[str]):
            Directory containing the best trained model as saved by spaCy, to be logged and versioned as a W&B artifact. Defaults to None.
        log_latest_dir (Optional[str]):
            Directory containing the latest trained model as saved by spaCy, to be logged and versioned as a W&B artifact. Defaults to None.

    Returns:
        LoggerT: Logger instance.
    r   r   r   r    r   Nc                 óò   •	‡‡‡— t        | ||«      \  ŠŠt        ‰| ‰‰‰¬«      Š‰r‰‰j                  _        ‰
rt	        ‰‰
dd¬«       dt
        t        t        t        f      fˆˆˆˆfd„}dˆˆ	ˆˆfd„}||fS )Nr"   r#   r$   r(   c                 óJ   •—  ‰| «       t        ‰| «       t        ‰| ‰‰«       y r*   ©r+   r,   ©r(   Úconsole_log_stepr   r/   r0   s    €€€€r1   r2   z7wandb_logger_v4.<locals>.setup_logger.<locals>.log_stepŸ   ó$   ø€ Ù˜TÔ"Ü˜˜tÔ$Ü  t¨SÐ2DÕEr3   c                  óx   •— ‰rt        ‰‰dd¬«       ‰rt        ‰‰dd¬«        ‰ «        ‰j                  «        y r5   r9   )Úconsole_finalizer   r   r0   s   €€€€r1   r<   z7wandb_logger_v4.<locals>.setup_logger.<locals>.finalize¤   sD   ø€ ÙÜ!ØØ%Ø%Ø õ	ñ Ü!ØØ'Ø%Ø õ	ñ ÔØ�J‰J�Lr3   r=   ©	r   r>   r/   r&   r:   r	   r   r?   r   )r   r   r    r2   r<   rM   rJ   r/   r   r   r   r   r   r   r   r   r0   s        @@@€€€€€€€€€r1   r@   z%wandb_logger_v4.<locals>.setup_loggerŠ   s•   û€ ô .JØ�˜ó.
Ñ*ÐÐ*ô ØØØØ!5Øô
ˆñ Ø%ˆE�I‰IŒNáÜØ˜O°)À)õð	Fœ8¤D¬¬c¨¡NÑ3÷ 	Fð 	F÷
	ð 	ð& ˜Ð!Ð!r3   rA   )
r   r   r   r   r   r   r   r   r@   r0   s
   ```````` @r1   Úwandb_logger_v4rO   g   sx   ÿø€ ôB ‹O€Eô '*§j¡j¼s¿z¹zñ-"Øð-"Ü!#ð-"Ü:<ð-"ä	Œxœœc¤3˜h™Ð(¨$Ð.Ñ/´¸"¸d¸(Ñ1CÐCÑ	D÷-"õ -"ð^ Ðr3   c                 óø   ‡ ‡‡‡‡‡‡— t        «       Š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 )au  Creates a logger that interoperates with the Weights & Biases framework.

    Args:
        project_name (str):
            The name of the project in the Weights & Biases interface. The project will be created automatically if it doesn't exist yet.
        remove_config_values (List[str]):
            A list of values to exclude from the config before it is uploaded to W&B. Defaults to [].
        model_log_interval (Optional[int]):
            Steps to wait between logging model checkpoints to the W&B dasboard. Defaults to None.
        log_dataset_dir (Optional[str]):
            Directory containing the dataset to be logged and versioned as a W&B artifact. Defaults to None.
        entity (Optional[str]):
            An entity is a username or team name where you're sending runs. If you don't specify an entity, the run will be sent to your default entity, which is usually your username. Defaults to None.
        run_name (Optional[str]):
            The name of the run. If you don't specify a run name, the name will be created by the `wandb` library. Defaults to None.

    Returns:
        LoggerT: Logger instance.
    r   r   r   r    r   Nc                 óî   •‡‡‡— t        | ||«      \  ŠŠt        ‰| ‰‰‰¬«      Š‰r‰‰j                  _        ‰	rt	        ‰‰	dd¬«       dt
        t        t        t        f      fˆˆ
ˆˆfd„}dˆˆfd„}||fS )Nr"   r#   r$   r(   c                 óJ   •—  ‰| «       t        ‰| «       t        ‰| ‰‰«       y r*   rH   rI   s    €€€€r1   r2   z7wandb_logger_v3.<locals>.setup_logger.<locals>.log_stepï   rK   r3   c                  ó4   •—  ‰ «        ‰j                  «        y r*   ©r;   ©rM   r0   s   €€r1   r<   z7wandb_logger_v3.<locals>.setup_logger.<locals>.finalizeô   ó   ø€ ÙÔØ�J‰J�Lr3   r=   rN   )r   r   r    r2   r<   rM   rJ   r/   r   r   r   r   r   r   r0   s        @@@€€€€€€€r1   r@   z%wandb_logger_v3.<locals>.setup_loggerÚ   s�   û€ ô .JØ�˜ó.
Ñ*ÐÐ*ô ØØØØ!5Øô
ˆñ Ø%ˆE�I‰IŒNáÜØ˜O°)À)õð	Fœ8¤D¬¬c¨¡NÑ3÷ 	Fð 	Fö
	ð ˜Ð!Ð!r3   rA   )r   r   r   r   r   r   r@   r0   s   `````` @r1   Úwandb_logger_v3rW   ½   sv   þ€ ô6 ‹O€Eô '*§j¡j¼s¿z¹zñ"Øð"Ü!#ð"Ü:<ð"ä	Œxœœc¤3˜h™Ð(¨$Ð.Ñ/´¸"¸d¸(Ñ1CÐCÑ	D÷"ó "ð@ Ðr3   c                 óð   ‡ ‡‡‡‡— t        «       Š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 )aã  Creates a logger that interoperates with the Weights & Biases framework.

    Args:
        project_name (str):
            The name of the project in the Weights & Biases interface. The project will be created automatically if it doesn't exist yet.
        remove_config_values (List[str]):
            A list of values to exclude from the config before it is uploaded to W&B. Defaults to [].
        model_log_interval (Optional[int]):
            Steps to wait between logging model checkpoints to the W&B dasboard. Defaults to None.
        log_dataset_dir (Optional[str]):
            Directory containing the dataset to be logged and versioned as a W&B artifact. Defaults to None.

    Returns:
        LoggerT: Logger instance.
    r   r   r   r    r   Nc                 óÆ   •‡‡‡— t        | ||«      \  ŠŠt        ‰| ‰
‰¬«      Š‰rt        ‰‰dd¬«       dt        t        t
        t        f      fˆˆ	ˆˆfd„}dˆˆfd„}||fS )N©r   r#   r$   r(   c                 óJ   •—  ‰| «       t        ‰| «       t        ‰| ‰‰«       y r*   rH   rI   s    €€€€r1   r2   z7wandb_logger_v2.<locals>.setup_logger.<locals>.log_step$  rK   r3   c                  ó4   •—  ‰ «        ‰j                  «        y r*   rT   rU   s   €€r1   r<   z7wandb_logger_v2.<locals>.setup_logger.<locals>.finalize)  rV   r3   r=   )r   r>   r:   r	   r   r?   r   )r   r   r    r2   r<   rM   rJ   r/   r   r   r   r   r0   s        @@@€€€€€r1   r@   z%wandb_logger_v2.<locals>.setup_logger  s}   û€ ô .JØ�˜ó.
Ñ*ÐÐ*ô Ø�3˜Ð;Oô
ˆñ ÜØ˜O°)À)õð	Fœ8¤D¬¬c¨¡NÑ3÷ 	Fð 	Fö
	ð ˜Ð!Ð!r3   rA   )r   r   r   r   r@   r0   s   ```` @r1   Úwandb_logger_v2r]   þ   su   ü€ ô* ‹O€Eô '*§j¡j¼s¿z¹zñ"Øð"Ü!#ð"Ü:<ð"ä	Œxœœc¤3˜h™Ð(¨$Ð.Ñ/´¸"¸d¸(Ñ1CÐCÑ	D÷"ñ "ð4 Ðr3   c                 óè   ‡ ‡‡— t        «       Š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 )a¾  Creates a logger that interoperates with the Weights & Biases framework.

    Args:
        project_name (str):
            The name of the project in the Weights & Biases interface. The project will be created automatically if it doesn't exist yet.
        remove_config_values (List[str]):
            A list of values to exclude from the config before it is uploaded to W&B. Defaults to [].

    Returns:
        LoggerT: Logger instance.
    r   r   r   r    r   Nc                 óž   •‡‡— t        | ||«      \  ŠŠt        ‰	| ‰‰¬«       dt        t        t        t
        f      fˆˆ	fd„}dˆˆ	fd„}||fS )NrZ   r(   c                 ó.   •—  ‰| «       t        ‰| «       y r*   )r+   )r(   rJ   r0   s    €€r1   r2   z7wandb_logger_v1.<locals>.setup_logger.<locals>.log_stepM  s   ø€ Ù˜TÔ"Ü˜˜tÕ$r3   c                  ó4   •—  ‰ «        ‰j                  «        y r*   rT   rU   s   €€r1   r<   z7wandb_logger_v1.<locals>.setup_logger.<locals>.finalizeQ  rV   r3   r=   )r   r>   r	   r   r?   r   )
r   r   r    r2   r<   rM   rJ   r   r   r0   s
        @@€€€r1   r@   z%wandb_logger_v1.<locals>.setup_loggerC  s]   ú€ ô .JØ�˜ó.
Ñ*ÐÐ*ô 	Ø�3˜Ð;Oõ	
ð	%œ8¤D¬¬c¨¡NÑ3ö 	%ö	ð ˜Ð!Ð!r3   rA   )r   r   r@   r0   s   `` @r1   Úwandb_logger_v1rb   3  sp   ú€ ô ‹O€Eô '*§j¡j¼s¿z¹zñ"Øð"Ü!#ð"Ü:<ð"ä	Œxœœc¤3˜h™Ð(¨$Ð.Ñ/´¸"¸d¸(Ñ1CÐCÑ	D÷"ð( Ðr3   c                  óT   — 	 dd l } ddl m}m}m} | S # t        $ r t	        d«      ‚w xY w)Nr   )ÚinitÚlogr;   z®The 'wandb' library could not be found - did you install it? Alternatively, specify the 'ConsoleLogger' in the 'training.logger' config section, instead of the 'WandbLogger'.)r0   rd   re   r;   ÚImportError)r0   rd   re   r;   s       r1   rB   rB   Z  s9   € ð
Û÷ 	*Ñ)àˆøÜò 
ÜðNó
ð 	
ð
ús   ‚ ’'r0   r   r   Úprojectc                 ó¤   — |j                   j                  «       }t        |«      }|D ]  }||= Œ t        |«      }| j	                  |||d¬«      }|S )NT)rg   Úconfigr   Úreinit)ri   Úinterpolater   r   rd   )	r0   r   rg   r   r   ri   Ú
config_dotÚfieldr/   s	            r1   r>   r>   j  s\   € ð �Z‰Z×#Ñ#Ó%€FÜ˜VÓ$€JØ%ò ˆØ�uÑðä˜Ó$€FØ
�*‰*˜W¨V¸FÈ4ˆ*Ó
P€CØ€Jr3   r(   c                 ó  — |�}|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_)re   ÚitemsÚ
isinstanceÚdict)r0   r(   ro   rp   rq   ÚkÚvs          r1   r+   r+   z  s‰   € ØÐØ�W‘ˆØ˜NÑ+ˆØ�h‘ˆØ�	‰	�7˜EÐ"Ô#ÙØ�I‰I°&·,±,³.×A©$¨!¨Q˜˜q˜c�{ A‘~ÓAÔBÜ�l¤DÔ)Ø�I‰I�lÕ#ð *ð ùó Bs   ÁB
r/   c                 óð   — |�t|rq|j                  d«      r_|d   |z  dk(  rS|d   dk7  rJt        | |d   d|j                  z   d|d|d   › d|d   › �d	|d
   t        |d   «      d   k(  rdndg¬«       y y y y y y )NÚoutput_pathÚstepr   Ú	pipeline_Ú
checkpointzepoch Úepochz step Úlatestro   ÚcheckpointsÚbestÚ )r%   r&   r'   ÚmetadataÚaliases)Úgetr:   ÚidÚmax)r0   r(   r/   r   s       r1   r,   r,   †  s°   € ð ÐÙ $§(¡(¨=Ô"9Ø�F‰|Ð0Ñ0°AÒ5¸$¸v¹,È!Ò:KÜ!ØØ˜mÑ,Ø$ s§v¡vÑ-Ø%Ø!à   g¡ ¨v°d¸6±l°^ÐDØ Ø"& w¡-´3°t¸MÑ7JÓ3KÈAÑ3NÒ"N™ÐTVðöð ;LÐ5ð #:Ðð r3   r%   r&   r'   r‚   rƒ   c                 óx   — | j                  |||¬«      }|j                  ||¬«       | j                  ||¬«       y )N)r'   r‚   )r&   )rƒ   )ÚArtifactÚadd_dirÚlog_artifact)r0   r%   r&   r'   r‚   rƒ   Údataset_artifacts          r1   r:   r:   �  s@   € ð —~‘~ d°À�~ÓIÐØ×Ñ˜T¨ÐÔ-Ø	×ÑÐ'°ÐÕ9r3   Úmatcherc                 ór   — |�5|j                  «       D ]!  \  }} ||«      sŒ| j                  ||i«       Œ# y y r*   )rs   re   )r0   r(   rŒ   rv   rw   s        r1   r-   r-   ª  s?   € ð ÐØ—J‘J“Lò 	"‰DˆAˆqÙ�q�zØ—	‘	˜1˜a˜&Õ!ñ	"ð r3   r*   )NN)$Ú__doc__Útypingr   r   r   r   r   r   r	   Útypesr
   rC   Úspacyr   Ú
spacy.utilr   Úutilr   r   r   r   r   r?   ÚintrD   rO   rW   r]   rb   rB   r>   r+   r,   r:   Úboolr-   © r3   r1   ú<module>r—      s¯  ðñ÷ B× AÑ AÝ Û 
å Ý 'ç FÑ Fß 7ñ '7Ó&8Ø(,Ø%)Ø Ø"Ø"&Ø$(Ø,0ñRØðRà˜s™)ðRð ! ™ðRð ˜c‘]ð	Rð
 �S‰MðRð �s‰mðRð ˜3‘-ðRð ˜S‘MðRð ˜t C™yÑ)ðRð óRñp '7Ó&8Ø(,Ø%)Ø Ø"Ø"&Ø$(ñRØðRà˜s™)ðRð ! ™ðRð ˜c‘]ð	Rð
 �S‰MðRð �s‰mðRð ˜3‘-ðRð ˜S‘MðRð óRñp '7Ó&8Ø(,Ø%)Ø Ø"ñ=Øð=à˜s™)ð=ð ! ™ð=ð ˜c‘]ð	=ð
 �S‰Mð=ð �s‰mð=ð ó=ñF '7Ó&8Ø(,Ø%)ñ	1Øð1à˜s™)ð1ð ! ™ð1ð ˜c‘]ð	1ð
 ó1ñl :JÓ9Kñ$Øð$Ø-1°#©Yð$àó$ðN
�zó 
ð( !Ù&6Ó&8ñØðà	ðð ðð �S‰Mð	ð
 ˜s™)ðð 	óð 	$�zð 	$¨°$°s¸C°x±.Ñ)Aó 	$ð  )-ñ	Øðà
�4˜˜S˜‘>Ñ
"ðð 
ðð ! ™ó	ð8 *.Ø#'ñ
:Øð
:à
ð
:ð ð
:ð ð	
:ð
 �t˜C ˜H‘~Ñ&ð
:ð �d˜3‘iÑ ó
:ð"Øð"Ø% d¨3°¨8¡nÑ5ð"Ø@HÈ#ÈÐPTÈÑ@Uô"r3   