File: //lib64/python3.9/site-packages/lxml/__pycache__/ElementInclude.cpython-39.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"