B
    Jd	                 @   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&
    Support Graphite Gloc tables
    ZGlatNc             C   s   t j | | d | _d| _d S )Nr   )r   __init__	attribIds
numAttribs)selftag r   Q/var/www/html/venv/lib/python3.7/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rn| j  td| _|d@ r| j|| j d d   t	j
dkr| j  d S )Nr   IH   big)r   Z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rB| j  || j 7 }t	j
dkrd| j  | jrt	j
dkr~| j  || j 7 }t	j
dkr| 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   Zlong_formatr   r   r   set4   s    ztable_G__l_o_c.setc             C   s   |j d| jd |  d S )N
attributes)number)Z	simpletagr	   newline)r
   writerr   r   r   r   toXML8   s    ztable_G__l_o_c.toXMLc             C   s   |dkrt t|d | _d S )Nr(   r)   )intr   r	   )r
   nameattrscontentr   r   r   r   fromXML<   s    ztable_G__l_o_c.fromXMLc             C   s
   | j | S )N)r   )r
   indexr   r   r   __getitem__@   s    ztable_G__l_o_c.__getitem__c             C   s
   t | jS )N)r   r   )r
   r   r   r   __len__C   s    ztable_G__l_o_c.__len__c             C   s
   t | jS )N)iterr   )r
   r   r   r   __iter__F   s    ztable_G__l_o_c.__iter__)N)__name__
__module____qualname____doc__dependenciesr   r   r%   r'   r,   r1   r3   r4   r6   r   r   r   r   r      s   
r   )
ZfontTools.miscr   ZfontTools.misc.textToolsr    r   r   r   r   r   r   r   r   r   <module>   s   	