a
    —ÆàgÆ  ã                   @   sV   d dl mZ d dlmZ d dlZe d¡Zdd„ Zdd„ Z	d	d
„ Z
dd„ Zdd„ ZdS )é    )ÚotTables)ÚdeepcopyNzfontTools.varLib.instancerc                 C   sz   g }| j d ur| j jng }|D ]*}|jdkr2 dS | |j|j|jf¡ qt| jj	g| ƒ}||v rhdS | 
|¡ dS d S )Né   TF)ÚConditionSetÚConditionTableÚFormatÚappendÚ	AxisIndexÚFilterRangeMinValueÚFilterRangeMaxValueÚ	frozensetÚFeatureTableSubstitutionÚVersionÚadd)ÚrecÚseenZconditionSetZconditionSetsZcondZ	recordKey© r   ú_/var/www/sistema_ama/venv/lib/python3.9/site-packages/fontTools/varLib/instancer/featureVars.pyÚ_featureVariationRecordIsUnique	   s    ÿ
ÿ
r   c                    sF   | j }| j}||ks(|ˆ jks(|ˆ jk r,d S t‡ fdd„||fD ƒƒS )Nc                 3   s   | ]}ˆ j |d d�V  qdS )F)ZextrapolateN)ZrenormalizeValue)Ú.0Úv©Ú	axisLimitr   r   Ú	<genexpr>.   s   z7_limitFeatureVariationConditionRange.<locals>.<genexpr>)r
   r   ÚmaximumÚminimumÚtuple)Ú	conditionr   ÚminValueÚmaxValuer   r   r   Ú$_limitFeatureVariationConditionRange"   s    ÿþýÿr    c                 C   sž  d}d}g }ddl m} |dddƒ}	| jd u rHt ¡ | _g | j_d| j_t| jjƒD �]\}
}|jdk�r4|j}|| j	}|j
}|j}| ||	¡}||j  kr¨|ks®n d}|j|ksÂ|j|k rÌd } �qZ||v �rX|| |_t||ƒ}|�r(|\}}||_
||_d}|dk�s|dk�r2| |¡ n
d } �qZqTt d |
||j¡¡ d}| |¡ qT|d u�r„|�r„|| j_|�s~d | _d}nd}|�o’| }|||fS )NTFr   )Ú NormalizedAxisTripleAndDistanceséÿÿÿÿr   zWCondition table {0} of FeatureVariationRecord {1} has unsupported format ({2}); ignored)ZfontTools.varLib.instancerr!   r   Úotr   ÚConditionCountÚ	enumerater   r	   ÚaxisTagr
   r   ÚgetÚdefaultr   r   r    r   ÚlogÚwarningÚformat)ÚrecordZrecIdxÚ
axisLimitsÚfvarAxesÚaxisIndexMapÚappliesÚ
shouldKeepZnewConditionsr!   Zdefault_tripleÚir   ZaxisIdxr&   r   r   ZtripleZnewRanger   r   Ú	universalr   r   r   Ú"_instantiateFeatureVariationRecord3   s`    





ÿÿr4   c                    sh  t | ¡ ƒ‰‡fdd„|D ƒ‰ ‡ fdd„ˆ D ƒ}d}t ƒ }g }d }t| jjƒD ]ª\}}	t|	||||ƒ\}
}}|r„t|	|ƒr„| |	¡ |
rð|sð|	jj	dksœJ ‚t
|	jƒ}t|j|	jjƒD ]4\}}t
| jj|j jƒ|_t
|jƒ| jj|j _q¶d}|rN qúqN|�r>|�r>|�s>t ¡ }t ¡ |_g |j_d|j_||_| |¡ |�rZ|| j_t|ƒ| j_n
| `d| _	d S )	Nc                    s   g | ]}|j ˆ vr|j ‘qS r   )r&   )r   Zaxis)Ú
pinnedAxesr   r   Ú
<listcomp>|   ó    z1_instantiateFeatureVariations.<locals>.<listcomp>c                    s   i | ]}|ˆ   |¡“qS r   )Úindex)r   r&   )Ú	axisOrderr   r   Ú
<dictcomp>}   r7   z1_instantiateFeatureVariations.<locals>.<dictcomp>Fi   Tr   )ÚsetZpinnedLocationr%   ÚFeatureVariationsZFeatureVariationRecordr4   r   r   r   r   r   ÚzipZSubstitutionRecordZFeatureListZFeatureRecordZFeatureIndexZFeaturer#   r   r   r$   ÚlenZFeatureVariationCount)Útabler.   r-   r/   ZfeatureVariationAppliedZuniqueRecordsZ
newRecordsZdefaultsSubstsr2   r,   r0   r1   r3   r(   r   ZdefaultRecordr   )r9   r5   r   Ú_instantiateFeatureVariationsz   sR    
ÿ


þÿÿ

r@   c                 C   sZ   dD ]P}|| vst | | jdd ƒs$qt d|¡ t| | j| d j|ƒ | |  ¡  qd S )N)ZGPOSZGSUBr<   z+Instantiating FeatureVariations of %s tableZfvar)Úgetattrr?   r)   Úinfor@   ZaxesZprune_lookups)Zvarfontr-   ZtableTagr   r   r   ÚinstantiateFeatureVariations³   s    
ÿÿrC   )ZfontTools.ttLib.tablesr   r#   Úcopyr   ÚloggingÚ	getLoggerr)   r   r    r4   r@   rC   r   r   r   r   Ú<module>   s   
G9