o
    èÅb®  ã                   @  sH   d dl mZ d dlmZ d dlmZ d dlmZ eG dd„ deƒƒZdS )é    )Úannotations)ÚOptional)Údefine)ÚAttrDictMixinc                   @  sp   e Zd ZU dZdZded< 	 dZded< 	 dZded< 	 dZded< 	 dZ	ded	< 	 dZ
ded
< 	 ddd„ZdS )Ú	Guidelinez›Represents a single guideline.

    See http://unifiedfontobject.org/versions/ufo3/glyphs/glif/#guideline. Has some
    data composition restrictions.
    NzOptional[float]ÚxÚyÚanglezOptional[str]ÚnameÚcolorÚ
identifierÚreturnÚNonec                 C  s¢   | j | j| j}}}|d u r|d u rtdƒ‚|d u s|d u r'|d ur'tdƒ‚|d ur7|d ur7|d u r7tdƒ‚|d urMd|  krHdksOtdƒ‚ tdƒ‚d S d S )Nzx or y must be presentz3if 'x' or 'y' are None, 'angle' must not be presentz3if 'x' and 'y' are defined, 'angle' must be definedr   ih  zangle must be between 0 and 360)r   r   r	   Ú
ValueError)Úselfr   r   r	   © r   ú;/usr/lib/python3/dist-packages/ufoLib2/objects/guideline.pyÚ__attrs_post_init__$   s   ÿÿzGuideline.__attrs_post_init__)r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__r   r	   r
   r   r   r   r   r   r   r   r   
   s   
 r   N)	Z
__future__r   Útypingr   Úattrr   ZufoLib2.objects.miscr   r   r   r   r   r   Ú<module>   s    