a
    ¥Q•h  ã                   @   s,  d dl Z G dd„ deƒZG dd„ deƒZG dd„ deƒZG dd	„ d	eƒZG d
d„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZ	G dd„ deƒZ
G dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG d d!„ d!eƒZG d"d#„ d#eƒZG d$d%„ d%eƒZdS )&é    Nc                   @   s   e Zd ZdZdS )ÚVarLibErrorz%Base exception for the varLib module.N©Ú__name__Ú
__module__Ú__qualname__Ú__doc__© r   r   úP/var/www/sistema_ama/venv/lib/python3.9/site-packages/fontTools/varLib/errors.pyr      s   r   c                   @   s   e Zd ZdZdS )ÚVarLibValidationErrorz>Raised when input data is invalid from varLib's point of view.Nr   r   r   r   r	   r
      s   r
   c                   @   sN   e Zd ZdZddd„Zedd„ ƒZdd„ Zed	d
„ ƒZedd„ ƒZ	dd„ Z
dS )ÚVarLibMergeErrorz=Raised when input data cannot be merged into a variable font.Nc                 K   s8   || _ |si }d|v r(|d | _|d= ng | _|| _d S )NÚstack)Úmergerr   Úcause©Úselfr   Úkwargsr   r   r	   Ú__init__   s    
zVarLibMergeError.__init__c                 C   s   | j S ©N)r   ©r   r   r   r	   Úreason   s    zVarLibMergeError.reasonc                 C   sd   | j d urZ| j j| }d|v r6|d  ¡ r6|d  ¡ S t|jdƒrZt|jjdƒrZ|jjjS d|› �S )NÚnameÚfilezmaster number )r   ÚttfsZgetBestFullNameÚhasattrÚreaderr   r   )r   ÚixÚttfr   r   r	   Ú_master_name   s    

zVarLibMergeError._master_namec                    sh   dˆ j v rddˆ j v rd‡ fdd„ˆ j d D ƒ d¡}ˆ  |¡}dˆ j v r\|› dˆ j d › d�}||fS d	S )
NÚexpectedÚgotc                    s   g | ]}|ˆ j d  k‘qS )r   )r   ©Ú.0Úxr   r   r	   Ú
<listcomp>*   ó    z-VarLibMergeError.offender.<locals>.<listcomp>FÚlocationú (ú))NN©r   Úindexr   )r   r)   Zmaster_namer   r   r	   Úoffender'   s    ÿ

zVarLibMergeError.offenderc                 C   sT   d| j v rPd| j v rP| j\}}| j d | }d| jd › d| j d ›d|›d�S dS )	Nr   r   zExpected to see r   ú==z, instead saw Ú
Ú )r   r*   r   )r   Úoffender_indexr*   r   r   r   r	   Údetails3   s
    
$zVarLibMergeError.detailsc                 C   s\   | j \}}d}|rd|› d�}d t| jƒ¡}tjd| j› d|› �dd�}d| | | j S )	Nr-   z!

The problem is likely to be in z:
z"Couldn't merge the fonts, because z:. This happened while performing the following operation: éN   )Úwidthz

)r*   ÚjoinÚreversedr   ÚtextwrapÚfillr   r/   )r   r.   r*   r%   ÚcontextÚbasicr   r   r	   Ú__str__;   s    

ÿýzVarLibMergeError.__str__)N)r   r   r   r   r   Úpropertyr   r   r*   r/   r8   r   r   r   r	   r      s   

	

r   c                       s$   e Zd ZdZe‡ fdd„ƒZ‡  ZS )ÚShouldBeConstantz9some values were different, but should have been the samec                    sÄ   t ƒ j}ˆ jd dks ˆ jd u r$|S ˆ jd dks6J ‚ˆ j\}}ˆ jj| }t‡ fdd„ˆ jjD ƒƒ}dd„ |ˆ jd  jjj	D ƒ}dd„ |ˆ jd  jjj	D ƒ}|d	d
 
|¡› dd
 
|¡› d� S )Nr   z.FeatureCountc                 3   s>   | ]6}ˆ j d  |v r|ˆ j d   jjjˆ jd kr|V  qdS )éÿÿÿÿr   N)r   ÚtableÚFeatureListÚFeatureCountr   )r!   r   r   r   r	   Ú	<genexpr>V   s   ÿýz+ShouldBeConstant.details.<locals>.<genexpr>c                 S   s   g | ]
}|j ‘qS r   ©Ú
FeatureTagr    r   r   r	   r#   ^   s   ÿz,ShouldBeConstant.details.<locals>.<listcomp>r;   c                 S   s   g | ]
}|j ‘qS r   r@   r    r   r   r	   r#   b   s   ÿz2
Incompatible features between masters.
Expected: z, z.
Got: z.
)Úsuperr/   r   r   r*   r   Únextr<   r=   ÚFeatureRecordr2   )r   Zbasic_messager.   Ú_Zbad_ttfZgood_ttfZgood_featuresZbad_features©Ú	__class__r   r	   r/   L   s,    
þþþÿþÿzShouldBeConstant.details)r   r   r   r   r9   r/   Ú__classcell__r   r   rF   r	   r:   I   s   r:   c                   @   s(   e Zd ZdZedd„ ƒZedd„ ƒZdS )Ú
FoundANonezAone of the values in a list was empty when it shouldn't have beenc                 C   s(   dd„ | j d D ƒ d¡}||  |¡fS )Nc                 S   s   g | ]}|d u ‘qS r   r   r    r   r   r	   r#   r   r$   z'FoundANone.offender.<locals>.<listcomp>r   Tr(   ©r   r)   r   r   r	   r*   p   s    zFoundANone.offenderc                 C   s&   | j | j }}|d › d|d › d�S ©Nr   r+   r   r,   ©r   r   ©r   r   r   r   r   r	   r/   u   s    zFoundANone.detailsN©r   r   r   r   r9   r*   r/   r   r   r   r	   rI   m   s
   
rI   c                   @   s(   e Zd ZdZedd„ ƒZedd„ ƒZdS )ÚNotANonezBone of the values in a list was not empty when it should have beenc                 C   s(   dd„ | j d D ƒ d¡}||  |¡fS )Nc                 S   s   g | ]}|d u‘qS r   r   r    r   r   r	   r#   €   r$   z%NotANone.offender.<locals>.<listcomp>r   Tr(   rJ   r   r   r	   r*   ~   s    zNotANone.offenderc                 C   s&   | j | j }}|d › d|d › d�S rK   rL   rM   r   r   r	   r/   ƒ   s    zNotANone.detailsNrN   r   r   r   r	   rO   {   s
   
rO   c                   @   s   e Zd ZdZdS )ÚMismatchedTypeszdata had inconsistent typesNr   r   r   r   r	   rP   ‰   s   rP   c                   @   s   e Zd ZdZdS )ÚLengthsDifferz*a list of objects had inconsistent lengthsNr   r   r   r   r	   rQ   �   s   rQ   c                   @   s   e Zd ZdZdS )Ú
KeysDifferz$a list of objects had different keysNr   r   r   r   r	   rR   ‘   s   rR   c                   @   s   e Zd ZdZdS )ÚInconsistentGlyphOrderz0the glyph order was inconsistent between mastersNr   r   r   r   r	   rS   •   s   rS   c                   @   s   e Zd ZdZdS )ÚInconsistentExtensionsz6the masters use extension lookups in inconsistent waysNr   r   r   r   r	   rT   ™   s   rT   c                       s.   e Zd ZdZd‡ fdd„	Zedd„ ƒZ‡  ZS )ÚUnsupportedFormatz6an OpenType subtable (%s) had a format I didn't expectNc                    s&   t ƒ j|fi |¤Ž | js"dg| _d S )Nz.Format)rB   r   r   r   rF   r   r	   r       s    zUnsupportedFormat.__init__c                 C   s4   | j | jd  }d| jv r0|d| jd ›d�7 }|S )NÚsubtableÚvaluer&   r'   )r   r   )r   Úsr   r   r	   r   ¥   s    
zUnsupportedFormat.reason)N)r   r   r   r   r   r9   r   rH   r   r   rF   r	   rU   �   s   rU   c                   @   s   e Zd ZdZdS )ÚInconsistentFormatszBan OpenType subtable (%s) had inconsistent formats between mastersNr   r   r   r   r	   rY   ­   s   rY   c                   @   s   e Zd ZdS )ÚVarLibCFFMergeErrorN)r   r   r   r   r   r   r	   rZ   ±   s   rZ   c                   @   s   e Zd ZdZdd„ ZdS )ÚVarLibCFFDictMergeErrorz/Raised when a CFF PrivateDict cannot be merged.c                 C   s6   d|› d|› d�}|D ]}|d|› �7 }q|f| _ d S )NzFor the Private Dict key 'z!', the default font value list:
	z5
had a different number of values than a region font:z
	©Úargs)r   ÚkeyrW   ÚvaluesÚ	error_msgZregion_valuer   r   r	   r   ¸   s    ÿÿz VarLibCFFDictMergeError.__init__N©r   r   r   r   r   r   r   r   r	   r[   µ   s   r[   c                   @   s   e Zd ZdZdd„ ZdS )ÚVarLibCFFPointTypeMergeErrorzKRaised when a CFF glyph cannot be merged because of point type differences.c                 C   s0   d|› d|› d|› d|› d|› d�}|f| _ d S )NúGlyph 'ú': 'z' at point index ú in master index z+ differs from the default font point type 'ú'r\   )r   Z
point_typeZpt_indexÚm_indexÚdefault_typeÚ
glyph_namer`   r   r   r	   r   Å   s    ÿþÿz%VarLibCFFPointTypeMergeError.__init__Nra   r   r   r   r	   rb   Â   s   rb   c                   @   s   e Zd ZdZdd„ ZdS )ÚVarLibCFFHintTypeMergeErrorzJRaised when a CFF glyph cannot be merged because of hint type differences.c                 C   s0   d|› d|› d|› d|› d|› d�}|f| _ d S )Nrc   rd   z' at index re   z* differs from the default font hint type 'rf   r\   )r   Z	hint_typeZ	cmd_indexrg   rh   ri   r`   r   r   r	   r   Ñ   s    ÿþÿz$VarLibCFFHintTypeMergeError.__init__Nra   r   r   r   r	   rj   Î   s   rj   c                   @   s   e Zd ZdZdS )ÚVariationModelErrorz(Raised when a variation model is faulty.Nr   r   r   r   r	   rk   Ú   s   rk   )r4   Ú	Exceptionr   r
   r   r:   rI   rO   rP   rQ   rR   rS   rT   rU   rY   rZ   r[   rb   rj   rk   r   r   r   r	   Ú<module>   s$   =$