U
    Dvf                     @   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|ksRtd| }| }|d	 }|D ]:}	||	 }
t|}t|f|}|
	| |j
d
d||	< qnd|d _|d rtd| td| || d S )NzConverting curves for %s
dump_stats
max_err_emhead	all_cubic)statsZmax_errr
   ZgvarzCannot convert variable fontglyfT)ZdropImpliedOnCurves   z	Stats: %sz	Saving %s)r   loggerinfoZ
unitsPerEmAssertionErrorZgetGlyphSetZgetGlyphOrderr   r   ZdrawglyphZglyphDataFormatsave)
input_pathoutput_pathkwargsfontr   Zqu2cu_kwargsZglyphSetZ
glyphOrderr   Z	glyphNamer   ZttpenZpen r   7/tmp/pip-unpacked-wheel-qlge9rch/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sd&}n|jd'krd(}nd)}t	j
|d* t|jd'kr|jr|d+ |jrJ|j tj st  ntj s4|d,    fd-d.|jD }n"|jr\|jg}nd/d. |jD }t|jdk|j|jd0}t|j|D ]\}}t||f| qdS )1z7Convert an OpenType font from quadratic to cubic curvesZqu2cu)progz	--versionversion)actionr   infiles+Z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))typer    r#   r!   z-cz--all-cubicF
store_truez whether to only use cubic curves)r#   r   r!   z-oz--output-fileNZOUTPUTz&output filename for the converted TTF.)r#   r    r!   z-dz--output-dirZ	DIRECTORYz-output directory where to save converted TTFs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>k   s    zmain.<locals>.<listcomp>c                 S   s   g | ]}t |d ddqS )Tz.cubic)Z	overWritesuffixr   r/   r   r   r   r4   q   s   )r   r   r
   )argparseArgumentParseradd_argument	fontTools__version__floatadd_mutually_exclusive_group
parse_argsverboseloggingbasicConfiglenr   Zoutput_fileerrorr3   r+   r,   existsmkdirisdirdictZconversion_errorr
   zipr   )	argsparserZoutput_parseroptionsr*   Zoutput_pathsr   r   r   r   r2   r   main-   s    




rK   )N)N)r+   r6   r?   ZfontTools.misc.cliToolsr   ZfontTools.ttLibr   ZfontTools.pens.qu2cuPenr   ZfontTools.pens.ttGlyphPenr   r9   	getLoggerr   r   rK   r   r   r   r   <module>   s   

