o
    Ch                     @   s>   d Z ddlmZ ddlmZ G dd dZG dd deZdS )	z Tablib - HTML export support.
    )
HTMLParser)ElementTreec                   @   s>   e Zd ZdZdZdZedd Zedd Zedd	d
Z	dS )
HTMLFormath3html)r   c                 C   s   t d}|jdur9t d}t d}|jD ]}t d}|dur&t|nd|_|| q|| || t d}|D ]&}t d}|D ]}	t d}
|	durXt|	nd|
_||
 qI|| q@|| t j|d	d
dS )z!HTML representation of a Dataset.tableNtheadtrth tbodytdr   unicode)methodencoding)ETElementheadersstrtextappendtostring)clsdatasetr   headr	   headerr
   bodyrowitemr    r   f/var/www/html/myvaluetrips/my_value_trip_new/venv/lib/python3.10/site-packages/tablib/formats/_html.py
export_set   s(   











zHTMLFormat.export_setc              	   C   sd   d}t |jD ](\}}|jr|jnd| }|d| j d| d| j d7 }||j7 }|d7 }q|S )z"HTML representation of a Databook.r   zSet <>z</z>

)	enumerate	_datasetstitleBOOK_ENDINGSr   )r   databookresultidsetr'   r   r   r    export_book(   s    

zHTMLFormat.export_bookNc                 C   sH   |   t||d}||  |js"|rtd| dtddS )z"Returns dataset from HTML content.table_idzNo <table> found with id="z" in input HTMLzNo <table> found in input HTMLN)wipeTablibHTMLParserfeedreadtable_found
ValueError)r   r,   	in_streamr/   parserr   r   r    
import_set5   s   zHTMLFormat.import_setN)
__name__
__module____qualname__r(   r'   
extensionsclassmethodr!   r-   r8   r   r   r   r    r      s    

r   c                       s:   e Zd Zdd fdd
Zdd Zdd Zd	d
 Z  ZS )r1   Nr.   c                   sL   t  j|i | || _|| _d| _d| _d| _d| _g | _g | _	d| _
d S )NFr   )super__init__r,   r/   r4   
table_open
thead_open	cell_openr   current_rowcurrent_data)selfr   r/   argskwargs	__class__r   r    r@   D   s   
zTablibHTMLParser.__init__c                 C   sj   |dkr| j s| jrt|d| jkrd| _d| _ d S | jr1|dkr(d| _d S |dv r3d| _d S d S d S )Nr   idTr   r   r
   )r4   r/   dictgetrA   rB   rC   )rF   tagattrsr   r   r    handle_starttagP   s   


z TablibHTMLParser.handle_starttagc                 C   s   | j sd S |dkrd| _ d S |dkrd| _| j| j_d S |dkr/| jr/| j| j g | _d S |dv rM| jr>| j| j n| j| j d| _d| _d S d S )Nr   Fr   r	   rL   r   )rA   rB   r   r,   rD   r   rE   rC   )rF   rO   r   r   r    handle_endtag]   s"   


zTablibHTMLParser.handle_endtagc                 C   s   | j r|  j|7  _d S d S r9   )rC   rE   )rF   datar   r   r    handle_datap   s   zTablibHTMLParser.handle_data)r:   r;   r<   r@   rQ   rR   rT   __classcell__r   r   rI   r    r1   C   s
    r1   N)__doc__html.parserr   	xml.etreer   r   r   r1   r   r   r   r    <module>   s
    <