o
    _hq                     @   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r|  i | _t|d }||kr:|| }t	dt
| d| d| d t|D ]}|| | j||< q>d S )	N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rangegetGlyphName)selfdatattFontr
   a
numEntriesdiffi r   S/var/www/html/myenv/lib/python3.10/site-packages/fontTools/ttLib/tables/T_S_I__5.py	decompile   s*   



ztable_T_S_I__5.decompilec                 C   sJ   |  }td}|D ]}|| j|d qtjdkr!|  | S )Nr   r   r   )	getGlyphOrderr   appendr   getr   r   r   tobytes)r   r   
glyphNamesr   	glyphNamer   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   keys	simpletagnewline)r   writerr   namesr&   r   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'   r1   r5   r   r   r   r   r      s
    	r   )__doc__r   loggingr   fontTools.misc.textToolsr    r   	getLoggerr6   r   r   r   r   r   r   <module>   s    
