HEX
Server: Apache
System: Linux srv1.prosuiteplus.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: prosuiteplus (1001)
PHP: 8.3.20
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/lxml/html/__pycache__/soupparser.cpython-38.pyc
U

�'�Y�'�@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/usr/lib/python3/dist-packages/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�openrrZElementTree)�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_treeZgetchildren�remove)�beautiful_soup_treerrZchildren�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_FEATURESZfeatureszhtml.parser�r)rrr�len�tag)�sourcerrrZtreerrrrrEs


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���)rZhtml_parserr�	enumerate�
isinstancerr#�lower�_DECLARATION_OR_DOCTYPEr%�indexr"�_init_node_converters�reversedZaddpreviousZaddnextZoutput_ready�AttributeError�string�_parse_doctype_declaration�groupsZgetroottree�docinfoZ	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_urir9rrrrisd


&





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)rErF�rCrD)rEr�	converter�sz(_init_node_converters.<locals>.convertercs$�D]}t||�r�|SqdSr()r/)ZnoderBrGrr�find_best_converter�s
z2_init_node_converters.<locals>.find_best_convertercsPz�t|�}Wn(tk
r8�|�}�t|�<YnX|dkrFdS|||�Sr()�type�KeyError)�bs_node�parentrA)rCrIrrr=�sz+_init_node_converters.<locals>.convert_nodecSsXt|t�rBi}|��D](\}}t|t�r2d�|�}t|�||<qntdd�|D��}|S)N� css|]\}}|t|�fVqdSr(��unescape)�.0�k�vrrr�	<genexpr>�sz;_init_node_converters.<locals>.map_attrs.<locals>.<genexpr>)r/�dict�items�list�joinrP)Zbs_attrs�attribsrRrSrrr�	map_attrs�s


z(_init_node_converters.<locals>.map_attrscSs:t|�dkr|jpd||_n|djp*d||d_dS)Nr�r-)r�text�tail)rMr\rrr�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)Zattrib)r$rZ
SubElementr#rJrK)rLrMr$rY�resrrA)r=rCrrZrr�convert_tag�s 
z*_init_node_converters.<locals>.convert_tagcSs t�|�}|dk	r|�|�|Sr()rZHtmlCommentr@�rLrMr_rrr�convert_comments

z._init_node_converters.<locals>.convert_commentcSs>|�d�r|dd�}tj|�dd��}|dk	r:|�|�|S)N�?r-rNr)�endswithrr
�splitr@rarrr�
convert_pis

z)_init_node_converters.<locals>.convert_pics|dk	r�|t|��dSr(rO)rLrM)r^rr�convert_textsz+_init_node_converters.<locals>.convert_text)N)rr"r	r
r)rrHr`rbrfrgr)r^r=rCrIrrZrDrr3�s 



r3)�name2codepointz&(\w+);cCs|sdSdd�}t||�S)Nr[cSs8ztt|�d��WStk
r2|�d�YSXdS)Nrr)�unichrrh�grouprK)�mrrr�unescape_entity5sz!unescape.<locals>.unescape_entity)�handle_entities)r6rlrrrrP1srP)NN)NN)N)$�__doc__�__all__�reZlxmlrrZbs4rrr	r
rrr
r1�ImportErrorrrrr�compile�
IGNORECASEr?r7r"rr3Z
html.entitiesrhZhtmlentitydefs�subrmri�	NameError�chrrPrrrr�<module>s<
$ 



�Uc