grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026a õ¶ap!ã@sÜdZddlmZzddlmZddlmZWn*eyVddlmZddl mZYn0dZ e dZ e dZ e dZ d ZGd d „d ejƒZGd d „d eƒZddd„Zddd„Zdd„Zddefdd„Zddedfdd„ZdS)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}ÚincludeÚfallbackÚ*éc@s eZdZdS)ÚFatalIncludeErrorN©Ú__name__Ú __module__Ú __qualname__©rrú9/usr/lib64/python3.9/site-packages/lxml/ElementInclude.pyr Ksr c@s eZdZdS)ÚLimitedRecursiveIncludeErrorNr rrrrrOsrNcCsHt|dƒ}|dkr"t |¡ ¡}n| ¡}|s2d}| |¡}| ¡|S)NÚrbÚxmlúutf-8)ÚopenrÚparseÚgetrootÚreadÚdecodeÚclose)ÚhrefrÚencodingÚfileÚdatarrrÚdefault_loader`s  rcCs\|dkrt ||¡ ¡}n>d|vr,t|ƒ}n t|dƒ}| ¡}| ¡|sNd}| |¡}|S)Nrz://rr)rrrrrrrr)rrrÚparserrÚfrrrÚ_lxml_default_loaderqs   r!csd‡fdd„ }|S)Ncs ˆ|||ƒS)Nr)rrrr©ÚloaderrrÚload…sz_wrap_et_loader..load)NNr)r#r$rr"rÚ_wrap_et_loader„sr%cCs‚|durd}n|dkr"td|ƒ‚|dur^t|dƒrB|}| ¡}n| ¡}t|dƒrp|jj}nt|dƒrp| ¡}t||||ƒdS)Néÿÿÿÿrz;expected non-negative depth or None for 'max_depth', got %rrÚdocinfo)Ú ValueErrorÚhasattrrÚ getroottreer'ZURLÚ_include)Úelemr#Úbase_urlÚ max_depthZtreerrrrœs      cCs|durt|ƒ}nt}|dur$tƒ}| ¡j}t| t¡ƒ}|D�]Ð}|jt k�rÊt ||  d¡ƒ} |  dd¡} |  ¡} | dk�r"| |vr”t d| ƒ‚|dkr¨td| ƒ‚|| | |d�} | durÎt d| | fƒ‚t| || |d | h|Bƒ} |j�r| jpød |j| _| du�r| S|  || ¡n¦| d k�r¼|| | |  d ¡d �} | du�rZt d| | fƒ‚| ¡}|du�r€|j�pvd | |_n0| du�r’| S| j�pœd | |j�pªd | _|  |¡n t d| ƒ‚q@|jtk�r|  ¡} | du�r| jt k�rt d|jƒ‚q@t d|jƒ‚q@|S)Nrrrz recursive include of %r detectedrz5maximum xinclude depth reached when including file %s)rzcannot load %r as %réÚÚtextr)rz)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!Úsetr*rÚlistÚiterÚXINCLUDE_ITER_TAGÚtagÚXINCLUDE_INCLUDErÚgetZ getparentr rr+ÚtailÚreplaceZ getpreviousr1ÚremoveÚXINCLUDE_FALLBACK)r,r#r-r.Z _parent_hrefsZ load_includerZinclude_elementsÚerrÚparentZnoder1Z predecessorrrrr+°sx  ÿ    ÿÿ ÿ    ÿ   ÿ ÿÿr+)N)NN)Ú__doc__ZlxmlrÚurlparserZurllib2rÚ ImportErrorÚ urllib.parseZurllib.requestZXINCLUDEr7r<r5ZDEFAULT_MAX_INCLUSION_DEPTHZLxmlSyntaxErrorr rrr!r%rr+rrrrÚ,s.      ÿ ÿ