Ë Ú±J LËï-ã ó´—ddlmZmZmZmZmZmZddlmZddl m Z ddl m Z m Z mZmZmZddlmZmZddlmZmZmZmZmZmZmZmZmZgd¢Zeee ed d fZeee fZ eee fZ!d ed e"fd „Z# ddedeedee$de"d eeeff d„Z% dde deedee$d eeeffd„Z& dde!dee$de"d eeeffd„Z' ddedee$deedeeed ef d„Z(y)é)ÚcastÚAnyÚIteratorÚListÚOptionalÚUnioné)ÚNamespacesType)ÚElementPathTypeError)ÚElementProtocolÚLxmlElementProtocolÚDocumentProtocolÚLxmlDocumentProtocolÚXsdElementProtocol)Úis_etree_documentÚis_etree_element) ÚSchemaElemTypeÚ ChildNodeTypeÚElementMapTypeÚTextNodeÚ CommentNodeÚProcessingInstructionNodeÚ ElementNodeÚSchemaElementNodeÚ DocumentNode)Ú RootArgTypeÚ get_node_treeÚbuild_node_treeÚbuild_lxml_node_treeÚbuild_schema_node_treerrÚobjÚreturncóT—t|d«xrt|d«xr t|d« S)NÚ xsd_versionÚmapsÚparent)Úhasattr)r!s ú>/usr/lib/python3.12/site-packages/elementpath/tree_builders.pyÚ is_schemar)s,€Ü �3˜ Ó &Ò ^¬7°3¸Ó+?Ò ^ÌÐPSÐU]ÓH^ÐD^Ð^óNÚrootÚ namespacesÚuriÚfragmentcó¼—t|ttf«rX|�|j€||_|r?t|t«r/|j «}|j€|j|_|S|St |«r#|rt t|«j «n|}nMt|«r&tt t|«j«s|}nd}t|j|««‚t|d«rtt t |«||«St|d«r&t|d«rt#t t$|«|«St't t(|«||«S)a“ Returns a tree of XPath nodes that wrap the provided root tree. :param root: an Element or an ElementTree or a schema or a schema element. :param namespaces: an optional mapping from prefixes to namespace URIs, Ignored if root is a lxml etree or a schema structure. :param uri: an optional URI associated with the root element or the document. :param fragment: if `True` a root element is considered a fragment, otherwise a root element is considered the root of an XML document. If the root is a document node or an ElementTree instance, and fragment is `True` then use the root element and returns an element node. zIinvalid root {!r}, an Element or an ElementTree or a schema node requiredÚxpathr$r%)Ú isinstancerrr-ÚgetrootrrrrÚcallabler Útagr Úformatr'rÚ LxmlRootTyper rrÚElementTreeRootType)r+r,r-r.Ú root_nodeÚ_rootÚmsgs r(rr#s.€ô �$œ¤{Ð3Ô4Ø ˆ?˜tŸx™xÐ/؈DŒHá œ  4¬Ô6ØŸ ™ ›ˆIØ�}‰}Ð$Ø $§¡� ” ØÐ àˆ ô˜ÔÙ:B”Ô% tÓ,×4Ñ4Ô6È‰Ü ˜$Ô ¬´´oÀtÓ1L×1PÑ1PÔ(Q؉àYˆÜ" 3§:¡:¨dÓ#3Ó4Ð4äˆu�gÔä#Ü ”˜uÓ % s¨Hó ð ô �˜ Ô &¬7°5¸&Ô+Aä%Ü ” Ó &¨ó ð ôÜ Ô$ dÓ +¨Z¸ó ð r*cóЇ‡ ‡ ‡ ‡—dŠdtfˆ ˆ ˆˆ ˆfd„ }t|d«rktt|«}t ||‰«Š ‰ }‰dz Š|j Š |j «}|€|S|Š |«}‰ jj|«|Š n|Š dŠ iŠ |«x}Š ‰ |_|�||_ t‰ «}g} g} |D]ðŠ t‰ j«s|«}n9‰ jjdk(rt‰ ‰ ‰«}‰dz Šn t‰ ‰ ‰«}‰ jj|«‰ j �5‰ jjt#‰ j ‰ ‰««‰dz Št%‰ «sŒÁ| j‰ «|Š | j|«t‰ «}n# | j'«| j'«c}Š �Œ#t($r|cYSwxYw)a Returns a tree of XPath nodes that wrap the provided root tree. :param root: an Element or an ElementTree. :param namespaces: an optional mapping from prefixes to namespace URIs. :param uri: an optional URI associated with the document or the root element. r r"cóF•—t‰‰‰‰«}‰dz Š|‰‰<‰t|j«td|jv«zt‰j«zz Љj �5|j jt‰j |‰««‰dz Š|S©Nr Úxml) rÚlenÚnsmapÚintÚattribÚtextÚchildrenÚappendr)ÚnodeÚelemÚelementsr,r&Úpositions €€€€€r(Úbuild_element_nodez+build_node_tree..build_element_nodejs“ø€ô˜4 ¨°:Ó>ˆØ�A‰ ˆØˆ�‰ð ”C˜Ÿ ™ “O¤c¨%°t·z±zÐ*AÓ&BÑBÄSÈÏÉÓEUÑUÑUˆà �9‰9Ð Ø �M‰M× Ñ ¤¨$¯)©)°T¸8Ó!DÔ EØ ˜‰MˆHàˆ r*ÚparseNÚComment)rr'rrrrHr2rDrEr-Úiterr3r4Ú__name__rrÚtailrr?ÚpopÚ IndexError)r+r,r-rJÚdocumentr8Ú root_elemÚchildrDÚ iteratorsÚ ancestorsrGrHr&rIs ` @@@@r(rrXsåü€ð €Hð¤ ÷ñô ˆt�WÔÜÔ(¨$Ó/ˆÜ˜h¨¨XÓ6ˆØˆ Ø�A‰ ˆØ×%Ñ%ˆà×$Ñ$Ó&ˆ Ø Ð ØÐ àˆÙ"Ó$ˆØ�‰×јuÔ%Ø‰àˆØˆØˆÙ/Ó1Ð1ˆ �FØ%ˆ ÔØ ˆ?؈IŒMä�D‹z€HØ€IØ€Ià ÛˆDܘDŸH™HÔ%Ù*Ó,‘Ø—‘×"Ñ" iÒ/Ü# D¨&°(Ó;�ؘA‘ ‘ä1°$¸ÀÓI�à �O‰O× "Ñ " 5Ô )Ø�y‰yÐ$Ø—‘×&Ñ&¤x°· ± ¸6À8Ó'LÔMؘA‘ �ä�4�yØ× Ñ  Ô(Ø�Ø× Ñ  Ô*Ü ›:�Ùð'ð* !Ø#,§=¡=£?°I·M±M³OÐ �˜&ñ/ øô0ò !Ø Ò ð !úsÆ4!GÇ G%Ç$G%cóv‡ ‡ ‡ ‡‡‡—dŠdtfˆ ˆˆˆfd„ Š dtfˆ ˆ ˆ ˆˆfd„ }|rSt|d«r0tt|«j «}|€ d}t |«‚|Š n|Š dŠiЉ «x}Љ|_nût|d«rNtt|«}t|‰¬«x}Љdz Š|j «}|€|S|Š |j Š|«Šn¡|j«€{|j«}t|d ¬«x}Š|j «}|€J‚|Š |j Š|«Št|j«dk(r1|j ‰_d‰_ ‰}n|Š dŠiЉ «x}Љ|_t‰ «}g} g} |�||_ |D]ðŠ t‰ j «s‰ «Š n9‰ j j"d k(rt%‰ ‰‰«Š ‰dz Šn t'‰ ‰‰«Š ‰jj)‰ «‰ j*�5‰jj)t-‰ j*‰‰««‰dz Št‰ «sŒÁ| j)‰«‰ Š| j)|«t‰ «}n# | j/«| j/«c}Š�Œ#t0$r|cYSwxYw) ah Returns a tree of XPath nodes that wrap the provided lxml root tree. :param root: a lxml Element or a lxml ElementTree. :param uri: an optional URI associated with the document or the root element. :param fragment: if `True` a root element is considered a fragment, otherwise a root element is considered the root of an XML document. r r"cóZ•—t‰‰‰‰j«}‰dz Š|‰‰<‰t‰j«td‰jv«zt‰j«zz Љj �5|j jt‰j |‰««‰dz Š|Sr=) rr@r?rArBrCrDrEr)rFrGrHr&rIs €€€€r(Úbuild_lxml_element_nodez5build_lxml_node_tree..build_lxml_element_nodeÅs—ø€ô˜4 ¨°4·:±:Ó>ˆØ�A‰ ˆØˆ�‰ð ”C˜Ÿ ™ “O¤c¨%°t·z±zÐ*AÓ&BÑBÄSÈÏÉÓEUÑUÑUˆà �9‰9Ð Ø �M‰M× Ñ ¤¨$¯)©)°T¸8Ó!DÔ EØ ˜‰MˆHàˆ r*c󈕗t‰jd¬«D�cgc]}|‘Œc}«D]m}|jjdk(r'‰jj t |‰‰««n&‰jj t|‰‰««‰dz ŠŒo‰«}‰jj |«‰j«D]m}|jjdk(r'‰jj t |‰‰««n&‰jj t|‰‰««‰dz ŠŒo|Scc}w)NT)Ú precedingrLr )ÚreversedÚ itersiblingsr4rNrDrErr)ÚxÚerFrYrTrGr&rIs €€€€€r(Úbuild_document_nodez1build_lxml_node_tree..build_document_nodeÕsø€ô  d×&7Ñ&7À$Ð&7Ô&GÓHÑ&G š1Ð&GÑHÖIˆAØ�u‰u�~‰~ Ò*Ø—‘×&Ñ&¤{°1°f¸hÓ'GÕHà—‘×&Ñ&Ô'@ÀÀFÈHÓ'UÔVØ ˜‰M‰Hð Jñ'Ó(ˆØ�‰×јtÔ$à×"Ñ"Ö$ˆAØ�u‰u�~‰~ Ò*Ø—‘×&Ñ&¤{°1°f¸hÓ'GÕHà—‘×&Ñ&Ô'@ÀÀFÈHÓ'UÔVØ ˜‰M‰Hð %ðˆ ùò#Is› D?rKNz5requested a fragment of an empty ElementTree document)rIrrL)rr'rrr2r rHrÚ getparentÚ getroottreer?rDr&rMr-r3r4rNrrrErOrrPrQ)r+r-r.r`rSr:r8rRrDrUrVrYrTrGrHr&rIs @@@@@@r(rr²sÉý€ð"€Hð¤[÷ðð ¤÷ññ0Ü �4˜Ô !ÜÔ1°4Ó8×@Ñ@ÓBˆIØÐ ØM�Ü*¨3Ó/Ð/؉DàˆDàˆØˆÙ4Ó6Ð6ˆ �FØ%ˆ Õä ��wÔ ÜÔ,¨dÓ3ˆÜ)¨(¸XÔFÐFˆ �FØ�A‰ ˆà×$Ñ$Ó&ˆ Ø Ð ØÐ àˆØ×%Ñ%ˆÙ$Ó&‰à �‰Ó Ð !à×#Ñ#Ó%ˆÜ)¨(¸QÔ?Ð?ˆ �Fà×$Ñ$Ó&ˆ ØÐ$Ð$Ð$àˆØ×%Ñ%ˆÙ$Ó&ˆä ˆy×!Ñ!Ó " aÒ 'à'×0Ñ0ˆFŒOØ ˆFŒM؉IàˆØˆØˆÙ4Ó6Ð6ˆ �FØ%ˆ Ôä�D‹z€HØ€IØ€Ià €Øˆ Œ à ÛˆDܘDŸH™HÔ%Ù/Ó1‘Ø—‘×"Ñ" iÒ/Ü# D¨&°(Ó;�ؘA‘ ‘ä1°$¸ÀÓI�à �O‰O× "Ñ " 5Ô )Ø�y‰yÐ$Ø—‘×&Ñ&¤x°· ± ¸6À8Ó'LÔMؘA‘ �ä�4�yØ× Ñ  Ô(Ø�Ø× Ñ  Ô*Ü ›:�Ùð'ð* !Ø#,§=¡=£?°I·M±M³OÐ �˜&ñ/ øô0ò !Ø Ò ð !úsÊ!J*Ê* J8Ê7J8rHÚglobal_elementsc󦇇‡‡—dŠ|€in|Šdtfˆˆˆˆfd„ }t|«}|ŠdŠ|«x}Љ|_|�||_|�|j |«nt |«r |j }ng}||i}g}g} g} |D]¿Š|«} ‰j| _‰j j | «‰|vr3‰j€|‰j | _Œ[|j | «Œm| |‰<‰j€1| j ‰«| Š| j |«t‰«}n5|j | «ŒÁ | j«| j«c}ŠŒç#t$rc|D]Y} | jŠtt‰j«} |D]}|j| usŒ|| _ ŒFt| ‰|¬«| _ Œ[|cYSwxYw)aÎ Returns a tree of XPath nodes that wrap the provided XSD schema structure. :param root: a schema or a schema element. :param uri: an optional URI associated with the root element. :param elements: a shared map from XSD elements to tree nodes. Provided for linking together parts of the same schema or other schemas. :param global_elements: a list for schema global elements, used for linking the elements declared by reference. r Nr"cóØ•—t‰‰‰‰j«}‰dz Š|‰‰<‰t‰j«td‰jv«zt‰j«zz Š|Sr=)rr,r?rArB)rFÚ _elementsrGr&rIs €€€€r(Úbuild_schema_element_nodez9build_schema_node_tree..build_schema_element_node[siø€ô!  v¨x¸¿¹ÓIˆØ�A‰ ˆØˆ �$‰ð ”C˜Ÿ™Ó(¬3¨u¸D¿O¹OÐ/KÓ+LÑLÌsÐSW×S^ÑS^ÓO_Ñ_Ñ_ˆàˆ r*)rHrc)rrMrHr-rEr)rDÚtypeÚxsd_typeÚrefrPrQrGrrr )r+r-rHrcrgrDr8Ú local_nodesÚ ref_nodesrUrVrTÚ element_noderjÚotherrfrGr&rIs @@@@r(r r Dsòû€ð(€HØÐ&‘¨H€Ið Ô'8÷ ð ô�D‹z€HØ €DØ €FÙ2Ó4Ð4€I�Ø"€IÔØ €Øˆ Œ àÐ"Ø×јyÕ)Ü �4ŒØ#×,Ñ,‰ðˆà˜Ð#€KØ)+€IØ€IØ€Ià ÛˆDÙ-Ó/ˆEØ!ŸY™YˆEŒNØ �O‰O× "Ñ " 5Ô )à�{Ñ"Ø—8‘8Ð#Ø%0°Ñ%6×%?Ñ%?�E•Nà×$Ñ$ UÕ+à$)� ˜DÑ!Ø—8‘8Ð#Ø×$Ñ$ VÔ,Ø"�FØ×$Ñ$ XÔ.Ü# D›z�HÙà×$Ñ$ UÕ+ð'ð* !Ø#,§=¡=£?°I·M±M³OÐ �˜&ð/ øô0ò !ã$-�LØ'×,Ñ,�DÜÔ1°4·8±8Ó<�Có"1˜Ø Ÿ:™:¨Ò,Ø/4˜LÔ,Ù!ð"1ô ,Bب)À_ô,˜ Õ(ð%.ð!Ò ð# !úsÅ!E$Å$AGÆ,!GÇG)NNF)NN)NF)NNN))Útypingrrrrrrr,r Ú exceptionsr Ú protocolsr r rrrÚetreerrÚ xpath_nodesrrrrrrrrrÚ__all__rr7r6Úboolr)Ústrrrrr ©r*r(Úrxs·ð÷>×=å&Ý,÷?õ?ç6÷1÷1õ1ò =€ðÐ$ o°~Ø" Mð2ñ3€ ðÐ,¨oÐ=Ñ>ÐØÐ)Ð+>Ð>Ñ?€ ð_�3ð_˜4ó_ð :>Ø'+Ø#(ñ2 ˜ ð2 Ø& ~Ñ6ð2 à ‘}ð2 ð!ð2 ð.3°<ÀÐ3LÑ-Mó2 ðl<@Ø)-ñW!Ð-ðW!Ø (¨Ñ 8ðW!à! #™ðW!à27¸ ÀkÐ8QÑ2RóW!ðv/3Ø*/ñO!˜|ðO!Ø& s™mðO!à#'ðO!à49¸,È Ð:SÑ4TóO!ðf15Ø@DØLPña! ða!Ø (¨¡ ða!à%-¨nÑ%=ða!ð-5°T¸-Ñ5HÑ,Iða!ð ô a!r*