o
    ooi                     @   sb   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dZ
G dd dejZdS )z$Rendering engine parameter handling.    N   )base)ENGINESverify_engineEngine>   dotfdpsfdpcirconeatoosagetwopi	patchworkr   T)requiredenginer   returnc                C   sB   | d u r|r
t dd S |  tv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   O/home/ubuntu/.local/lib/python3.10/site-packages/graphviz/parameters/engines.pyr      s   

r   c                       sx   e Zd ZdZeZeeZddde	j
e ddf fddZ fdd	Zedefd
dZejdeddfddZ  ZS )r   z3Rendering engine parameter with ``'dot''`` default.N)r   r   r   c                   s(   t  jdi | |d ur|| _d S d S )Nr   )super__init__r   )selfr   kwargs	__class__r   r   r   '   s   
zEngine.__init__c                    s,   |  d}|dur||d< t jdi |S )z3Return the kwargs to create a copy of the instance._engineNr   r   )_getattr_from_dictr   _copy_kwargs)r   r   r   r   r   r   r    -   s   
zEngine._copy_kwargsc                 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 )N)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(    r   __all__r   r&   REQUIREDr*   boolr   ParameterBaser   r   r   r   r   <module>   s    		