
     #e                    j    d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 e	e G d de                    Z
y)	    )annotations)Optional)define)AttrDictMixin)serdec                  z    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Zy)	GuidelinezRepresents 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
identifierc                    | j                   | j                  | j                  }}}||t        d      |||t        d      |||t        d      |#d|cxk  rdk  st        d       t        d      y y )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   s       ;/usr/lib/python3/dist-packages/ufoLib2/objects/guideline.py__attrs_post_init__zGuideline.__attrs_post_init__&   s    ffdffdjje195669	  !VWW=Q]u}RSSa5&7C&7>?? '8>?? '8    )returnNone)__name__
__module____qualname____doc__r
   __annotations__r   r   r   r   r   r    r   r   r	   r	      s]     A3A3!E?!%D-<E=% $J$:
@r   r	   N)
__future__r   typingr   attrsr   ufoLib2.objects.miscr   ufoLib2.serder   r	   r   r   r   <module>r#      s:    "   .  #@ #@  #@r   