
    !}g+                         d dl Zd dlZddlT i dddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0
Z G d1 d2ej        e          ZdS )3    N   )*   u   €   u   ‚   u   ƒ   u   „   u   …   u   †   u   ‡   u   ˆ   u   ‰   u   Š   u   ‹   u   Œ   u   Ž   u   ‘   u   ’   u   “   u   ”u   •u   –u   —u   ˜u   ™u   šu   ›u   œu   žu   Ÿ)
                              c                   &    e Zd Z ej        d          Z ej        d          Zh dZd fd	Z fdZ	d Z
d	 Z	 ej        j        j        e_        n!# e$ r ej        j        j        e_        Y nw xY wd
 Z	 ej        j        j        e_        n!# e$ r ej        j        j        e_        Y nw xY wd Z fdZed             Zd Zd Zd Zd Zd Zd Zd Zd Z ej        d          j        Zd Z ed             Z!ed             Z"d Z#d Z$ xZ%S )_BaseHTMLProcessorz[<>'"]z&(?!#\d+;|#x[0-9a-fA-F]+;|\w+;)>   brhrcolimgwbrareabaselinkmetaembedframeinputparamtrackkeygensourcecommandisindexbasefontNapplication/xhtml+xmlc                     |r|| _         || _        g | _        t          t          |                                            d S N)encoding_typepiecessuperr!   __init__)selfr8   r9   	__class__s      O/var/www/py-google-trends/myenv/lib/python3.11/site-packages/feedparser/html.pyr<   z_BaseHTMLProcessor.__init__Y   sC     	%$DM
 $''0022222    c                 d    g | _         t          t          |                                            d S r7   )r:   r;   r!   reset)r=   r>   s    r?   rB   z_BaseHTMLProcessor.reset`   s-     $''--/////r@   c                 j    |                     d          }|| j        v rd|z   dz   S d|z   dz   |z   dz   S )z=
        :type match: Match[str]
        :rtype: str
        r   < />z></>)groupelements_no_end_tag)r=   matchtags      r?   _shorttag_replacez$_BaseHTMLProcessor._shorttag_replaced   sI     kk!nn$***9u$$9u$s*S00r@   c                     t           r7   NotImplementedErrorr=   is     r?   goaheadz_BaseHTMLProcessor.goaheadu       !!r@   c                     t           r7   rM   rO   s     r?   __parse_starttagz#_BaseHTMLProcessor.__parse_starttag   rR   r@   c                     |                      |          }| j        dk    r6|dk    r0| j        |dz
  |         dk    r|                     | j                   |S )Nr5      z/>)"_BaseHTMLProcessor__parse_starttagr9   rawdataunknown_endtaglasttag)r=   rP   js      r?   parse_starttagz!_BaseHTMLProcessor.parse_starttag   s`    !!!$$:0001uuac!e,44##DL111r@   c                 v   t          j        dd|t           j                  }t          j        d| j        |          }|                    dd          }|                    dd          }t          t          |                               |           t          t          |                                            dS )	z6
        :type data: str
        :rtype: None
        z<!((?!DOCTYPE|--|\[))z&lt;!\1z<([^<>\s]+?)\s*/>z&#39;'z&#34;"N)	resub
IGNORECASErK   replacer;   r!   feedclose)r=   datar>   s     r?   rd   z_BaseHTMLProcessor.feed   s     v.
D"-PPv*D,BDII||GS))||GS)) $'',,T222 $''--/////r@   c                     | s| S d | D             }d |                                 D             } |                                  | S )zZ
        :type attrs: List[Tuple[str, str]]
        :rtype: List[Tuple[str, str]]
        c                 >    i | ]\  }}|                                 |S  lower.0kvs      r?   
<dictcomp>z6_BaseHTMLProcessor.normalize_attrs.<locals>.<dictcomp>   s&    222DAq17799a222r@   c                 L    g | ]!\  }}||d v r|                                 p|f"S ))reltyperj   rl   s      r?   
<listcomp>z6_BaseHTMLProcessor.normalize_attrs.<locals>.<listcomp>   sH     
 
 
1 _$27a8
 
 
r@   )itemssort)attrsattrs_ds     r?   normalize_attrsz"_BaseHTMLProcessor.normalize_attrs   s`      	L 32E222
 

 
 
 	

r@   c                    g }d}|r|D ]y\  }}|                     dd          }|                     dd          }|                     dd          }| j                            d|          }|                    ||f           zd                    d	 |D                       }|| j        v r"| j                            d||d
           dS | j                            d||d           dS )z`
        :type tag: str
        :type attrs: List[Tuple[str, str]]
        :rtype: None
         rF   z&gt;rD   &lt;r_   z&quot;z&amp;c              3   .   K   | ]\  }}d |d|dV  dS ) z="r_   Nri   )rm   keyvalues      r?   	<genexpr>z6_BaseHTMLProcessor.unknown_starttag.<locals>.<genexpr>   sI        C "cc555)     r@   rE   N)rc   bare_ampersandra   appendjoinrH   r:   )r=   rJ   rw   uattrsstrattrsr   r   s          r?   unknown_starttagz#_BaseHTMLProcessor.unknown_starttag   s&     
	# , ,
Uc622c622c844+//??sEl++++ww  "(    H $***KSS(((;<<<<<K339:::::r@   c                 V    || j         vr| j                            d|z             dS dS )z5
        :type tag: str
        :rtype: None
        z</%s>N)rH   r:   r   )r=   rJ   s     r?   rY   z!_BaseHTMLProcessor.unknown_endtag   s:     d...Kw}----- /.r@   c           	         |                                 }|                    d          rt          |dd         d          }nt          |          }|t          v rL| j                            dt          t          t          |                             dd         z             dS | j                            d|z             dS )5
        :type ref: str
        :rtype: None
        xr   N   &#%s;)rk   
startswithint_cp1252r:   r   hexord)r=   refr   s      r?   handle_charrefz!_BaseHTMLProcessor.handle_charref   s     iikk>># 	ABB$$EEHHEGKwS-@-@)A)A!"")EEFFFFFKw}-----r@   c                     |t           j        j        v s|dk    r| j                            d|z             dS | j                            d|z             dS )r   apos&%s;z&amp;%sN)htmlentitiesname2codepointr:   r   )r=   r   s     r?   handle_entityrefz#_BaseHTMLProcessor.handle_entityref   s\     $-...#--Kv|,,,,,Ky3/////r@   c                 :    | j                             |           dS )6
        :type text: str
        :rtype: None
        Nr:   r   r=   texts     r?   handle_dataz_BaseHTMLProcessor.handle_data   s      	4     r@   c                 @    | j                             d|z             dS )r   z	<!--%s-->Nr   r   s     r?   handle_commentz!_BaseHTMLProcessor.handle_comment  s%     	;-.....r@   c                 @    | j                             d|z             dS )r   z<?%s>Nr   r   s     r?   	handle_piz_BaseHTMLProcessor.handle_pi  s$     	7T>*****r@   c                 @    | j                             d|z             dS )r   z<!%s>Nr   r   s     r?   handle_declz_BaseHTMLProcessor.handle_decl  s$     	7T>*****r@   z[a-zA-Z][-_.a-zA-Z0-9:]*\s*c                 l   | j         }t          |          }||k    rdS |                     ||          }|rh|                                }|                                }|t          |          z   |k    rdS |                                |                                fS |                     |           dS )zh
        :type i: int
        :type declstartpos: int
        :rtype: Tuple[Optional[str], int]
        )N)rX   len_new_declname_matchrG   striprk   endr   )r=   rP   declstartposrX   nmsnames           r?   
_scan_namez_BaseHTMLProcessor._scan_name'  s     ,LL668$$Wa00 				A7799DCFF
q  x::<<((W%%%8r@   c                     d| z  S )5
        :type name: str
        :rtype: str
        r   ri   r   s    r?   convert_charrefz"_BaseHTMLProcessor.convert_charref>  s     ~r@   c                     d| z  S )r   r   ri   r   s    r?   convert_entityrefz$_BaseHTMLProcessor.convert_entityrefG  s     }r@   c                 6    d                     | j                  S )zGReturn processed HTML as a single string.

        :rtype: str
        r{   )r   r:   )r=   s    r?   outputz_BaseHTMLProcessor.outputP  s     wwt{###r@   c                     	 t           j                            | |          S # t           j        $ r |                     d           |dz   cY S w xY w)z2
        :type i: int
        :rtype: int
        r|   r   )sgmllib
SGMLParserparse_declarationSGMLParseErrorr   rO   s     r?   r   z$_BaseHTMLProcessor.parse_declarationX  s_    	%77a@@@% 	 	 	V$$$Q3JJJ	s   " )AA)Nr5   )&__name__
__module____qualname__r`   compilespecialr   rH   r<   rB   rK   rQ   r   r   __code__AttributeError	func_coderW   r\   rd   staticmethodry   r   rY   r   r   r   r   r   r   rI   r   r   r   r   r   r   __classcell__)r>   s   @r?   r!   r!   @   s       bj&&GRZ BCCN  ,3 3 3 3 3 30 0 0 0 0
1 
1 
1"" " "A"-5> A A A $.6@A
" " "Q$+$6$E$N!! Q Q Q &-%7%F%P"""Q
  0 0 0 0 0   \&; ; ;8	. 	. 	.. . .&0 0 0	! 	! 	!/ / /+ + +
+ 
+ 
+ %"*%CDDJ  .   \   \$ $ $      s#   A A10A18B B-,B-r!   )	html.entitiesr   r`   sgmlr   r   r   objectr!   ri   r@   r?   <module>r      si  8     				      	
             !" #$ 
									7  >c c c c c+V c c c c cr@   