o
    Xεi                     @   s:   d Z ddlZddlZddlZdd Zedkre  dS dS )z3Converts a text lexicon to a gruut sqlite3 database    Nc                  C   s<  t jdd} | jddddd | jddd	d
 | jdddd
 | jdddd | jdddd |  }d}|jdkr>tj}n|jdkrFtj}t	|j
}|d |d |d |d |  i }|jdkrotj}nt|jddd}| | t|D ]r\}}zW| }|r|d sd!|vrW qd"}|jr|jd#d$\}	}}
||jkrd"}nd%|vrd&| }n|jd'd$\}	}
|r||	}	||	d(}|d)|	||
|f |d' ||	< W q ty } ztd*|d' d| |d}~ww W d   n1 sw   Y  W d   dS W d   dS 1 sw   Y  dS )+zMain entry pointzlexicon2db.py)progz--casingT)keeplowerupperzCasing to apply to words)requiredchoiceshelpz	--lexiconz8Text lexicon to read with <WORD> <PHONEME> <PHONEME> ...)r   r   z
--databasezSQLite database to writez--role
store_truez(Lexicon includes word roles (2nd column))actionr   z--empty-role_z4String used to identify empty word role (see --role))defaultr   Nr   r   z"DROP TABLE IF EXISTS word_phonemesz#DROP TABLE IF EXISTS g2p_alignmentszCREATE TABLE IF NOT EXISTS word_phonemes (id INTEGER PRIMARY KEY AUTOINCREMENT, word TEXT, pron_order INTEGER, phonemes TEXT, role TEXT);zlCREATE TABLE IF NOT EXISTS g2p_alignments (id INTEGER PRIMARY KEY AUTOINCREMENT, word TEXT, alignment TEXT);-rzutf-8)encoding;     )maxsplit:zgruut:   r   zPINSERT into word_phonemes (word, pron_order, phonemes, role) VALUES (?, ?, ?, ?)zError on line)argparseArgumentParseradd_argument
parse_argscasingstrr   r   sqlite3connectdatabaseexecutecommitlexiconsysstdinopen	enumeratestrip
startswithrolesplit
empty_roleget	Exceptionprint)parserargsword_casingconnpron_orderslexicon_fileiliner)   wordphonemes_str
pron_ordere r;   D/home/ubuntu/.local/lib/python3.10/site-packages/gruut/lexicon2db.pymain
   s   







Rr=   __main__)__doc__r   r   r#   r=   __name__r;   r;   r;   r<   <module>   s   e
