
    _f
                     l    d dl Zd dlmZ d dlmZ d dlmZ ddiZ G d deej	        j
                  ZdS )	    N	smart_str)ParserError)
ParserBaseconvert_charrefsFc                   J    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 ZdS )DefaultHtmlParserc           	         t          j        j        j        | fi t           || _        g | _        g | _        d | _        	 | 	                    | j                   | 
                                 d S # t          $ rN}|j        }| j                                        |         }t          d|dt          |          d          d }~ww xY w)Nz%Error while initializing HtmlParser: z (line: ))htmlparser
HTMLParser__init__HTML_PARSER_ARGScontent
_css_elems	_js_elems_current_tagfeedclose	Exceptionlineno
splitlinesr   repr)selfr   errr   lines        V/var/www/html/env/lib/python3.11/site-packages/compressor/parser/default_htmlparser.pyr   zDefaultHtmlParser.__init__   s    'AA0@AAA 	IIdl###JJLLLLL 	 	 	ZF<**,,V4D+HKTRVZZZZX  	s   .A/ /
C9A	CCc                 4   |                                 }|dv rK|dk    r| j        }n|dk    r| j        }|                    ||t	          |          dd           || _        d S |dk    r.| j                            ||t	          |          d d           d S d S )N)stylescriptr    r!    )tagattrs
attrs_dicttextlink)lowerr   r   appenddictr   )r   r#   r$   tagss       r   handle_starttagz!DefaultHtmlParser.handle_starttag!   s    iikk%%%g~~~KKe4;;PRSS   !$DF]]O""e4;;PTUU     ]    c                 d    | j         r&| j         |                                k    rd | _         d S d S d S N)r   r(   )r   r#   s     r   handle_endtagzDefaultHtmlParser.handle_endtag1   s@     	%!2ciikk!A!A $D	% 	%!A!Ar-   c                 z    | j         dk    r|| j        d         d<   d S | j         dk    r|| j        d         d<   d S d S )Nr    r&   r!   )r   r   r   )r   datas     r   handle_datazDefaultHtmlParser.handle_data5   sT    ''*.DOB'''(**)-DN2v&&& +*r-   c                     | j         S r/   )r   r   s    r   	css_elemszDefaultHtmlParser.css_elems;   s
    r-   c                     | j         S r/   )r   r6   s    r   js_elemszDefaultHtmlParser.js_elems>   s
    ~r-   c                     |d         S )Nr#    r   elems     r   	elem_namezDefaultHtmlParser.elem_nameA   s    E{r-   c                     |d         S )Nr%   r;   r<   s     r   elem_attribszDefaultHtmlParser.elem_attribsD   s    L!!r-   c                 ,    t          |d                   S )Nr&   r   r<   s     r   elem_contentzDefaultHtmlParser.elem_contentG   s    f&&&r-   c                     i }|                     |           d|d<   t          |d                   r+dd                    d |d         D                       z  |d<   |d         dk    rd|z  S d	|z  S )
Nr"   r$   z %s c                 $    g | ]\  }}|d |dS )z=""r;   ).0namevalues      r   
<listcomp>z.DefaultHtmlParser.elem_str.<locals>.<listcomp>P   s)    LLL{tUdddEEE*LLLr-   r#   r'   z<%(tag)s%(attrs)s>z$<%(tag)s%(attrs)s>%(text)s</%(tag)s>)updatelenjoin)r   r=   r#   s      r   elem_strzDefaultHtmlParser.elem_strJ   s    

4GtG} 	 388LLd7mLLL$ $ CL ;&  '#--9C??r-   N)__name__
__module____qualname__r   r,   r0   r4   r7   r9   r>   r@   rB   rN   r;   r-   r   r	   r	      s              % % %. . .      " " "' ' '@ @ @ @ @r-   r	   )html.parserr   django.utils.encodingr   compressor.exceptionsr   compressor.parserr   r   r   r   r	   r;   r-   r   <module>rV      s        + + + + + + - - - - - - ( ( ( ( ( (  
E@ E@ E@ E@ E@
DK$: E@ E@ E@ E@ E@r-   