a
    —Æàg2  ã                   @   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J ‚t d¡}| |¡ tjdkrD| ¡  i | _t|ƒD ]}|| | j| 	|¡< qRd S )NZmaxpé   ÚHÚbig)
Ú	numGlyphsÚlenÚarrayÚ	frombytesÚsysÚ	byteorderÚbyteswapÚglyphGroupingÚrangeZgetGlyphName)ÚselfÚdataÚttFontr	   ÚaÚi© r   úX/var/www/sistema_ama/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   Ú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
   