U
    d/e                     @   sl   d Z ddlZddlmZ dddgZdd	d
dddddhZdZdZedee	ddddZ
G dd dejZdS )z$Rendering engine parameter handling.    N   )baseENGINESverify_engineEnginedotZneatoZtwopiZcircoZfdpZsfdpZ	patchworkZosageT)required)enginer   returnc                C   s@   | d kr|r<t dn&|  tkr<t d| dtt dd S )Nzmissing enginezunknown engine: z (must be one of ))
ValueErrorlowerr   sorted)r	   r    r   ?/tmp/pip-unpacked-wheel-n8ok7rre/graphviz/parameters/engines.pyr      s
    
c                       st   e Zd ZdZeZeeZdde	j
e dd fddZ fddZeed	d
dZejeddddZ  ZS )r   z3Rendering engine parameter with ``'dot''`` default.N)r	   )r	   r
   c                   s    t  jf | |d k	r|| _d S N)super__init__r	   )selfr	   kwargs	__class__r   r   r   '   s    zEngine.__init__c                    s(   |  d}|dk	r||d< t jf |S )z3Return the kwargs to create a copy of the instance._engineNr	   )Z_getattr_from_dictr   _copy_kwargs)r   r   r	   r   r   r   r   -   s    
zEngine._copy_kwargs)r
   c                 C   s   | j S )zOThe layout engine used for rendering
            (``'dot'``, ``'neato'``, ...).)r   )r   r   r   r   r	   4   s    zEngine.enginec                 C   s   |  }| | || _d S r   )r   _verify_enginer   )r   r	   r   r   r   r	   :   s    
)__name__
__module____qualname____doc__DEFAULT_ENGINEr   staticmethodr   r   typingOptionalstrr   r   propertyr	   setter__classcell__r   r   r   r   r       s    )r   r!    r   __all__r   r   ZREQUIREDr#   boolr   ZParameterBaser   r   r   r   r   <module>   s    
		