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/html5lib/treewalkers/__pycache__/etree_lxml.cpython-38.pyc
U

63)Z��@s�ddlmZmZmZddlmZddlmZddlm	Z	ddl
mZddl
mZd	d
�Z
Gdd�de�ZGd
d�de�ZGdd�de�ZGdd�de�ZGdd�dej�ZdS)�)�absolute_import�division�unicode_literals)�	text_type)�etree�)�
tag_regexp�)�base)�	_ihatexmlcCs*|dkrdSt|t�r|S|�dd�SdS)N�ascii�strict)�
isinstancer�decode)�s�r�A/usr/lib/python3/dist-packages/html5lib/treewalkers/etree_lxml.py�
ensure_strs

rc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�RootcCs�||_g|_z:|jjrD|j�t|t|jj�t|jj�t|jj	���Wnt
k
rZYnXz|��}Wnt
k
r�|}YnX|��dk	r�|��}q�|dk	r�|j�|�|�
�}q�d|_d|_dS�N)Zelementtree�childrenZdocinfoZinternalDTD�append�DoctyperZ	root_name�	public_idZ
system_url�AttributeErrorZgetrootZgetprevious�getnext�text�tail)�selfZet�noderrr�__init__s,



�



z
Root.__init__cCs
|j|Sr)r�r�keyrrr�__getitem__1szRoot.__getitem__cCsdSrr�rrrrr4szRoot.getnextcCsdS�Nr	rr$rrr�__len__7szRoot.__len__N)�__name__�
__module__�__qualname__r r#rr&rrrrrsrc@seZdZdd�Zdd�ZdS)rcCs(||_||_||_||_d|_d|_dSr)�	root_node�namer�	system_idrr)rr*r+rr,rrrr <szDoctype.__init__cCs|jjdSr%)r*rr$rrrrEszDoctype.getnextN�r'r(r)r rrrrrr;s	rc@seZdZdd�Zdd�ZdS)�FragmentRootcs$�fdd�|D��_d�_�_dS)Ncsg|]}t�|��qSr)�FragmentWrapper)�.0Zchildr$rr�
<listcomp>Ksz)FragmentRoot.__init__.<locals>.<listcomp>)rrr)rrrr$rr JszFragmentRoot.__init__cCsdSrrr$rrrrNszFragmentRoot.getnextNr-rrrrr.Isr.c@sTeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�ZdS)r/cCsT||_||_t|jd�r(t|jj�|_nd|_t|jd�rJt|jj�|_nd|_dS)Nrr)r*�obj�hasattrrrr)rZ
fragment_rootr2rrrr SszFragmentWrapper.__init__cCst|j|�Sr)�getattrr2)rr+rrr�__getattr___szFragmentWrapper.__getattr__cCs6|jj}|�|�}|t|�dkr.||dSdSdSr%)r*r�index�len)rZsiblings�idxrrrrbs

zFragmentWrapper.getnextcCs
|j|Sr)r2r!rrrr#jszFragmentWrapper.__getitem__cCs
t|j�Sr)�boolr2r$rrr�__bool__mszFragmentWrapper.__bool__cCsdSrrr$rrr�	getparentpszFragmentWrapper.getparentcCs
t|j�Sr��strr2r$rrr�__str__sszFragmentWrapper.__str__cCs
t|j�Srr<r$rrr�__unicode__vszFragmentWrapper.__unicode__cCs
t|j�Sr)r7r2r$rrrr&yszFragmentWrapper.__len__N)r'r(r)r r5rr#r:r;r>r?r&rrrrr/Rsr/c@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�
TreeWalkercCsJt|t�rt|�|_t|�}nt�|_t|�}tj�||�t	�
�|_dSr)r�list�set�fragmentChildrenr.rr
�NonRecursiveTreeWalkerr rZ
InfosetFilter�filter)rZtreerrrr ~s


zTreeWalker.__init__c	Cs�t|t�r:|\}}|dks&td|��tjtt||��fSt|t�rLtjfSt|t	�rjtj
|j|j|j
fSt|t�r�t|d�s�tjt|j�fS|jtjkr�tjt|j�fS|jtjkr�tjt|j�dd�fSt�t|j��}|�r�|��\}}nd}t|j�}i}t|j���D]P\}}t|�}t|�}t�|�}|�rT|||�d�|�d�f<n||d|f<�qtj||j �!|�|t"|�dk�p�|jfSdS)N�rr�%Text nodes are text or tail, found %s�tagr	���rr)#r�tuple�AssertionErrorr
ZTEXTrr4rZDOCUMENTrZDOCTYPEr+rr,r/r3r2rHr�Comment�COMMENTrZEntityZENTITYr�match�groupsrAZattrib�items�groupZELEMENTrEZfromXmlNamer7)	rrr"rN�	namespacerHZattrsr+�valuerrr�getNodeDetails�s>




�zTreeWalker.getNodeDetailscCsBt|t�rtd��t|�s(|js(td��|jr6|dfS|dSdS)NzText nodes have no childrenzNode has no childrenrr)rrJrKr7r)rrrrr�
getFirstChild�s
zTreeWalker.getFirstChildcCsbt|t�rL|\}}|dks&td|��|dkrDt|�r>|dSdSn|��S|jrZ|dfS|��S)NrFrGrrr)rrJrKr7rr�rrr"rrr�getNextSibling�s
zTreeWalker.getNextSiblingcCsJt|t�r4|\}}|dks&td|��|dkrB|Sn||jkrBdS|��S)NrFrGr)rrJrKrCr;rVrrr�
getParentNode�s

zTreeWalker.getParentNodeN)r'r(r)r rTrUrWrXrrrrr@}s
)	r@N)Z
__future__rrrZsixrZlxmlrZtreebuilders.etreer�r
rr�objectrrr.r/rDr@rrrr�<module>s	&	+