B
     S]                 @   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	   )lib/python3.7/xml/etree/ElementInclude.pyr   >   s   r   c          	   C   s\   |dkr.t | d}t| }W d Q R X n*|s6d}t | d|d}| }W d 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   sp  |d krt }d}xX|t| k rj| | }|jtkr:|d}|dd}|dkr|||}|d krvt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rVtd|j n
t
|| |d	 }qW 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   sF    





)N)N)
r   r   r   ZXINCLUDEr   r   SyntaxErrorr   r   r   r	   r	   r	   r
   <module>3   s   
