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/__pycache__/ElementInclude.cpython-38.pyc
U

O��ip!�@s�dZddlmZzddlmZddlmZWn,ek
rXddlmZddl	mZYnXdZ
e
dZe
dZe
dZ
d	ZGd
d�dej�ZGdd
�d
e�Zddd�Zddd�Zdd�Zddefdd�Zddedfdd�ZdS)a
Limited XInclude support for the ElementTree package.

While lxml.etree has full support for XInclude (see
`etree.ElementTree.xinclude()`), this module provides a simpler, pure
Python, ElementTree compatible implementation that supports a simple
form of custom URL resolvers.
�)�etree)�urljoin)�urlopenz!{http://www.w3.org/2001/XInclude}�include�fallback�*�c@seZdZdS)�FatalIncludeErrorN��__name__�
__module__�__qualname__�rr�5/tmp/pip-install-gdmoqxf6/lxml/lxml/ElementInclude.pyr	Ksr	c@seZdZdS)�LimitedRecursiveIncludeErrorNr
rrrrrOsrNcCsHt|d�}|dkr"t�|���}n|��}|s2d}|�|�}|��|S)N�rb�xml�utf-8)�openr�parse�getroot�read�decode�close)�hrefr�encoding�file�datarrr�default_loader`s

rcCs\|dkrt�||���}n>d|kr,t|�}n
t|d�}|��}|��|sNd}|�|�}|S)Nrz://rr)rrrrrrrr)rrr�parserr�frrr�_lxml_default_loaderqs


r!csd�fdd�	}|S)Ncs�|||�S)Nr)rrrr��loaderrr�load�sz_wrap_et_loader.<locals>.load)NNr)r#r$rr"r�_wrap_et_loader�sr%cCs�|dkrd}n|dkr"td|��|dkr^t|d�rB|}|��}n|��}t|d�rp|jj}nt|d�rp|��}t||||�dS)N���rz;expected non-negative depth or None for 'max_depth', got %rr�docinfo)�
ValueError�hasattrr�getroottreer'�URL�_include)�elemr#�base_url�	max_depth�treerrrr�s




cCs|dk	rt|�}nt}|dkr$t�}|��j}t|�t��}|D�]�}|jt	k�r�t
||�d��}	|�dd�}
|��}|
dk�r"|	|kr�t
d|	��|dkr�td|	��||	|
|d�}|dkr�t
d|	|
f��t|||	|d	|	h|B�}|j�r|jp�d
|j|_|dk�r|S|�||�n�|
dk�r�||	|
|�d�d
�}
|
dk�rZt
d|	|
f��|��}|dk	�r�|j�pvd
|
|_n0|dk�r�|
S|j�p�d
|
|j�p�d
|_|�|�nt
d|
��q@|jtk�r|��}|dk	�r|jt	k�rt
d|j��q@t
d|j��q@|S)Nrrrz recursive include of %r detectedrz5maximum xinclude depth reached when including file %s)rzcannot load %r as %r���textr)rz)unknown parse type in xi:include tag (%r)z0xi:fallback tag must be child of xi:include (%r)z0Invalid element found in XInclude namespace (%r))r%r!�setr*r�list�iter�XINCLUDE_ITER_TAG�tag�XINCLUDE_INCLUDEr�getZ	getparentr	rr,�tail�replaceZgetpreviousr3�remove�XINCLUDE_FALLBACK)r-r#r.r/Z
_parent_hrefsZload_includerZinclude_elements�err�parent�noder3Zpredecessorrrrr,�sx

�

��
�



�

���r,)N)NN)�__doc__�lxmlr�urlparser�urllib2r�ImportError�urllib.parse�urllib.requestZXINCLUDEr9r>r7ZDEFAULT_MAX_INCLUSION_DEPTHZLxmlSyntaxErrorr	rrr!r%rr,rrrr�<module>,s0	

�
�