o
    hm                     @   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rjd d
l Z e !e  d
S 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 ]d}g }g }	|j|g }
|
D ]N}||j |jdd  }||d |d d  }t|dksAJ |d d urM|d | nd|d< |d d ur]|d | nd|d< |	|d |d   q|	|f||< qd }||fS )Ngvar   r      )getGlyphOrderphantomIndex
variationsgetappendaxescoordinateslen)fontaxisTagstableFieldsr   vhAdvanceDeltasAndSupports
glyphOrderr   	glyphNamesupportsdeltasr   tvphantomsvOrigDeltasAndSupports r'   i/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/fontTools/varLib/hvar.py_get_advance_metrics   s&     r)   c                 C   sB   d| v r| d= dd | d j D }tt| |t}t| |t| d S )NHVARc                 S      g | ]}|j qS r'   axisTag.0axisr'   r'   r(   
<listcomp>3       zadd_HVAR.<locals>.<listcomp>fvar)r   r   r)   r   r	   r   r   getAdvanceMetricsr'   r'   r(   add_HVAR0   s
   r6   c                 C   sB   d| v r| d= t t| |t}dd | d jD }t| |t| d S )NVVARc                 S   r+   r'   r,   r.   r'   r'   r(   r1   <   r2   zadd_VVAR.<locals>.<listcomp>r3   )r   r)   r   r   r	   r   r4   r'   r'   r(   add_VVAR8   s
   r8   c           	      C   s   | du 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|vrQtd dS t| d|v r]t| |jdu rkt|jddd}n|j}|r}td| || dS 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)levelr3   zNot a variable font.vmtxTz.hvar)	overWritesuffixz	Saving %s)sysargv	fontToolsr9   fontTools.designspaceLibr:   argparseArgumentParseradd_argumentstr
parse_argsr   r   logerrorr6   r8   output_filer   infosave)	argsrD   r9   r:   rH   parseroptionsr   outfiler'   r'   r(   main@   sB   




rV   __main__)N)"fontTools.misc.roundToolsr   fontTools.ttLibr   r   fontTools.ttLib.tablesr   otfontTools.ttLib.tables.otBaser   fontTools.varLibr   r   r	   r
   r   r   fontTools.misc.fixedToolsr   fi2flfontTools.misc.cliToolsr   	functoolsr   logging	getLoggerrM   r)   r6   r8   rV   __name__rD   exitr'   r'   r'   r(   <module>   s&    
!
.