o
    bx                     @  sh   d dl mZ d dlmZmZmZmZ er d dlmZ d dlm	Z	 ee
e
f ZG dd deeef ZdS )    )annotations)TYPE_CHECKINGDictMappingTuple)Type)GenConverterc                   @  s<   e Zd ZdddZedddZdddZedddZdS )Kerningreturndict[str, dict[str, float]]c                 C  s.   i }|   D ]\\}}}|||i |< q|S N)items
setdefault)selfresultleftrightvalue r   9/usr/lib/python3/dist-packages/ufoLib2/objects/kerning.pyas_nested_dicts   s   zKerning.as_nested_dictskerning!Mapping[str, Mapping[str, float]]c                   s   t  fdd D S )Nc                 3  s2    | ]} | D ]}||f | | fV  qqd S r   r   ).0r   r   r   r   r   	<genexpr>   s    z,Kerning.from_nested_dicts.<locals>.<genexpr>)r	   )r   r   r   r   r   from_nested_dicts   s   zKerning.from_nested_dicts	converterr   c                 C  s
   ~|   S r   )r   )r   r   r   r   r   _unstructure   s   zKerning._unstructuredataclsType[Kerning]c                 C  s   ~| | S r   )r   )r   r    r   r   r   r   
_structure    s   
zKerning._structureN)r
   r   )r   r   r
   r	   )r   r   r
   r   )r   r   r    r!   r   r   r
   r	   )	__name__
__module____qualname__r   classmethodr   r   staticmethodr"   r   r   r   r   r	      s    

r	   N)Z
__future__r   typingr   r   r   r   r   Zcattrr   strZKerningPairfloatr	   r   r   r   r   <module>   s    