File: //lib64/python3.9/site-packages/lxml/__pycache__/ElementInclude.cpython-39.opt-1.pyc
a
    ��ap!  �                   @   s�   d Z ddlmZ zddlmZ ddlmZ W n* eyV   ddlmZ ddl	mZ Y n0 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                   @   s   e Zd ZdS )�FatalIncludeErrorN��__name__�
__module__�__qualname__� r   r   �9/usr/lib64/python3.9/site-packages/lxml/ElementInclude.pyr	   K   s   r	   c                   @   s   e Zd ZdS )�LimitedRecursiveIncludeErrorNr
   r   r   r   r   r   O   s   r   Nc                 C   sH   t | 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    
r   c                 C   s\   |dkrt �| |��� }n>d| v r,t| �}n
t| d�}|�� }|��  |sNd}|�|�}|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#   r$   r   r"