HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: //usr/local/lib64/python3.8/site-packages/lxml/html/__pycache__/soupparser.cpython-38.pyc
U

O��i�'�@sTdZdddgZddlZddlmZmZz0ddlmZmZm	Z	m
Z
mZmZm
Z
ee
fZWn8ek
r�ddlmZmZm	Z	m
Z
mZmZeZYnXdd	d�Zdd
d�Zddd�Zdd
�Ze�dej�jZGdd�d�Zdd�Zdd�ZzddlmZWn"ek
�rddlmZYnXe�d�jZze Wne!k
�rFe"Z YnXdd�Z#dS)z5External interface to the BeautifulSoup HTML parser.
�
fromstring�parse�convert_tree�N)�etree�html)�
BeautifulSoup�Tag�Comment�ProcessingInstruction�NavigableString�Declaration�Doctype)rrr	r
rrcKst|||f|�S)a�Parse a string of HTML data into an Element tree using the
    BeautifulSoup parser.

    Returns the root ``<html>`` Element of the tree.

    You can pass a different BeautifulSoup parser through the
    `beautifulsoup` keyword, and a diffent Element factory function
    through the `makeelement` keyword.  By default, the standard
    ``BeautifulSoup`` class and the default factory of `lxml.html` are
    used.
    )�_parse)�data�
beautifulsoup�makeelement�bsargs�r�6/tmp/pip-install-gdmoqxf6/lxml/lxml/html/soupparser.pyrscKs,t|d�st|�}t|||f|�}t�|�S)aYParse a file into an ElemenTree using the BeautifulSoup parser.

    You can pass a different BeautifulSoup parser through the
    `beautifulsoup` keyword, and a diffent Element factory function
    through the `makeelement` keyword.  By default, the standard
    ``BeautifulSoup`` class and the default factory of `lxml.html` are
    used.
    �read)�hasattr�openrr�ElementTree)�filerrr�rootrrrr$s	
cCs*t||�}|��}|D]}|�|�q|S)aConvert a BeautifulSoup tree to a list of Element trees.

    Returns a list instead of a single root Element to support
    HTML-like soup with more than one root element.

    You can pass a different Element factory through the `makeelement`
    keyword.
    )�
_convert_tree�getchildren�remove)�beautiful_soup_treerr�children�childrrrr3s
	
cKs�|dkrt}t|d�r&d|kr&d|d<t|d�r@d|kr@d|d<||f|�}t||�}t|�dkrx|djdkrx|dSd|_|S)	NZ
HTML_ENTITIESZconvertEntitiesrZDEFAULT_BUILDER_FEATURES�featureszhtml.parser�r)rrr�len�tag)�sourcerrr�treerrrrrEs


rz`(?:\s|[<!])*DOCTYPE\s*HTML(?:\s+PUBLIC)?(?:\s+(\'[^\']*\'|"[^"]*"))?(?:\s+(\'[^\']*\'|"[^"]*"))?c@seZdZdd�Zdd�ZdS)�
_PseudoTagcCsd|_g|_||_dS)Nr)�name�attrs�contents)�selfr*rrr�__init__`sz_PseudoTag.__init__cCs
|j��S�N)r*�__iter__)r+rrrr.esz_PseudoTag.__iter__N)�__name__�
__module__�__qualname__r,r.rrrrr'^sr'cCs
|dkrtjj}d}}d}}t|�D]Z\}}t|t�rl|dkrF|}|}|dkr�|jr�|j��dkr�|}q(|dkr(t|t�r(|}q(|dkr�g}}	|j	}
n2|j	d|�}|j	||d�}
|j	|dd�}	|dk	�r|
�
|�}|
d|�|j	|
|dd�|_	nt|
�}t|�}||�}|}
t
|�D]&}||�}|dk	�r,|
�|�|}
�q,|}
|	D]&}||�}|dk	�r\|
�|�|}
�q\|dk	�rz|��}Wntk
�r�|j}YnXt|�}|�s�n>|��\}}|��j}|�o�|dd�|_|�o|dd�|_|S)Nrr"���)r�html_parserr�	enumerate�
isinstancerr(�lower�_DECLARATION_OR_DOCTYPEr*�indexr'�_init_node_converters�reversedZaddpreviousZaddnextZoutput_ready�AttributeError�string�_parse_doctype_declaration�groupsZgetroottree�docinfo�	public_idZ
system_url)rrZfirst_element_idxZlast_element_idxZ	html_rootZdeclaration�i�eZpre_rootZ	post_root�roots�convert_nodeZres_root�prevZ	convertedZdoctype_string�matchZexternal_idZsys_urir?rrrrisd


&





rcs�i�g���fdd�}��fdd��d��fdd�	�dd��d	d
��|tt�����fdd��}|t�d
d��}|t�dd��}|t��fdd��}�S)Ncs���fdd�}|S)Ncs �D]}|�|<��|�q|Sr-)�append)�handler�t)�
converters�ordered_node_types�typesrr�add�sz5_init_node_converters.<locals>.converter.<locals>.addr)rLrM�rJrK)rLr�	converter�sz(_init_node_converters.<locals>.convertercs$�D]}t||�r�|SqdSr-)r5)�noderIrNrr�find_best_converter�s
z2_init_node_converters.<locals>.find_best_convertercsPz�t|�}Wn(tk
r8�|�}�t|�<YnX|dkrFdS|||�Sr-)�type�KeyError)�bs_node�parentrH)rJrQrrrD�sz+_init_node_converters.<locals>.convert_nodecSsTt|t�rBi}|��D](\}}t|t�r2d�|�}t|�||<qndd�|D�}|S)N� cSsi|]\}}|t|��qSr��unescape)�.0�k�vrrr�
<dictcomp>�sz<_init_node_converters.<locals>.map_attrs.<locals>.<dictcomp>)r5�dict�items�list�joinrX)Zbs_attrs�attribsrZr[rrr�	map_attrs�s


z(_init_node_converters.<locals>.map_attrscSs:t|�dkr|jpd||_n|djp*d||d_dS)Nr�r2)r#�text�tail)rUrdrrr�append_text�sz*_init_node_converters.<locals>.append_textc	s�|j}|dk	r2|r�|�nd}tj||j|d�}n|r>�|�ni}�|j|d�}|D]H}z�t|�}Wntk
r|YnX|dk	rT|||�qT�||�qT|S)N)�attrib)r)r�
SubElementr(rRrS)rTrUr)ra�resr rH)rDrJrrbrr�convert_tag�s 
z*_init_node_converters.<locals>.convert_tagcSs t�|�}|dk	r|�|�|Sr-)rZHtmlCommentrG�rTrUrirrr�convert_comments

z._init_node_converters.<locals>.convert_commentcSs>|�d�r|dd�}tj|�dd��}|dk	r:|�|�|S)N�?r2rVr")�endswithrr
�splitrGrkrrr�
convert_pis

z)_init_node_converters.<locals>.convert_pics|dk	r�|t|��dSr-rW)rTrU)rfrr�convert_textsz+_init_node_converters.<locals>.convert_text)N)rr'r	r
r)rrOrjrlrprqr)rfrDrJrQrrbrKrr9�s 



r9)�name2codepointz&(\w+);cCs|sdSdd�}t||�S)NrccSs8ztt|�d��WStk
r2|�d�YSXdS)Nr"r)�unichrrr�grouprS)�mrrr�unescape_entity5sz!unescape.<locals>.unescape_entity)�handle_entities)r<rvrrrrX1srX)NN)NN)N)$�__doc__�__all__�re�lxmlrrZbs4rrr	r
rrr
r7�ImportErrorrrrr�compile�
IGNORECASErFr=r'rr9�
html.entitiesrr�htmlentitydefs�subrwrs�	NameError�chrrXrrrr�<module>s<
$ 



�Uc