o
    `i                      @   sr   d dl Z d dl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ZedZdddZdd	d
ZdS )    NmakeOutputFileName)TTFont)Qu2CuPen)
TTGlyphPenzfontTools.qu2cuc                 K   s   t | }td|  |d ri nd }||d |d j |d d}d|v r)td| }| }|d	 }|D ]}	||	 }
t|}t|fi |}|
	| |j
d
d||	< q7d|d _|d rftd| td| || d S )NzConverting curves for %s
dump_stats
max_err_emhead	all_cubic)statsmax_errr
   gvarzCannot convert variable fontglyfT)dropImpliedOnCurves   z	Stats: %sz	Saving %s)r   loggerinfo
unitsPerEm
ValueErrorgetGlyphSetgetGlyphOrderr   r   drawglyphglyphDataFormatsave)
input_pathoutput_pathkwargsfontr   qu2cu_kwargsglyphSet
glyphOrderr   	glyphNamer   ttpenpen r%   Q/home/ubuntu/SoloSpeech/.venv/lib/python3.10/site-packages/fontTools/qu2cu/cli.py_font_to_cubic   s.   

r'   c           	         s  t jdd}|jddtjd |jdddd	d
 |jddddd |jddtdddd |jdddddd | }|jddddd d! |jd"d#dd$d%d! || }|jdkr]|	d& |j
scd'}n
|j
d(krkd)}nd*}tj|d+ t|jd(kr|jr|	d, |jr|j tj st  ntj s|	d-    fd.d/|jD }n|jr|jg}nd0d/ |jD }t|j
dk|j|jd1}t|j|D ]\}}t||fi | qdS )2z7Convert an OpenType font from quadratic to cubic curvesqu2cu)progz	--versionversion)actionr*   infiles+INPUTz%one or more input TTF source file(s).)nargsmetavarhelpz-vz	--verbosecountr   )r+   defaultz-ez--conversion-errorERRORgMbP?z<maxiumum approximation error measured in EM (default: 0.001))typer0   r3   r1   z-cz--all-cubicF
store_truez whether to only use cubic curves)r3   r+   r1   z-oz--output-fileNOUTPUTz&output filename for the converted TTF.)r3   r0   r1   z-dz--output-dir	DIRECTORYz-output directory where to save converted TTFsz,--conversion-error must be greater than zeroWARNINGr   INFODEBUG)levelz2-o/--output-file can't be used with multile inputsz'%s' is not a directoryc                    s"   g | ]}t j t j|qS r%   )ospathjoinbasename.0p
output_dirr%   r&   
<listcomp>o   s    z_main.<locals>.<listcomp>c                 S   s   g | ]	}t |d ddqS )Tz.cubic)	overWritesuffixr   rA   r%   r%   r&   rF   u   s    )r   r   r
   )argparseArgumentParseradd_argument	fontTools__version__floatadd_mutually_exclusive_group
parse_argsconversion_errorerrorverboseloggingbasicConfiglenr,   output_filerE   r=   r>   existsmkdirisdirdictr
   zipr'   )	argsparseroutput_parseroptionsr<   output_pathsr   r   r   r%   rD   r&   _main.   s   






rb   )N)r=   rI   rT   fontTools.misc.cliToolsr   fontTools.ttLibr   fontTools.pens.qu2cuPenr   fontTools.pens.ttGlyphPenr   rL   	getLoggerr   r'   rb   r%   r%   r%   r&   <module>   s    

 