U
    d/e                     @   sz   d Z ddlZddlmZ dddgZdd	d
dddddddddddhZdZedeje e	ddddZ
G dd dejZdS )z&Rendering renderer parameter handling.    N   )base	RENDERERSverify_rendererRendererZcairodotZfiggdZgdiplusmapZpicZpovZpssvgZtkZvmlZvrmlZxdotF)required)rendererr   returnc                C   s@   | d kr|r<t dn&|  tkr<t d| dtt dd S )Nzmissing rendererzunknown renderer: z (must be None or one of ))
ValueErrorlowerr   sorted)r   r    r   A/tmp/pip-unpacked-wheel-n8ok7rre/graphviz/parameters/renderers.pyr      s
    
c                       s   e Zd ZdZdZeeZddej	e
 dd fddZ fddZeej	e
 d	d
dZejej	e
 ddddZ  ZS )r   z*Rendering renderer parameter (no default).N)r   )r   r   c                   s   t  jf | || _d S )N)super__init__r   )selfr   kwargs	__class__r   r   r   -   s    zRenderer.__init__c                    s(   |  d}|dk	r||d< t jf |S )z3Return the kwargs to create a copy of the instance.	_rendererNr   )Z_getattr_from_dictr   _copy_kwargs)r   r   r   r   r   r   r   2   s    
zRenderer._copy_kwargs)r   c                 C   s   | j S )zPThe output renderer used for rendering
            (``'cairo'``, ``'gd'``, ...).)r   )r   r   r   r   r   9   s    zRenderer.rendererc                 C   s4   |d kr| j dd  n| }| | || _d S )Nr   )__dict__popr   _verify_rendererr   )r   r   r   r   r   r   ?   s
    
)__name__
__module____qualname____doc__r   staticmethodr   r   typingOptionalstrr   r   propertyr   setter__classcell__r   r   r   r   r   &   s    )r"   r$    r   __all__r   ZREQUIREDr%   r&   boolr   ZParameterBaser   r   r   r   r   <module>   s2   
 
