o
    ‡‚¡eå  ã                   @   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   sp   |d j }t|ƒd| ksJ ‚t d¡}| |¡ tjdkr"| ¡  i | _t|ƒD ]}|| | j| 	|¡< q)d S )NÚmaxpé   ÚHÚbig)
Ú	numGlyphsÚlenÚarrayÚ	frombytesÚsysÚ	byteorderÚbyteswapÚglyphGroupingÚrangeÚgetGlyphName)ÚselfÚdataÚttFontr
   ÚaÚi© r   úN/var/www/myenv/lib/python3.10/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r'| 	¡  | 
¡ S )Nr   r   r	   )ÚgetGlyphOrderr   r   r   Úappendr   Úgetr   r   r   Útobytes)r   r   Ú
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   ÚkeysÚ	simpletagÚnewline)r   Úwriterr   ÚnamesÚ	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,   r0   r   r   r   r   r      s
    	r   )Ú__doc__ÚfontTools.misc.textToolsr   Ú r   r   r   r   r   r   r   r   Ú<module>   s    