U
    k]e                     @   sP   d dl Z ddlmZ dZed Zed ZG dd deZdd	d
ZdddZ	dS )    N   )ElementTreez!{http://www.w3.org/2001/XInclude}includeZfallbackc                   @   s   e Zd ZdS )FatalIncludeErrorN)__name__
__module____qualname__ r	   r	   ./usr/lib/python3.8/xml/etree/ElementInclude.pyr   >   s   r   c              	   C   s\   |dkr.t | d}t| }W 5 Q R X n*|s6d}t | d|d}| }W 5 Q R X |S )NxmlrbzUTF-8r)encoding)openr   parseZgetrootread)hrefr   r   filedatar	   r	   r
   default_loaderM   s    r   c                 C   sh  |d krt }d}|t| k rd| | }|jtkr4|d}|dd}|dkr|||}|d krrtd||f t|}|jr|jpd|j |_|| |< n|dkr&||||d}|d krtd||f |r| |d	  }|jpd| |jpd |_n| jpd| |jpd | _| |= qntd
| n&|jt	krPtd|j n
t
|| |d	 }qd S )Nr   r   r   r   zcannot load %r as %r textr   r   z)unknown parse type in xi:include tag (%r)z0xi:fallback tag must be child of xi:include (%r))r   lentagXINCLUDE_INCLUDEgetr   copytailr   XINCLUDE_FALLBACKr   )elemloaderier   r   Znoder   r	   r	   r
   r   c   sN    







)N)N)
r   r   r   ZXINCLUDEr   r   SyntaxErrorr   r   r   r	   r	   r	   r
   <module>3   s   
