U
    wh2                     @   sB   d Z ddlmZ ddlmZ ddlZddlZG dd dejZdS )z TSI{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
    )safeEval   )DefaultTableNc                   @   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   sp   |d j }t|d| ksttd}|| tjdkrD|  i | _t	|D ]}|| | j|
|< qRd S )NZmaxp   Hbig)	numGlyphslenAssertionErrorarrayZ	frombytessys	byteorderbyteswapglyphGroupingrangeZgetGlyphName)selfdatattFontr	   ai r   C/tmp/pip-unpacked-wheel-cdq4c5o5/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   fromXML,   s
    
ztable_T_S_I__5.fromXMLN)__name__
__module____qualname__r   r   r&   r*   r   r   r   r   r      s   	r   )__doc__ZfontTools.misc.textToolsr    r   r   r   r   r   r   r   r   <module>   s
   