U
    d/eK                     @   sj   d Z ddlZddlmZ dddgZ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 formatter parameter handling.    N   )base
FORMATTERSverify_formatter	FormatterZcairocoregdZgdiplusZgdwbmpZxlibF)required)	formatterr	   returnc                C   s@   | d kr|r<t dn&|  tkr<t d| dtt dd S )Nzmissing formatterzunknown formatter: z (must be None or one of ))
ValueErrorlowerr   sorted)r
   r	    r   B/tmp/pip-unpacked-wheel-n8ok7rre/graphviz/parameters/formatters.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 engine 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Formatter.__init__c                    s(   |  d}|dk	r||d< t jf |S )z3Return the kwargs to create a copy of the instance.
_formatterNr
   )Z_getattr_from_dictr   _copy_kwargs)r   r   r
   r   r   r   r   )   s    
zFormatter._copy_kwargs)r   c                 C   s   | j S )zQThe output formatter used for rendering
            (``'cairo'``, ``'gd'``, ...).)r   )r   r   r   r   r
   0   s    zFormatter.formatterc                 C   s4   |d kr| j dd  n| }| | || _d S )Nr   )__dict__popr   _verify_formatterr   )r   r
   r   r   r   r
   6   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>   s"   
 
