U
    #vhm                     @   s   d dl mZ d dlmZmZ d dlmZ d dlm	Z	 d dl
mZmZmZ d dl
mZmZ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 Zdd Zdd ZdddZedkrd d
l Z e !e  d
S )    )noRound)TTFontnewTable)otTables)OTTableWriter)HVAR_FIELDSVVAR_FIELDS
_add_VHVAR)buildermodelsvarStore)fixedToFloat)makeOutputFileName)partialNzfontTools.varLib.avarc                 C   s   | d }i }|   }|j}|D ]}g }g }	|j|g }
|
D ]}||j |jdd  }||d |d d  }t|dkst|d d k	r|d | nd|d< |d d k	r|d | nd|d< |	|d |d   q<|	|f||< qd }||fS )Ngvar   r      )	ZgetGlyphOrderphantomIndex
variationsgetappendaxesZcoordinateslenAssertionError)fontaxisTagsZtableFieldsr   ZvhAdvanceDeltasAndSupportsZ
glyphOrderr   Z	glyphNameZsupportsZdeltasr   tvZphantomsZvOrigDeltasAndSupports r   9/tmp/pip-unpacked-wheel-1ufboor8/fontTools/varLib/hvar.py_get_advance_metrics   s&      r    c                 C   sB   d| kr| d= dd | d j D }tt| |t}t| |t| d S )NZHVARc                 S   s   g | ]
}|j qS r   ZaxisTag.0Zaxisr   r   r   
<listcomp>3   s     zadd_HVAR.<locals>.<listcomp>fvar)r   r   r    r   r	   r   r   ZgetAdvanceMetricsr   r   r   add_HVAR0   s
    r'   c                 C   sB   d| kr| d= t t| |t}dd | d jD }t| |t| d S )NZVVARc                 S   s   g | ]
}|j qS r   r!   r"   r   r   r   r$   <   s     zadd_VVAR.<locals>.<listcomp>r%   )r   r    r   r   r	   r   r&   r   r   r   add_VVAR8   s
    r(   c           	      C   s   | dkrddl }|jdd } ddlm} ddlm} ddl}|jddd}|jd	d
dd |jddt	dd |
| }|dd t|j}d|krtd dS t| d|krt| |jdkrt|jddd}n|j}|rtd| || dS )z"Add `HVAR` table to variable font.Nr   r   )configLogger)DesignSpaceDocumentzfonttools varLib.hvarz'Add `HVAR` table from to variable font.)descriptionr   zvarfont.ttfzVariable-font file.)metavarhelpz-oz--output-filezOutput font file name.)typer-   WARNING)levelr%   zNot a variable font.ZvmtxTz.hvar)Z	overWritesuffixz	Saving %s)sysargvZ	fontToolsr)   ZfontTools.designspaceLibr*   argparseArgumentParseradd_argumentstr
parse_argsr   r   logerrorr'   r(   Zoutput_filer   infosave)	argsr2   r)   r*   r4   parseroptionsr   outfiler   r   r   main@   s@    




rA   __main__)N)"ZfontTools.misc.roundToolsr   ZfontTools.ttLibr   r   ZfontTools.ttLib.tablesr   ZotZfontTools.ttLib.tables.otBaser   ZfontTools.varLibr   r   r	   r
   r   r   ZfontTools.misc.fixedToolsr   Zfi2flZfontTools.misc.cliToolsr   	functoolsr   logging	getLoggerr9   r    r'   r(   rA   __name__r2   exitr   r   r   r   <module>   s"   
!
.