a
    If                     @   s~   d dl Z ddlmZ d dlmZ dZed Zed ZdZG d	d
 d
e	Z
G dd de
ZdddZddefddZdd ZdS )    N   )ElementTree)urljoinz!{http://www.w3.org/2001/XInclude}includeZfallback   c                   @   s   e Zd ZdS )FatalIncludeErrorN__name__
__module____qualname__ r   r   )lib/python3.9/xml/etree/ElementInclude.pyr   C   s   r   c                   @   s   e Zd ZdS )LimitedRecursiveIncludeErrorNr   r   r   r   r   r   G   s   r   c                 C   s   |dkrBt | d}t| }W d    q1 s60    Y  n>|sJd}t | d|d}| }W d    n1 sv0    Y  |S )NxmlrbzUTF-8r)encoding)openr   parsegetrootread)hrefr   r   filedatar   r   r   default_loaderW   s    .&r   c                 C   sV   |d u rd}n|dk r"t d| t| dr4|  } |d u r@t}t| |||t  d S )Nr   z;expected non-negative depth or None for 'max_depth', got %rr   )
ValueErrorhasattrr   r   _includeset)elemloaderbase_url	max_depthr   r   r   r   t   s    
c                 C   s  d}|t | k r| | }|jtkr|d}|r>t||}|dd}|dkr||v rftd| |dkrztd| || |||}	|	d u rtd||f t|	}	t	|	|||d | |
| |jr|	jpd	|j |	_|	| |< n|d
krz||||d}
|
d u r&td||f |jr8|
|j7 }
|r^| |d  }	|	jpTd	|
 |	_n| jphd	|
 | _| |= qntd| n,|jtkrtd|j nt	||||| |d7 }qd S )Nr   r   r   r   zrecursive include of %sz5maximum xinclude depth reached when including file %szcannot load %r as %rr    textr   z)unknown parse type in xi:include tag (%r)z0xi:fallback tag must be child of xi:include (%r))lentagXINCLUDE_INCLUDEgetr   r   r   addcopyr   removetailr%   XINCLUDE_FALLBACK)r    r!   r"   r#   Z_parent_hrefsier   r   Znoder%   r   r   r   r      sd    











r   )N)r+   r$   r   Zurllib.parser   ZXINCLUDEr(   r.   ZDEFAULT_MAX_INCLUSION_DEPTHSyntaxErrorr   r   r   r   r   r   r   r   r   <module>3   s   

