gp!dZddlmZ ddlmZddlmZdZ e dzZ e dzZ e dzZ d ZGd d ejZGd d eZddZddZdZddefdZddedfdZy#e$rddlmZddl mZYawxYw)a Limited XInclude support for the ElementTree package. While lxml.etree has full support for XInclude (see `etree.ElementTree.xinclude()`), this module provides a simpler, pure Python, ElementTree compatible implementation that supports a simple form of custom URL resolvers. )etree)urljoin)urlopenz!{http://www.w3.org/2001/XInclude}includefallback*c eZdZy)FatalIncludeErrorN__name__ __module__ __qualname__D/opt/hc_python/lib64/python3.12/site-packages/lxml/ElementInclude.pyr r Krr c eZdZy)LimitedRecursiveIncludeErrorNr rrrrrOrrrNct|d}|dk(r$tj|j}n%|j }|sd}|j |}|j |S)Nrbxmlutf-8)openrparsegetrootreaddecodeclose)hrefrencodingfiledatas rdefault_loaderr$`s[ d D ~{{4 ((*yy{H{{8$JJL Krc|dk(r&tj||j}|Sd|vr t|}n t |d}|j }|j |sd}|j|}|S)Nrz://rr)rrrrrrrr)r rr!parserr#fs r_lxml_default_loaderr(qsv ~{{4(002 K D= AT4 Avvx  H{{8$ Krcdfd }|S)Nc|||SNr)r rr!r&loaders rloadz_wrap_et_loader..loadsdE8,,rNNr)r,r-s` r_wrap_et_loaderr/s - Krc0|d}n|dkrtd|z|Rt|dr|}|j}n|j}t|dr3|jj }nt|dr|j}t ||||y)Nrz;expected non-negative depth or None for 'max_depth', got %rrdocinfo) ValueErrorhasattrr getroottreer2URL_include)elemr,base_url max_depthtrees rrrs QVYbbcc 4 #D<<>D##%D 4 #||''H y !||~ T68Y/rc | t|}nt}| t}|jj}t |j t}|D]}|jtk(rt||jd} |jdd} |j} | dk(r| |vrtd| z|dk(rtd| z|| | |} | td| d | t| || |d z | h|z} |j r"| j xsd |j z| _| | cS| j#|| | d k(r|| | |jd } | td| d | |j%}||j xsd | z|_n/| | cS| j&xsd | z|j xsd z| _| j)|td| z|jt*k(rA|j} | | jtk7std|jztd|jz|S)Nr rrz recursive include of %r detectedrz5maximum xinclude depth reached when including file %s)r&z cannot load z as textr!)r!z)unknown parse type in xi:include tag (%r)z0xi:fallback tag must be child of xi:include (%r)z0Invalid element found in XInclude namespace (%r))r/r(setr5r&listiterXINCLUDE_ITER_TAGtagXINCLUDE_INCLUDErget getparentr rr7tailreplace getpreviousr?removeXINCLUDE_FALLBACK)r8r,r9r: _parent_hrefs load_includer&include_elementser rparentnoder? predecessors rr7r7st &v. +      & &F #$& 55$ $8QUU6]3DEE'5)E[[]F~=(+:TA>6ORVVXX#D%?<+26> fdIMD6MCYZ66!%bAFF :DI>Kq$'&#D%!%% :KL<+26> mmo *(3(8(8(>B$'FK$^K#);;#4""< ""MFK a '?%GUU' '[[]F!fjj4D&D'FN$BQUUJ ej Krr+r.)__doc__lxmlrurlparserurllib2r ImportError urllib.parseurllib.requestXINCLUDErErLrCDEFAULT_MAX_INCLUSION_DEPTHLxmlSyntaxErrorr rr$r(r/rr7rrrr^sX'  /i'z)sN   --  #4 " " &010(2$Do'$&'s A$$A87A8