o
    h;                  	   @   s  d 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	 g dZ
e Zejded	d
d e Zg ZejD ]ZeeZee  W d   n1 sPw   Y  q8g ZdZeeek r+ee Zeedk rqed ZqZeeeee d  Ze d Zed Zee ZedZ e d  dksJ de d  dksJ ded Zee Ze!dsJ ded Zeeed  Z"ee"dksJ ed Zdd e"D Z"e#dd e$e"e
D sJ dedd\Z%Z&ee%Z'eeZ(e(dd Z)dZ*e	e% e&krdZ*e'de)de( f e%e*gdd e"D  Z"e+e" eeek sag d Z,d!d e-ee,ee
ee, D Z.e,d"d e.D  Z.e/eZe.ge Zd#d eD Z0e0D ]Ze1e q\dS )$a  
Turn the ETE results into markdown

Parses blocks like this from the model eval script

2022-01-14 01:23:34 INFO: End to end results for af_afribooms models on af_afribooms test data:
Metric     | Precision |    Recall |  F1 Score | AligndAcc
-----------+-----------+-----------+-----------+-----------
Tokens     |     99.93 |     99.92 |     99.93 |
Sentences  |    100.00 |    100.00 |    100.00 |
Words      |     99.93 |     99.92 |     99.93 |
UPOS       |     97.97 |     97.96 |     97.97 |     98.04
XPOS       |     93.98 |     93.97 |     93.97 |     94.04
UFeats     |     97.23 |     97.22 |     97.22 |     97.29
AllTags    |     93.89 |     93.88 |     93.88 |     93.95
Lemmas     |     97.40 |     97.39 |     97.39 |     97.46
UAS        |     87.39 |     87.38 |     87.38 |     87.45
LAS        |     83.57 |     83.56 |     83.57 |     83.63
CLAS       |     76.88 |     76.45 |     76.66 |     76.52
MLAS       |     72.28 |     71.87 |     72.07 |     71.94
BLEX       |     73.20 |     72.79 |     73.00 |     72.86


Turns them into a markdown table.

Included is an attempt to mark the default packages with a green check.
  <i class="fas fa-check" style="color:#33a02c"></i>
    N)pretty_langcode_to_lang)short_name_to_treebank)RESULTS_STRING)default_treebanks)Tokens	SentencesWordsUPOSXPOSUFeatsAllTagsLemmasUASLASCLASMLASBLEX	filenames+zWhich file(s) to read)typenargshelp   |Metriczoutput format changed?   zF1 Scorez-----   c                 C   s   g | ]}| d qS )r   )split.0x r!   d/var/www/html/env_mimamsha/lib/python3.10/site-packages/stanza/utils/training/compose_ete_results.py
<listcomp>L   s    r#   c                 c   s$    | ]\}}|d    |kV  qdS )r   Nstrip)r   r    yr!   r!   r"   	<genexpr>M   s   " r'   _- z2<i class="fas fa-check" style="color:#33a02c"></i>z[%s](%s)z+https://github.com/UniversalDependencies/%sc                 C   s   g | ]}|d    qS )r   r$   r   r!   r!   r"   r#   W   s    )z&#8203;Macro Avg&#8203;r,   r+   c                    s*   g | ] t  fd dtD tt qS )c                 3   s    | ]	}t |  V  qd S )N)floatr   ir!   r"   r'   \   s    z<listcomp>.<genexpr>)sumblockslen)r   r!   r.   r"   r#   \   s   * c                 C   s   g | ]}d | qS )z%.2fr!   r   r!   r!   r"   r#   ]   s    c                 C   s   g | ]	}d d | qS )z|%s|z  |  )joinr   r!   r!   r"   r#   a   s    )2__doc__argparsestanza.models.common.constantr   +stanza.models.common.short_name_to_treebankr   stanza.utils.training.run_eter   !stanza.resources.default_packagesr   EXPECTED_ORDERArgumentParserparseradd_argumentstr
parse_argsargslinesr   filenameopenfinextend	readlinesr1   indexr2   linefindr%   r   
short_namepieces
startswithblockallziplcodeshort_datasetlanguagetreebanklong_dataset	checkmarkappendPREFIXrangeavgsortedchartprintr!   r!   r!   r"   <module>   st    


 &
($
