B
    Jd                 @   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.
    )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   st   |d j }t|d| ksttd}|| tjdkrD|  i | _x$t	|D ]}|| | j|
|< qTW d S )NZmaxp   Hbig)	numGlyphslenAssertionErrorarray	frombytessys	byteorderbyteswapglyphGroupingrangeZgetGlyphName)selfdatattFontr	   ai r   Q/var/www/html/venv/lib/python3.7/site-packages/fontTools/ttLib/tables/T_S_I__5.py	decompile   s    



 ztable_T_S_I__5.decompilec             C   sZ   |  }td}x,tt|D ]}|| j|| d q W tjdkrR|	  |
 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 }x*|D ]"}|jd|| j| d |  qW 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
   