a
    CgJ                     @   sj   d dl Z d dlmZ d dlmZmZ d dlmZmZ d dl	m
Z
mZ ddiZe dZG d	d
 d
eZdS )    N)Optional)etreehtml)Attr	DOMEngine)HTMLTagxlinkzhttp://www.w3.org/1999/xlinkz</?fragment>c                   @   s   e Zd ZdZedeee ej	dddZ
eeej	dddZeej	ej	dd	d
dZeej	edddZeej	edddZdS )DOM_LXMLz-
    lxml implementation of the DOM API.
    N)type_attrreturnc                 C   s>   d }|r.d|v r.| d|dtd  d< t}tj| ||dS )Nz
xlink:href{r	   z}href)attribnsmap)popNSMAPr   Element)r   r   r    r   \/var/www/lab.imftr.de/x/nb_venv/lib/python3.9/site-packages/draftjs_exporter/engines/lxml.py
create_tag   s    zDOM_LXML.create_tag)markupr   c                 C   s
   t | S )N)r   
fromstring)r   r   r   r   
parse_html   s    zDOM_LXML.parse_html)eltchildr   c                 C   s4   t |dr| | ntd}||_| | d S )Ntagfragment)hasattrappendr   r   text)r   r   cr   r   r   append_child"   s
    

zDOM_LXML.append_child)r   r   c                 C   s   t dtj| dddS )N r   unicodemethodencoding)	RENDER_REsubr   tostringr   r   r   r   render+   s    zDOM_LXML.renderc                 C   s   t j| dddS )Nr   r$   r%   )r   r*   r+   r   r   r   render_debug/   s    zDOM_LXML.render_debug)N)__name__
__module____qualname____doc__staticmethodr   r   r   r   r   r   r   r   r"   r,   r-   r   r   r   r   r
      s   
r
   )retypingr   lxmlr   r   Zdraftjs_exporter.engines.baser   r   Zdraftjs_exporter.typesr   r   r   compiler(   r
   r   r   r   r   <module>   s   
