File: //lib/python3/dist-packages/lxml/__pycache__/ElementInclude.cpython-310.pyc
o
;/bp! � @ s� d Z ddlmZ zddlmZ ddlmZ W n ey+ ddlmZ ddl mZ Y nw dZ
e
d Ze
d Ze
d Z
d ZG d
d� dej�ZG dd
� 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 @ � e Zd ZdS )�FatalIncludeErrorN��__name__�
__module__�__qualname__� r r �5/usr/lib/python3/dist-packages/lxml/ElementInclude.pyr
K � r
c @ r )�LimitedRecursiveIncludeErrorNr r r r r r O r r Nc C sH t | d�}|dkrt�|��� }n
|�� }|sd}|�|�}|�� |S )N�rb�xml�utf-8)�openr �parse�getroot�read�decode�close)�hrefr �encoding�file�datar r r �default_loader` s
r c C s^ |dkrt �| |��� }|S d| v rt| �}nt| d�}|�� }|�� |s(d}|�|�}|S )Nr z://r r )r r r r r r r r )r r r �parserr �fr r r �_lxml_default_loaderq s �
r# c s d� fdd� }|S )Nc s � | ||�S �Nr )r r r r! ��loaderr r �load� s z_wrap_et_loader.<locals>.load�NNr )r&