HEX
Server: nginx/1.28.3
System: Linux lightweb-s1 5.15.0-173-generic #183-Ubuntu SMP Fri Mar 6 13:29:34 UTC 2026 x86_64
User: dawonefr-98 (1071)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/lxml/__pycache__/ElementInclude.cpython-310.pyc
o

;/bp!�@s�dZddlmZzddlmZddlmZWney+ddlmZddl	mZYnwdZ
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@�eZdZdS)�FatalIncludeErrorN��__name__�
__module__�__qualname__�rr�5/usr/lib/python3/dist-packages/lxml/ElementInclude.pyr
K�r
c@r	)�LimitedRecursiveIncludeErrorNrrrrrrOrrNcCsHt|d�}|dkrt�|���}n
|��}|sd}|�|�}|��|S)N�rb�xml�utf-8)�openr�parse�getroot�read�decode�close)�hrefr�encoding�file�datarrr�default_loader`s

r cCs^|dkrt�||���}|Sd|vrt|�}nt|d�}|��}|��|s(d}|�|�}|S)Nrz://rr)rrrrrrrr)rrr�parserr�frrr�_lxml_default_loaderqs�


r#csd�fdd�	}|S)Ncs�|||�S�Nr)rrrr!��loaderrr�load�sz_wrap_et_loader.<locals>.load�NNr)r&r'rr%r�_wrap_et_loader�sr)cCs�|durd}n
|dkrtd|��|dur/t|d�r!|}|��}n|��}t|d�r.|jj}n	t|d�r8|��}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�|dur	t|�}nt}|durt�}|��j}t|�t��}|D]�}|jt	kr�t
||�d��}	|�dd�}
|��}|
dkr�|	|vrGt
d|	��|dkrQtd|	��||	|
|d�}|durdt
d|	|
f��t|||	|d	|	h|B�}|jr}|jpxd
|j|_|dur�|S|�||�q |
dkr�||	|
|�d�d
�}
|
dur�t
d|	|
f��|��}|dur�|jp�d
|
|_n|dur�|
S|jp�d
|
|jp�d
|_|�|�q t
d|
��|jtkr�|��}|dur�|jt	kr�t
d|j��q t
d|j��|S)Nrrrz recursive include of %r detectedrz5maximum xinclude depth reached when including file %s)r!zcannot 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�get�	getparentr
rr0�tail�replace�getpreviousr7�remove�XINCLUDE_FALLBACK)r1r&r2r3�
_parent_hrefs�load_includer!�include_elements�err�parent�noder7�predecessorrrrr0�sz

�
��
�
��
���r0r$r()�__doc__�lxmlr�urlparser�urllib2r�ImportError�urllib.parse�urllib.request�XINCLUDEr=rDr;�DEFAULT_MAX_INCLUSION_DEPTH�LxmlSyntaxErrorr
rr r#r)rr0rrrr�<module>s2+	�


��