o [d@s~ddlZddlmZddlmZdZedZedZdZGd d d e Z Gd d d e Z dd dZ ddefddZ ddZdS)N) ElementTree)urljoinz!{http://www.w3.org/2001/XInclude}includefallbackc@ eZdZdS)FatalIncludeErrorN__name__ __module__ __qualname__rr//usr/lib/python3.10/xml/etree/ElementInclude.pyr Cr c@r)LimitedRecursiveIncludeErrorNr rrrrrGrrcCs|dkr#t|d}t|}Wd|S1swY|S|s'd}t|d|d }|}Wd|S1s>wY|S)NxmlrbzUTF-8r)encoding)openrparsegetrootread)hrefrrfiledatarrrdefault_loaderWs    rcCsV|durd}n |dkrtd|t|dr|}|dur t}t||||tdS)Nrz;expected non-negative depth or None for 'max_depth', got %rr) ValueErrorhasattrrr_includeset)elemloaderbase_url max_depthrrrrts  c Csd}|t|kr||}|jtkr|d}|rt||}|dd}|dkrv||vr1td||dkr;td||||||} | durQtd||ft| } t | |||d|| ||j rq| j pld |j | _ | ||<nX|d kr||||d } | durtd||f|j r| |j 7} |r||d} | j pd | | _ n|j pd | |_ ||=qtd ||jt krtd |jt ||||||d7}|t|ksdSdS)Nrrrrzrecursive include of %sz5maximum xinclude depth reached when including file %szcannot load %r as %rrtextrz)unknown parse type in xi:include tag (%r)z0xi:fallback tag must be child of xi:include (%r))lentagXINCLUDE_INCLUDEgetrr raddcopyr!removetailr(XINCLUDE_FALLBACK) r#r$r%r& _parent_hrefsierrnoder(rrrr!sf                r!)N)r.r'r urllib.parserXINCLUDEr+r1DEFAULT_MAX_INCLUSION_DEPTH SyntaxErrorr rrrr!rrrrs2