
    ?wg                     J    d Z ddlmZ ddlmZ  G d d      Z G d de      Zy)	z Tablib - HTML export support.
    )
HTMLParser)ElementTreec                   J    e Zd ZdZdZdZed        Zed        Zedd       Z	y)	
HTMLFormath3html)r   c                    t        j                  d      }|j                  t        j                  d      }t        j                  d      }|j                  D ]<  }t        j                  d      }|t        |      nd|_        |j                  |       > |j                  |       |j                  |       t        j                  d      }|D ]i  }t        j                  d      }|D ]<  }	t        j                  d      }
|	t        |	      nd|
_        |j                  |
       > |j                  |       k |j                  |       t        j                  |dd	
      S )z!HTML representation of a Dataset.tabletheadtrth tbodytdr   unicode)methodencoding)ETElementheadersstrtextappendtostring)clsdatasetr
   headr   headerr   bodyrowitemr   s              K/var/www/horilla/myenv/lib/python3.12/site-packages/tablib/formats/_html.py
export_setzHTMLFormat.export_set   s"    

7#??&::g&DD!B!// ZZ%)/);#f+		" KKOLLzz'" 	CD!B ZZ%'+'7#d)R		" KKO	 	T{{5)DD    c           	          d}t        |j                        D ]Y  \  }}|j                  r|j                  nd| }|d| j                   d| d| j                   dz  }||j                  z  }|dz  }[ |S )z"HTML representation of a Databook.r   zSet <>z</z>

)	enumerate	_datasetstitleBOOK_ENDINGSr   )r   databookresultidsetr+   s         r"   export_bookzHTMLFormat.export_book(   s      !3!34 	GAt"&**DJJD*E#**+1UG2c6F6F5GsKKFdiiFdNF		 r$   Nc                     |j                          t        ||      }|j                  |j                                |j                  s|rt        d| d      t        d      y)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   r0   	in_streamr4   parsers        r"   
import_setzHTMLFormat.import_set5   s^     			!$:INN$%!! #=hZ!WXX !ABB	 "r$   N)
__name__
__module____qualname__r,   r+   
extensionsclassmethodr#   r1   r=    r$   r"   r   r      sO    LEJE E4 
 
 
C 
Cr$   r   c                   6     e Zd Zdd fd
Zd Zd Zd Z xZS )r6   Nr3   c                    t        |   |i | || _        || _        d| _        d| _        d| _        d| _        g | _        g | _	        d| _
        y )NFr   )super__init__r0   r4   r9   
table_open
thead_open	cell_openr   current_rowcurrent_data)selfr   r4   argskwargs	__class__s        r"   rH   zTablibHTMLParser.__init__D   sW    $)&)	  r$   c                     |dk(  rN| j                   sB| j                  r't        |      j                  d      | j                  k(  rd| _        d| _         y | j                  r|dk(  rd| _        y |dv rd| _        y y y )Nr
   idTr   r   r   )r9   r4   dictgetrI   rJ   rK   )rN   tagattrss      r"   handle_starttagz TablibHTMLParser.handle_starttagP   sm    7N4#3#3$u+//$"74=="H"DO#D__g~"&$!% % r$   c                    | j                   sy |dk(  rd| _         y |dk(  r#d| _        | j                  | j                  _        y |dk(  r9| j                  r-| j                  j                  | j                         g | _        y |dv rf| j                  r&| j                  j                  | j                         n%| j                  j                  | j                         d| _        d| _        y y )Nr
   Fr   r   rT   r   )rI   rJ   r   r0   rL   r   rM   rK   )rN   rW   s     r"   handle_endtagzTablibHTMLParser.handle_endtag]   s    '>#DOG^#DO $DIID[T--IIT--.!DL ##D$5$56  ''(9(9:"DN "D !r$   c                 H    | j                   r| xj                  |z  c_        y y r>   )rK   rM   )rN   datas     r"   handle_datazTablibHTMLParser.handle_datap   s    >>% r$   )r?   r@   rA   rH   rY   r[   r^   __classcell__)rQ   s   @r"   r6   r6   C   s    04 
&#&&r$   r6   N)__doc__html.parserr   	xml.etreer   r   r   r6   rD   r$   r"   <module>rc      s)    " '9C 9Cx/&z /&r$   