
    $g                     X    d Z ddlmZ ddlmZ  G d d          Z G d de          ZdS )	z Tablib - HTML export support.
    )
HTMLParser)ElementTreec                   ^    e Zd ZdZdZdZed             Zed             Zedd            Z	dS )	
HTMLFormath3html)r   c                    t          j        d          }|j        t          j        d          }t          j        d          }|j        D ]C}t          j        d          }|t          |          nd|_        |                    |           D|                    |           |                    |           t          j        d          }|D ]q}t          j        d          }|D ]C}	t          j        d          }
|	t          |	          nd|
_        |                    |
           D|                    |           r|                    |           t          j        |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   s              T/var/www/html/netbox-4.1.3/venv/lib/python3.11/site-packages/tablib/formats/_html.py
export_setzHTMLFormat.export_set   sM    
7##?&:g&&DD!!B!/  Z%%)/);#f+++		"KKOOOLLz'"" 	 	CD!!B  Z%%'+'7#d)))R		"KKOOOOT{5)DDDD    c           	          d}t          |j                  D ]@\  }}|j        r|j        nd| }|d| j         d| d| j         dz  }||j        z  }|dz  }A|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44 	 	GAt"&*<DJJ***EK#*KKUKKc6FKKKKFdiFdNFFr$   Nc                     |                                  t          ||          }|                    |                                           |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   r0   	in_streamr4   parsers        r"   
import_setzHTMLFormat.import_set5   s     			!$:::INN$$%%%! 	C C !Wh!W!W!WXXX !ABBB		C 	Cr$   N)
__name__
__module____qualname__r,   r+   
extensionsclassmethodr#   r1   r=    r$   r"   r   r      s        LEJE E [E4 
 
 [
 
C 
C 
C [
C 
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                      j        |i | || _        || _        d| _        d| _        d| _        d| _        g | _        g | _	        d| _
        d S )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   sg    $)&)))	  r$   c                     |dk    rI| j         sB| j        r+t          |                              d          | j        k    rd| _        d| _         d S | j        r|dk    r	d| _        d S |dv rd| _        d S d S d S )Nr
   idTr   r   r   )r9   r4   dictgetrI   rJ   rK   )rN   tagattrss      r"   handle_starttagz TablibHTMLParser.handle_starttagP   s    7NN4#3N "&u++//$"7"74="H"H"DO#D_ 	&g~~"&$$!%		& 	& %$r$   c                    | 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 rV| j        r | j                            | j                   n| j                            | j                   d| _        d| _        d S d S )Nr
   Fr   r   rT   r   )rI   rJ   r   r0   rL   r   rM   rK   )rN   rW   s     r"   handle_endtagzTablibHTMLParser.handle_endtag]   s     	F'>>#DOOOG^^#DO $DID[[T-[IT-...!DL   ;##D$56666 ''(9:::"DN "D ! r$   c                 8    | j         r| xj        |z  c_        d S d S r>   )rK   rM   )rN   datas     r"   handle_datazTablibHTMLParser.handle_datap   s0    > 	&%	& 	&r$   )r?   r@   rA   rH   rY   r[   r^   __classcell__)rQ   s   @r"   r6   r6   C   sr        04 
 
 
 
 
 
 
& & &# # #&& & & & & & &r$   r6   N)__doc__html.parserr   	xml.etreer   r   r   r6   rD   r$   r"   <module>rc      s     " " " " " " ' ' ' ' ' '9C 9C 9C 9C 9C 9C 9C 9Cx/& /& /& /& /&z /& /& /& /& /&r$   