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: //lib/python3/dist-packages/lxml/__pycache__/ElementInclude.cpython-38.pyc
U

o��]p!�@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}�includeZfallback�*�c@seZdZdS)�FatalIncludeErrorN��__name__�
__module__�__qualname__�r
r
�5/usr/lib/python3/dist-packages/lxml/ElementInclude.pyrKsrc@seZdZdS)�LimitedRecursiveIncludeErrorNr	r
r
r
rrOsrNcCsHt|d�}|dkr"t�|���}n|��}|s2d}|�|�}|��|S)N�rb�xml�utf-8)�openr�parse�getroot�read�decode�close)�hrefr�encoding�file�datar
r
r�default_loader`s

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


r csd�fdd�	}|S)Ncs�|||�S)Nr
)rrrr��loaderr
r�load�sz_wrap_et_loader.<locals>.load)NNr
)r"r#r
r!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&ZURL�_include)�elemr"�base_url�	max_depthZtreer
r
rr�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	getparentrrr*�tail�replaceZgetpreviousr0�remove�XINCLUDE_FALLBACK)r+r"r,r-Z
_parent_hrefsZload_includerZinclude_elements�err�parentZnoder0Zpredecessorr
r
rr*�sx

�

��
�



�

���r*)N)NN)�__doc__ZlxmlrZurlparserZurllib2r�ImportErrorZurllib.parseZurllib.requestZXINCLUDEr6r;r4ZDEFAULT_MAX_INCLUSION_DEPTHZLxmlSyntaxErrorrrrr r$rr*r
r
r
r�<module>,s0	

�
�