
    ci                     x    d Z ddlZddlmZ g dZh dZdZdZed	d
ede	ddfdZ
 G d dej                        Zy)z$Rendering engine parameter handling.    N   )base)ENGINESverify_engineEngine>   dotfdpsfdpcirconeatoosagetwopi	patchworkr   T)requiredenginer   returnc                    | |rt        d      y | j                         t        vrt        d| dt        t               d      y )Nzmissing enginezunknown engine: z (must be one of ))
ValueErrorlowerr   sorted)r   r   s     B/tmp/pip-target-z3e9_cxr/lib/python/graphviz/parameters/engines.pyr   r      sX    ~-.. 	w	&+F:,VG_,=Q@ A 	A 
'    c                        e Zd ZdZeZ ee      Zddde	j                  e   ddf fdZ fdZedefd       Zej                   deddfd	       Z xZS )
r   z3Rendering engine parameter with ``'dot''`` default.N)r   r   r   c                8    t        |   di | ||| _        y y )N )super__init__r   )selfr   kwargs	__class__s      r   r   zEngine.__init__'   s%    "6" DK r   c                 R    | j                  d      }|||d<   t        |   di |S )z3Return the kwargs to create a copy of the instance._enginer   r   )_getattr_from_dictr   _copy_kwargs)r   r    r   r!   s      r   r%   zEngine._copy_kwargs-   s6    ((3%F8w#-f--r   c                     | j                   S )zOThe layout engine used for rendering
            (``'dot'``, ``'neato'``, ...).)r#   )r   s    r   r   zEngine.engine4   s     ||r   c                 T    |j                         }| j                  |       || _        y )N)r   _verify_enginer#   )r   r   s     r   r   zEngine.engine:   s"    F#r   )__name__
__module____qualname____doc__DEFAULT_ENGINEr#   staticmethodr   r(   typingOptionalstrr   r%   propertyr   setter__classcell__)r!   s   @r   r   r       sz    =G!-0N9= !&//#"6 !D !.   
 ]]S T  r   r   )r,   r/    r   __all__r   r-   REQUIREDr1   boolr   ParameterBaser   r   r   r   <module>r:      s[    *  
0  4< A# AD A AT r   