a
    Qh                     @   s   d dl mZ d dlmZ dd Zdd Zdd Zd	d
 Zdd Z	dd Z
dd Zd(ddZeej_d)ddZdd Zeej_d*ddZdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'S )+    )ttLib)otTablesc                 C   s&   t  }dd | D \|_|_|_|S )Nc                 S   s   g | ]}t |qS  float.0vr   r   Q/var/www/sistema_ama/venv/lib/python3.9/site-packages/fontTools/varLib/builder.py
<listcomp>	       z&buildVarRegionAxis.<locals>.<listcomp>)otVarRegionAxis
StartCoord	PeakCoordEndCoord)axisSupportselfr   r   r
   buildVarRegionAxis   s    r   c                 C   s,   t  }| |_dd |D \|_|_|_|S )Nc                 S   s   g | ]}t |qS r   r   r   r   r   r
   r      r   z,buildSparseVarRegionAxis.<locals>.<listcomp>)r   SparseVarRegionAxis	AxisIndexr   r   r   )	axisIndexr   r   r   r   r
   buildSparseVarRegionAxis   s    r   c                    s\   t  fdd|  D s(J d|  ft }g |_ D ]}|jt| |d q:|S )Nc                 3   s   | ]}| v V  qd S Nr   r   tagaxisTagsr   r
   	<genexpr>   r   z!buildVarRegion.<locals>.<genexpr>Unknown axis tag found.r   r   r   )allkeysr   	VarRegionr   appendr   get)supportr   r   r   r   r   r
   buildVarRegion   s    r'   c              	      s|   t  fdd|  D s(J d|  ft }g |_t D ],\}}|| vrPq>|jt|| |d q>t	|j|_
|S )Nc                 3   s   | ]}| v V  qd S r   r   r   r   r   r
   r   "   r   z'buildSparseVarRegion.<locals>.<genexpr>r   r    )r!   r"   r   SparseVarRegionr   	enumerater$   r   r%   lenSparseRegionCount)r&   r   r   ir   r   r   r
   buildSparseVarRegion!   s    r-   c                 C   sD   t  }t||_g |_| D ]}|jt|| qt|j|_|S r   )r   VarRegionListr*   RegionAxisCountRegionr$   r'   RegionCountsupportsr   r   r&   r   r   r
   buildVarRegionList3   s    
r4   c                 C   sD   t  }t||_g |_| D ]}|jt|| qt|j|_|S r   )r   SparseVarRegionListr*   r/   r0   r$   r-   r1   r2   r   r   r
   buildSparseVarRegionList=   s    
r6   c                    s    fdd|D S )Nc                    s   g | ]} | qS r   r   r   r,   lstr   r
   r   H   r   z _reorderItem.<locals>.<listcomp>r   )r9   mappingr   r8   r
   _reorderItemG   s    r;   Fc                 C   s`  | j }| j}dg| }|D ]&}dd |D }dd t||D }qdd |D }tdd |D }|rg }	|	dd t|D  |	d	d t|D  |	d
d t|D  t||	}t| j|	| _t| j| _ t	t|D ]}
t||
 |	||
< q|r0t
dd t|D ddd | _|  jdO  _n t
dd t|D ddd | _t| j| _ | S )Nr   c                 S   s   g | ]}||d k    qS ))
bit_lengthr7   r   r   r
   r   U   r   z.VarData_calculateNumShorts.<locals>.<listcomp>c                 S   s   g | ]}t | qS r   )max)r   pairr   r   r
   r   V   r   c                 S   s    g | ]}|r|d  d? ndqS )      r   r   r   br   r   r
   r   `   r   c                 s   s   | ]}|d kV  qdS    Nr   rB   r   r   r
   r   c   r   z-VarData_calculateNumShorts.<locals>.<genexpr>c                 s   s   | ]\}}|d kr|V  qdS rD   r   r   r,   rC   r   r   r
   r   h   r   c                 s   s   | ]\}}|d kr|V  qdS rD   r   rF   r   r   r
   r   i   r   c                 s   s   | ]\}}|d kr|V  qdS    Nr   rF   r   r   r
   r   j   r   c                 s   s   | ]\}}|d kr|V  qdS rD   r   rF   r   r   r
   r   t   r   r<   )defaultrH      c                 s   s   | ]\}}|d kr|V  qdS rG   r   rF   r   r   r
   r   y   r   )VarRegionCountItemzipanyextendr)   r;   VarRegionIndexr*   ranger>   	NumShorts)r   optimizecountitemsZbit_lengthsitemblZbyte_lengths	longWordsr:   r,   r   r   r
   VarData_calculateNumShortsK   s4    


rY   Tc                 C   s   t | |dS )zDeprecated name for VarData_calculateNumShorts() which
    defaults to optimize=True.  Use varData.calculateNumShorts()
    or varData.optimize().rS   rY   )r   rS   r   r   r
   VarData_CalculateNumShorts   s    r\   c                 C   s   t | ddS )NTrZ   r[   )r   r   r   r
   VarData_optimize   s    r]   c                 C   st   t  }t| |_t|j }|_g  }|_|rX|D ]"}t||ksHJ |t| q4t|j|_|j	|d |S )NrZ   )
r   VarDatalistrP   r*   rK   rL   r$   	ItemCountcalculateNumShorts)varRegionIndicesrU   rS   r   regionCountrecordsrV   r   r   r
   buildVarData   s    

re   c                 C   s.   t  }d|_| |_t||_t|j|_|S NrH   )r   VarStoreFormatr.   r_   r^   r*   VarDataCount)varRegionListZvarDataListr   r   r   r
   buildVarStore   s    
rk   c                 C   sn   t  }d|_t| |_t|j }|_g  }|_|r^|D ]"}t||ksNJ |t| q:t|j|_	|S rf   )
r   MultiVarDatarh   r_   rP   r*   rK   rL   r$   r`   )rb   rU   r   rc   rd   rV   r   r   r
   buildMultiVarData   s    

rm   c                 C   s.   t  }d|_| |_t||_t|j|_|S rf   )r   MultiVarStorerh   r5   r_   rl   r*   MultiVarDataCount)rj   ZmultiVarDataListr   r   r   r
   buildMultiVarStore   s    
rp   c                 C   s"   t  }dd t|| D |_|S )Nc                 S   s   i | ]\}}||qS r   r   )r   gr	   r   r   r
   
<dictcomp>   r   z"buildVarIdxMap.<locals>.<dictcomp>)r   	VarIdxMaprM   r:   )varIdxes
glyphOrderr   r   r   r
   buildVarIdxMap   s    rv   c                 C   sJ   t | }tdd t|D r"d S t }||_t|dkr@dnd|_|S )Nc                 s   s   | ]\}}||kV  qd S r   r   )r   r,   r	   r   r   r
   r      r   z(buildDeltaSetIndexMap.<locals>.<genexpr>  rH   r   )r_   r!   r)   r   DeltaSetIndexMapr:   r*   rh   )rt   r:   r   r   r   r
   buildDeltaSetIndexMap   s    ry   c                 C   s&   t  }d|_| d? |_| d@ |_|S )NrJ      rw   )r   DeviceDeltaFormat	StartSizeEndSize)varIdxr   r   r   r
   buildVarDevTable   s
    

r   N)F)T)T)	fontToolsr   fontTools.ttLib.tablesr   r   r   r   r'   r-   r4   r6   r;   rY   r^   ra   r\   r]   rS   re   rk   rm   rp   rv   ry   r   r   r   r   r
   <module>   s(   


5

	
