o
    ooiK                     @   sd   d Z ddlZddlmZ g dZh dZdZedd	eje d
e	ddfddZ
G dd dejZdS )z'Rendering formatter parameter handling.    N   )base)
FORMATTERSverify_formatter	Formatter>   gdcorexlibcairogdwbmpgdiplusF)required	formatterr   returnc                C   sB   | d u r|r
t dd S |  tv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   R/home/ubuntu/.local/lib/python3.10/site-packages/graphviz/parameters/formatters.pyr      s   

r   c                       s   e Zd ZdZdZeeZdddej	e
 ddf fddZ fdd	Zedej	e
 fd
dZejdej	e
 ddfddZ  ZS )r   z(Rendering engine parameter (no default).N)r   r   r   c                   s   t  jdi | || _d S )Nr   )super__init__r   )selfr   kwargs	__class__r   r   r   $   s   
zFormatter.__init__c                    s,   |  d}|dur||d< t jdi |S )z3Return the kwargs to create a copy of the instance.
_formatterNr   r   )_getattr_from_dictr   _copy_kwargs)r   r   r   r   r   r   r   )   s   
zFormatter._copy_kwargsc                 C   s   | j S )zQThe output formatter used for rendering
            (``'cairo'``, ``'gd'``, ...).)r   )r   r   r   r   r   0   s   zFormatter.formatterc                 C   s6   |d u r| j dd  d S | }| | || _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'    r   __all__r   REQUIREDr(   r)   boolr   ParameterBaser   r   r   r   r   <module>   s    

