o
    _h}
                     @   sN   d dl mZ d dlmZ ddlmZ d dlZd dlZdZG dd dejZ	dS )	    )sstruct)safeEval   )DefaultTableNz
    >        # big endian
    version: 16.16F    # Table version
    flags:        H    # bit 0: 1=long format, 0=short format
                       # bit 1: 1=attribute names, 0=no names
    numAttribs:   H    # NUmber of attributes
c                   @   s`   e Zd ZdZdgZdddZdd Zdd	 Zd
d Zdd Z	dd Z
dd Zdd Zdd ZdS )table_G__l_o_cz}Graphite Index to Glyph Atttributes table

    See also https://graphite.sil.org/graphite_techAbout#graphite-font-tables
    GlatNc                 C   s   t j | | d | _d| _d S )Nr   )r   __init__	attribIds
numAttribs)selftag r   S/var/www/html/myenv/lib/python3.10/site-packages/fontTools/ttLib/tables/G__l_o_c.pyr      s   
ztable_G__l_o_c.__init__c                 C   s   t t|| \}}| j}| `t|d@ rdnd| _| j|d t|| j|d@     t	j
dkr7| j  td| _|d@ r[| j|| j d d   t	j
dkr]| j  d S d S d S )Nr   IH   big)r   unpack2Gloc_headerflagsarray	locations	frombyteslenr
   sys	byteorderbyteswapr	   )r   datattFont_r   r   r   r   	decompile   s   &


ztable_G__l_o_c.decompilec                 C   s   t ttdt| jd> | jjdk | jd}t	j
dkr!| j  || j 7 }t	j
dkr2| j  | jrPt	j
dkr?| j  || j 7 }t	j
dkrP| j  |S )Ng      ?r   r   )versionr   r
   r   )r   packr   dictboolr	   r   typecoder
   r   r   r   tobytes)r   r   r   r   r   r   compile,   s(   







ztable_G__l_o_c.compilec                 C   s&   t |dk}t|rdnd|| _d S )Ni   r   r   )maxr   r   )r   r   long_formatr   r   r   setB   s   ztable_G__l_o_c.setc                 C   s   |j d| jd |  d S )N
attributes)number)	simpletagr
   newline)r   writerr   r   r   r   toXMLF   s   ztable_G__l_o_c.toXMLc                 C   s"   |dkrt t|d | _d S d S )Nr+   r,   )intr   r
   )r   nameattrscontentr   r   r   r   fromXMLJ   s   ztable_G__l_o_c.fromXMLc                 C   s
   | j | S N)r   )r   indexr   r   r   __getitem__N      
ztable_G__l_o_c.__getitem__c                 C   
   t | jS r6   )r   r   r   r   r   r   __len__Q   r9   ztable_G__l_o_c.__len__c                 C   r:   r6   )iterr   r;   r   r   r   __iter__T   r9   ztable_G__l_o_c.__iter__r6   )__name__
__module____qualname____doc__dependenciesr   r    r'   r*   r0   r5   r8   r<   r>   r   r   r   r   r      s    
r   )
fontTools.miscr   fontTools.misc.textToolsr    r   r   r   r   r   r   r   r   r   <module>   s    	