
    Rh                         d dl Z ddlmZ d dlmZ dZedz   Zedz   ZdZ G d	 d
e	      Z
 G d de
      ZddZddefdZd Zy)    N   )ElementTree)urljoinz!{http://www.w3.org/2001/XInclude}includefallback   c                       e Zd Zy)FatalIncludeErrorN__name__
__module____qualname__     //usr/lib/python3.12/xml/etree/ElementInclude.pyr
   r
   C       r   r
   c                       e Zd Zy)LimitedRecursiveIncludeErrorNr   r   r   r   r   r   G   r   r   r   c                    |dk(  r:t        | d      5 }t        j                  |      j                         }d d d        |S |sd}t        | d|      5 }|j	                         }d d d        |S # 1 sw Y   S xY w# 1 sw Y   S xY w)NxmlrbzUTF-8r)encoding)openr   parsegetrootread)hrefr   r   filedatas        r   default_loaderr!   W   s    ~$ 	5$$T*224D	5 K	 H$h/ 	499;D	K	5 K	Ks   $A-A:-A7:Bc                     |d}n|dk  rt        d|z        t        | d      r| j                         } |t        }t	        | |||t                      y )Nr   z;expected non-negative depth or None for 'max_depth', got %rr   )
ValueErrorhasattrr   r!   _includeset)elemloaderbase_url	max_depths       r   r   r   t   sW    		QVYbbcctY||~~T68Y6r   c                    d}|t        |       k  r| |   }|j                  t        k(  r|j                  d      }|rt	        ||      }|j                  dd      }|dk(  r||v rt        d|z        |dk(  rt        d|z        |j                  |        |||      }	|	t        d|d|      t        j                  |	      }	t        |	|||d	z
  |       |j                  |       |j                  r"|	j                  xs d
|j                  z   |	_        |	| |<   n|dk(  r ||||j                  d            }
|
t        d|d|      |j                  r|
|j                  z  }
|r!| |d	z
     }	|	j                  xs d
|
z   |	_        n| j                  xs d
|
z   | _        | |= t        d|z        |j                  t        k(  rt        d|j                  z        t        |||||       |d	z  }|t        |       k  ry y )Nr   r   r   r   zrecursive include of %sz5maximum xinclude depth reached when including file %szcannot load z as r    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+   _parent_hrefsier   r   noder.   s              r   r&   r&      s   	A
c$i-G55$$55=Dx.EE'5)E~=(+,E,LMM>6ORVVX X!!$'dE*<+26>  yyvtY]MJ$$T*66!%bAFF :DIQ&dE155+<=<+26>  66AFFND!9D!%bD 8DI!%bD 8DIG'?%G  UU''#BQUUJ  Q)]C	Qg c$i-r   )N)r4   r-   r   urllib.parser   XINCLUDEr1   r7   DEFAULT_MAX_INCLUSION_DEPTHSyntaxErrorr
   r   r!   r   r&   r   r   r   <module>r@      sf   f    .i' z)    	 		#4 	 	: 176r   