a
    ZXhy                     @   sT   d Z ddlZddlZddlZddlmZ ddlmZ ee	Z
G dd dejZdS )zTSI{0,1,2,3,5} are private tables used by Microsoft Visual TrueType (VTT)
tool to store its hinting source data.

TSI5 contains the VTT character groups.

See also https://learn.microsoft.com/en-us/typography/tools/vtt/tsi-tables
    N)safeEval   )DefaultTablec                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
table_T_S_I__5c              	   C   s   |d j }td}|| tjdkr0|  i | _t|d }||krt|| }t	dt
| d| d| d t|D ]}|| | j||< q|d S )	NZmaxpHbig   zCNumber of entries differs from the number of glyphs in the font by z (z entries vs. z	 glyphs).)	numGlyphsarray	frombytessys	byteorderbyteswapglyphGroupinglenlogwarningabsrangeZgetGlyphName)selfdatattFontr	   aZ
numEntriesdiffi r   d/var/www/viveiro_mudafortebrasil/venv/lib/python3.9/site-packages/fontTools/ttLib/tables/T_S_I__5.py	decompile   s(    



ztable_T_S_I__5.decompilec                 C   sV   |  }td}tt|D ]}|| j|| d qtjdkrN|	  |
 S )Nr   r   r   )ZgetGlyphOrderr
   r   r   appendr   getr   r   r   tobytes)r   r   Z
glyphNamesr   r   r   r   r   compile&   s    

ztable_T_S_I__5.compilec                 C   s:   t | j }|D ]"}|jd|| j| d |  qd S )N
glyphgroup)namevalue)sortedr   keysZ	simpletagnewline)r   writerr   namesZ	glyphNamer   r   r   toXML/   s    ztable_T_S_I__5.toXMLc                 C   s6   t | dsi | _|dkrd S t|d | j|d < d S )Nr   r"   r$   r#   )hasattrr   r   )r   r#   attrscontentr   r   r   r   fromXML7   s
    
ztable_T_S_I__5.fromXMLN)__name__
__module____qualname__r   r!   r*   r.   r   r   r   r   r      s   	r   )__doc__r
   loggingr   ZfontTools.misc.textToolsr    r   	getLoggerr/   r   r   r   r   r   r   <module>   s   
