o
    6ti                  
   @   sl   d dl Z d dlZd dlZG dd dZdd Zdededed	ed
df
ddZdddZe	dkr4e  dS dS )    Nc                   @   s   e Zd Zdd ZdS )FunctionTagc                 C   s
   || _ d S )N)value)selfr    r   [/home/ubuntu/.local/lib/python3.10/site-packages/lm_eval/tasks/afrobench/ntrex/gen_utils.py__init__   s   
zFunctionTag.__init__N)__name__
__module____qualname__r   r   r   r   r   r      s    r   c                 C   s   d| }||  d| dd||  dd||  d||  d| dd	||  d
||  dd||  d||  d||  d| d	d||  d||  d
||  dd}||  S )N	sentence_z: {{z}} 
English: z English: {{sentence_eng_Latn}} 
z: z6You are a translation expert. Translate the following z sentences to English 
z}}
English: zKYou are a translation expert. Translate the following English sentences to z" 
English: {{sentence_eng_Latn}} 
zAs a z/ and English linguist, translate the following zD and English linguist, translate the following English sentences to )prompt_1prompt_1_reverseprompt_2prompt_2_reverseprompt_3prompt_3_reverser   )modelang	lang_dictlanguage_column_name
prompt_mapr   r   r   prompt_func   s2   
r   
output_dir	overwriter   reversereturnc                 C   sd  g }i ddddddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2}|  D ]}z|sd3| d4}d3| d5| }d6}	|	| |d7t|||d8}
tj|  d9| d:d;d< t|  d9| d=| |rd>nd?d@dA}|dB tj|
|d;dC W dD   n1 sw   Y  nadE| dF}dE| dG| }d6}	|	| |dH| t| dI||d8}
tj|  d9| dJd;d< t|  d9| dK| |rd>nd?d@dA}|dB tj|
|d;dC W dD   n	1 s	w   Y  W qM ty   |	| Y qMw t
|dLkr0tdMdN| dDS )Oz
    Generate a yaml file for each language.

    :param output_dir: The directory to output the files to.
    :param overwrite: Whether to overwrite files if they already exist.
    afr_Latn	Afrikaansamh_EthiAmharicarb_ArabArabicbem_LatnBembaewe_LatnEwefra_LatnFrenchhau_LatnHausaibo_LatnIgbokin_LatnKinyarwandamey_ArabzHassaniya Arabicmlg_LatnMalagasymsa_LatnMalaynde_LatnzNorth Ndebelenso_LatnzNorthern Sothonya_LatnChichewaorm_EthiOromoshi_Arab	TachelhitzShona (Latin)SomaliSwatiSwahiliTamilTeluguTigrinyaTonganTswanaUrduVendaWolofXhosaYorubaZulu)sna_Latnsom_Latnssw_Latnswa_Latntam_Tamltel_Telutir_Ethiton_Latntsn_Latnurd_Arabven_Latnwol_Latnxho_Latnyor_Latnzul_Latnntrex_z-eng_Latn.yamlz
-eng_Latn_ntrexsentence_eng_Latn)includedataset_nametaskdoc_to_targetdoc_to_text/z/african-englishT)exist_okz/african-english/wxutf8)encodingz# Generated by utils.py
)allow_unicodeNzntrex_eng_Latn-z.yaml_r   _reversez/english-africanz/english-african/r   zJFiles were not created because they already exist (use --overwrite flag): z, )keysr   osmakedirsopenwriteyamldumpFileExistsErrorappendlenjoin)r   r   r   r   err	languagesr   	file_name	task_nameyaml_templateyaml_detailsfr   r   r   gen_lang_yamls!   s   	
#




r{   c                  C   sz   t  } | jddddd | jdddd	 | jd
dg ddd | jddddgdd |  }t|j|j|j|jd dS )z9Parse CLI args and generate language-specific yaml files.z--overwriteT
store_truez%Overwrite files if they already exist)defaultactionhelpz--output-dirz./z Directory to write yaml files to)r}   r   z--moder   )r   r   r   zPrompt number)r}   choicesr   z	--reverseFz!Reverse the translation direction)r   r   r   r   N)	argparseArgumentParseradd_argument
parse_argsr{   r   r   r   r   )parserargsr   r   r   main   s>   
r   __main__)r   N)
r   rj   rn   r   r   strboolr{   r   r   r   r   r   r   <module>   s    
e$
