a
    èÝEbZ  ã                   @   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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   úW/home/ja/django-apps/lartica_env/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   sˆ   | j d ur~| j j| }d|v rZ|d  d¡rZ|d  d¡rZ|d  d¡d |d  d¡ S t|jdƒr~t|jjdƒr~|jjjS d|› �S )NÚnameé   é   ú Úfilezmaster number )r   ÚttfsZgetDebugNameÚhasattrÚreaderr   r   )r   ÚixZttfr   r   r	   Ú_master_name   s    
ÿþý 
zVarLibMergeError._master_namec                    sD   dˆ j v r@dˆ j v r@‡ fdd„ˆ j d 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)NN©r   Úindexr   ©r   r'   r   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	   Údetails4   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)   ÚlocationÚ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    | j d dks| jd u r tƒ jS | j\}}| jj| }| 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.FeatureCountr   c                 S   s   g | ]
}|j ‘qS r   ©Z
FeatureTagr!   r   r   r	   r$   U   s   ÿz,ShouldBeConstant.details.<locals>.<listcomp>éÿÿÿÿc                 S   s   g | ]
}|j ‘qS r   r;   r!   r   r   r	   r$   Y   s   ÿz2
Incompatible features between masters.
Expected: z, z.
Got: z.
)
r   r   Úsuperr.   r)   r   ÚtableZFeatureListZFeatureRecordr1   )r   r-   r)   Zbad_ttfZgood_ttfZgood_featuresZbad_features©Ú	__class__r   r	   r.   M   s"    
þþÿþÿzShouldBeConstant.details)r   r   r   r   r9   r.   Ú__classcell__r   r   r?   r	   r:   J   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$   i   r%   z'FoundANone.offender.<locals>.<listcomp>r    Tr&   r(   r   r   r	   r)   g   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.   l   s    zFoundANone.detailsN)r   r   r   r   r9   r)   r.   r   r   r   r	   rB   d   s
   
rB   c                   @   s   e Zd ZdZdS )ÚMismatchedTypeszdata had inconsistent typesNr   r   r   r   r	   rC   r   s   rC   c                   @   s   e Zd ZdZdS )ÚLengthsDifferz*a list of objects had inconsistent lengthsNr   r   r   r   r	   rD   v   s   rD   c                   @   s   e Zd ZdZdS )Ú
KeysDifferz$a list of objects had different keysNr   r   r   r   r	   rE   z   s   rE   c                   @   s   e Zd ZdZdS )ÚInconsistentGlyphOrderz0the glyph order was inconsistent between mastersNr   r   r   r   r	   rF   ~   s   rF   c                   @   s   e Zd ZdZdS )ÚInconsistentExtensionsz6the masters use extension lookups in inconsistent waysNr   r   r   r   r	   rG   ‚   s   rG   c                   @   s   e Zd ZdZedd„ ƒZdS )ÚUnsupportedFormatz6an OpenType subtable (%s) had a format I didn't expectc                 C   s   | j | jd  S )NZsubtable)r   r   r   r   r   r	   r   ‰   s    zUnsupportedFormat.reasonN)r   r   r   r   r9   r   r   r   r   r	   rH   †   s   rH   c                   @   s   e Zd ZdZdS )rH   zBan OpenType subtable (%s) had inconsistent formats between mastersNr   r   r   r   r	   rH   Ž   s   c                   @   s   e Zd ZdS )ÚVarLibCFFMergeErrorN)r   r   r   r   r   r   r	   rI   ’   s   rI   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   ÚkeyÚvalueÚvaluesÚ	error_msgZregion_valuer   r   r	   r   ™   s    ÿÿz VarLibCFFDictMergeError.__init__N©r   r   r   r   r   r   r   r   r	   rJ   –   s   rJ   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 'ú'rK   )r   Z
point_typeZpt_indexÚm_indexÚdefault_typeÚ
glyph_namerP   r   r   r	   r   ¦   s    ÿþÿz%VarLibCFFPointTypeMergeError.__init__NrQ   r   r   r   r	   rR   £   s   rR   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 )NrS   rT   z' at index rU   z* differs from the default font hint type 'rV   rK   )r   Z	hint_typeZ	cmd_indexrW   rX   rY   rP   r   r   r	   r   ²   s    ÿþÿz$VarLibCFFHintTypeMergeError.__init__NrQ   r   r   r   r	   rZ   ¯   s   rZ   c                   @   s   e Zd ZdZdS )ÚVariationModelErrorz(Raised when a variation model is faulty.Nr   r   r   r   r	   r[   »   s   r[   )r3   Ú	Exceptionr   r
   r   r:   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rR   rZ   r[   r   r   r   r	   Ú<module>   s"   >