
    Ph                     V    d dl mZ ddlmZ d dlZd dlZ G d dej                        Zy)    )safeEval   )DefaultTableNc                   (    e Zd ZdZd Zd Zd Zd Zy)table_L_T_S_H_a_  Linear Threshold table

    The ``LTSH`` table contains per-glyph settings indicating the ppem sizes
    at which the advance width metric should be scaled linearly, despite the
    effects of any TrueType instructions that might otherwise alter the
    advance width.

    See also https://learn.microsoft.com/en-us/typography/opentype/spec/ltsh
    c                 P   t        j                  d|d d       \  }}|dd  }|dk(  s
J d|z         t        |      |z  dk  sJ d       t        j                  d      }|j	                  |       i | _        t        |      D ]#  }||   | j
                  |j                  |      <   % y )N>HH   r   zunknown version: %sz#numGlyphs doesn't match data lengthB)structunpacklenarray	frombytesyPelsrangegetGlyphName)selfdatattFontversion	numGlyphsr   is          jC:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\site-packages\fontTools/ttLib/tables/L_T_S_H_.py	decompileztable_L_T_S_H_.decompile   s    #]]5$r(;ABx!|<2W<<|D	I%*Q,QQ* C 
y!A16qDJJv**1-. "    c                 :   d}t        | j                  j                               }t        |      }dg|z  }|D ]#  }| j                  |   ||j	                  |      <   % t        j
                  d|      }t        j                  d||      |j                         z   S )Nr   r   r	   )	listr   keysr   
getGlyphIDr   r   packtobytes)r   r   r   namesr   r   names          r   compileztable_L_T_S_H_.compile#   s    TZZ__&'J	i D-1ZZ-=E&##D)* C'{{5'95GGr   c                     t        | j                  j                               }|D ]3  }|j                  d|| j                  |          |j	                          5 y )NyPel)r$   value)sortedr   r   	simpletagnewline)r   writerr   r#   r$   s        r   toXMLztable_L_T_S_H_.toXML/   sI    tzz()DV$djj6FGNN r   c                 r    t        | d      si | _        |dk7  ry t        |d         | j                  |d   <   y )Nr   r'   r(   r$   )hasattrr   r   )r   r$   attrscontentr   s        r   fromXMLztable_L_T_S_H_.fromXML5   s8    tW%DJ6>$,U7^$<

5=!r   N)__name__
__module____qualname____doc__r   r%   r-   r2    r   r   r   r      s    :
H=r   r   )fontTools.misc.textToolsr    r   r   r   r   r7   r   r   <module>r:      s#    -   /=\.. /=r   