a DOg @sddlZddlZddlmZmZmZmZddlTddlm Z m Z ej j j ej j jfZGdddej j Z ee ddd ee d d d ee d d d ddZddZddZddZddZGddde ZGddde Zeeddd eed dd eedd d Gd!d"d"eZeed#d$d eZGd%d&d&eZeddZGd'd(d(e Zeed)d*d eed d+d d,d-ZGd.d/d/ZGd0d1d1ee Z Gd2d3d3ee Z!ee!d#d4d Gd5d6d6e!Z"ee"d7d8d ee"d9d:d d;d<Z#d=d>Z$Gd?d@d@e!Z%GdAdBdBe"Z&GdCdDdDeZ'ee'd#dEd GdFdGdGZ(GdHdIdIe(ee Z)GdJdKdKe(e Z*GdLdMdMe(ee Z+GdNdOdOe Z,GdPdQdQeZ-dRdSZ.GdTdUdUe e Z/ee/dVdWd dXdYZ0dZd[Z1d\d]Z2ddd^d_Z3ded`daZ4dfdbdcZ5dS)gN)EMPTY_NAMESPACE EMPTY_PREFIXXMLNS_NAMESPACEdomreg)*)DOMImplementationLS DocumentLSc@seZdZdZdZdZdZdZeZ ddZ d2ddZ d3dd Z d d Z d d ZddZddZddZddZddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Z dS)4NodeNcCsdS)NTselfr r 4/opt/alt/python39/lib64/python3.9/xml/dom/minidom.py__bool__+sz Node.__bool__cCs|dd||SN) toprettyxml)r encoding standaloner r r toxml.sz Node.toxml  cCsz|durt}ntjt|ddd}|jtjkrJ||d||||n||d|||durj|S| SdS)Nxmlcharrefreplacer)rerrorsnewliner) ioStringIO TextIOWrapperBytesIOnodeTyper DOCUMENT_NODEwritexmlgetvaluedetach)r indentnewlrrwriterr r r r1s   zNode.toprettyxmlcCs t|jSN)bool childNodesr r r r hasChildNodesDszNode.hasChildNodescCs|jSr&r(r r r r _get_childNodesGszNode._get_childNodescCs|jr|jdSdSNrr*r r r r _get_firstChildJszNode._get_firstChildcCs|jr|jdSdSNr*r r r r _get_lastChildNszNode._get_lastChildcCs|j|jkr,t|jD]}|||q|S|j|jvrTtjdt |t |f|j durj|j ||dur~| |nz|j |}WntytjYn0|jtvrt||j||||_||_|r|j|d}||_||_nd|_||_ |S)N%s cannot be child of %s)rDOCUMENT_FRAGMENT_NODEtupler( insertBefore_child_node_typesxmldomHierarchyRequestErrrepr parentNode removeChild appendChildindex ValueError NotFoundErr_nodeTypes_with_children_clear_id_cacheinsert nextSiblingpreviousSibling)r newChildrefChildcr>noder r r r5Rs8       zNode.insertBeforecCs|j|jkr*t|jD]}||q|S|j|jvrTtjdt |t |fn|jt vrft ||j dur||j |t||d|_|SNr1)rr3r4r(r=r6r7r8r9r:rArBr;r< _append_childrD)r rIrHr r r r=rs       zNode.appendChildcCs|j|jkr(|j}|||||S|j|jvrPtjdt |t |f||ur\dS|j durr|j |z|j |}Wnt ytjYn0||j |<||_ d|_ |jtvs|jtvrt||j|_|j|_d|_d|_|jr||j_|jr ||j_|SrJ)rr3rDr<r5r6r7r8r9r:r;r(r>r?r@rArBrE)r rFoldChildrGr>r r r replaceChilds@         zNode.replaceChildcCs~z|j|Wnty,tjYn0|jdurB|j|j_|jdurV|j|j_d|_|_|jt vrtt |d|_ |Sr&) r(remover?r7r8r@rDrErrArBr;r rLr r r r<s       zNode.removeChildcCsg}|jD]}|jtjkr|jsJ|r0|j|d_|jr@|j|j_|q|r|dj|jkr|d}|j|j|_|j|_|jr||j_|q||q |||jtj kr | q ||jdd<dSr.) r(rr TEXT_NODEdatarDrEunlinkappend ELEMENT_NODE normalize)r LchildrIr r r rUs*          zNode.normalizecCst|||jp|Sr&) _clone_node ownerDocument)r deepr r r cloneNodeszNode.cloneNodecCs|jj||Sr&)rYimplementation hasFeaturer featureversionr r r isSupportedszNode.isSupportedcCsdSr&r r r r r _get_localNameszNode._get_localNamecCs||uSr&r r otherr r r isSameNodeszNode.isSameNodecCs||dr|SdSdSr&)rar r_r r r getInterfaces zNode.getInterfacec Cs.z|j|dWSttfy(YdS0dSr,) _user_dataAttributeErrorKeyErrorr keyr r r getUserDataszNode.getUserDatacCsld}z |j}Wnty*i}||_Yn0||vr@||d}|dur\d}|durh||=n ||f||<|Sr,)rhri)r rlrQhandlerolddr r r setUserDatas     zNode.setUserDatacCsDt|dr@t|jD]&\}\}}|dur||||||qdS)Nrh)hasattrlistrhitemsZhandle)r operationsrcZdstrlrQrnr r r _call_user_data_handlers zNode._call_user_data_handlercCs>d|_|_|jr.|jD] }|qt|_d|_d|_dSr&)r;rYr(rRNodeListrErD)r rWr r r rRs   z Node.unlinkcCs|Sr&r r r r r __enter__szNode.__enter__cCs |dSr&)rR)r ZetZevtbr r r __exit__sz Node.__exit__)NN)rrNN)!__name__ __module__ __qualname__ namespaceURIr;rYrDrErprefixrrrr)r+r-r0r5r=rMr<rUr[rarbrergrmrqrwrRryr{r r r r r "s>      r firstChildzFirst child node, or None.)doc lastChildzLast child node, or None. localNamez"Namespace-local name of this node.cCs2|j}|r|d}||_||_||||_dSr.)r(rErDrSr;)r rIr(Zlastr r r rKs rKcCs$|dur |jtjkrdS|j}qdSNTF)rr rr;rIr r r _in_document's  rcCs6|r2|dddddddd}||dS) N&z&z>)replacewrite)r%rQr r r _write_data/srcCsD|jD]8}|jtjkr2|dks(|j|kr2||t|||q|SNr)r(rr rTtagNamerS_get_elements_by_tagName_helper)parentnamercrIr r r r6s   rcCsX|jD]L}|jtjkr|dks(|j|krD|dks:|j|krD||t||||q|Sr)r(rr rTrrrS"_get_elements_by_tagName_ns_helper)rZnsURIrrrIr r r r>s   rc@sJeZdZejZdZdZdZdZ ej ej ej ej ejejejfZddZdS)DocumentFragmentz#document-fragmentNcCs t|_dSr&)rxr(r r r r __init__UszDocumentFragment.__init__)r|r}r~r r3rnodeName nodeValue attributesr;rTrPCDATA_SECTION_NODEENTITY_REFERENCE_NODEPROCESSING_INSTRUCTION_NODE COMMENT_NODE NOTATION_NODEr6rr r r r rGsrc@seZdZdZejZdZdZdZ ej ej fZ e ddfddZddZdd Zd d Zd d ZeeeZZddZddZeeeZZddZddZeeeZddZddZddZdS)Attr)_name_valuer_prefixr( _localNamerY ownerElementNFcCs2d|_||_||_||_t|_|jtdSr&)rrrrrxr(rSText)r qNamerrrr r r rcs z Attr.__init__cCs2z|jWSty,|jdddYS0dSN:r2r/)rrirsplitr r r r rbps zAttr._get_localNamecCs|jSr&) specifiedr r r r _get_specifiedvszAttr._get_specifiedcCs|jSr&)rr r r r _get_nameyszAttr._get_namecCs||_|jdurt|jdSr&)rrrBr valuer r r _set_name|s zAttr._set_namecCs|jSr&)rr r r r _get_valueszAttr._get_valuecCs6||_||jd_|jdur&t|j||jd_dSr,)rr(rQrrBrr r r _set_values    zAttr._set_valuecCs|jSr&)rr r r r _get_prefixszAttr._get_prefixcCsd|j}|dkr&|r&|tkr&tjd||_|dur<|j}nd||jf}|jrZt|j||_ dS)Nxmlnsz5illegal use of 'xmlns' prefix for the wrong namespacez%s:%s) rrr7r8 NamespaceErrrrrrBr)r rZnsuriZnewNamer r r _set_prefixs  zAttr._set_prefixcCsv|j}|durR|j|j=|j|j|jf=|jrRd|_|jd8_|jj d8_ |j D] }| qX|j dd=dS)NFr2) r_attrsr_attrsNSrr_is_id_magic_id_nodesrY_magic_id_countr(rR)r elemrWr r r rRs   z Attr.unlinkcCsf|jr dS|j}|j}|dus&|dur*dS||}|dur@dS|jrV||j|jS||jSdSr) rrYr_get_elem_inforisIdNSrisIdrr rrinfor r r _get_isIds zAttr._get_isIdcCs\|j}|j}|dus|dur tS||}|dur6tS|jrL||j|jS||jSdSr&) rYr_no_typerrgetAttributeTypeNSrgetAttributeTyperrr r r _get_schemaTypes zAttr._get_schemaType) r|r}r~ __slots__r ATTRIBUTE_NODErrrrrPrr6rrrbrrrpropertyrrrrrrrrrrRrrr r r r rYs.   rrz True if this attribute is an ID.z'Namespace-local name of this attribute. schemaTypezSchema type for this attribute.c@seZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ d9ddZ eZddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6Zd7d8ZdS): NamedNodeMaprr _ownerElementcCs||_||_||_dSr&r)r attrsZattrsNSrr r r rszNamedNodeMap.__init__cCs t|jSr&)lenrr r r r _get_lengthszNamedNodeMap._get_lengthcCs2z|t|j|WSty,YdS0dSr&)rsrkeys IndexErrorr r>r r r items zNamedNodeMap.itemcCs*g}|jD]}||j|jfq|Sr&)rvaluesrSrrr rVrIr r r rtszNamedNodeMap.itemscCs0g}|jD]}||j|jf|jfq|Sr&)rrrSrrrrr r r itemsNSszNamedNodeMap.itemsNScCs"t|tr||jvS||jvSdSr&) isinstancestrrrrkr r r __contains__s  zNamedNodeMap.__contains__cCs |jSr&)rrr r r r rszNamedNodeMap.keyscCs |jSr&)rrr r r r keysNSszNamedNodeMap.keysNScCs |jSr&)rrr r r r rszNamedNodeMap.valuesNcCs|j||Sr&rget)r rrr r r r szNamedNodeMap.getcCs:|jt|ddurdSt|t|kt|t|kSdS)Nrr)rgetattridrcr r r _cmpszNamedNodeMap._cmpcCs||dkSr,rrcr r r __eq__szNamedNodeMap.__eq__cCs||dkSr,rrcr r r __ge__szNamedNodeMap.__ge__cCs||dkSr,rrcr r r __gt__szNamedNodeMap.__gt__cCs||dkSr,rrcr r r __le__szNamedNodeMap.__le__cCs||dkSr,rrcr r r __lt__"szNamedNodeMap.__lt__cCs"t|tr|j|S|j|SdSr&)rr4rr)r attname_or_tupler r r __getitem__%s  zNamedNodeMap.__getitem__cCstt|trPz|j|}Wn.tyFt|}|jj|_||Yn0||_n t|tsbt d|}||dS)Nz%value must be a string or Attr object) rrrrjrrrY setNamedItemr TypeError)r attnamerrIr r r __setitem__,s    zNamedNodeMap.__setitem__cCs&z |j|WSty YdS0dSr&)rrjr rr r r getNamedItem;s  zNamedNodeMap.getNamedItemcCs*z|j||fWSty$YdS0dSr&)rrjr rrr r r getNamedItemNSAs zNamedNodeMap.getNamedItemNScCsX||}|durJt|j|j|j=|j|j|jf=t|drFd|_ |St j dSNr) rrBrrrrrrrrrr7r8r@r rnr r r removeNamedItemGs    zNamedNodeMap.removeNamedItemcCsZ|||}|durLt|j|j|j|jf=|j|j=t|drHd|_ |St j dSr) rrBrrrrrrrrrr7r8r@r rrrr r r removeNamedItemNSSs    zNamedNodeMap.removeNamedItemNScCstt|ts&tjdt|t|f|j|j}|r@| ||j|j<||j |j |j f<|j |_t|j|SrJ)rrr7r8r9r:rrrrRrrrrrrB)r rIror r r r_s   zNamedNodeMap.setNamedItemcCs ||Sr&)rr rIr r r setNamedItemNSlszNamedNodeMap.setNamedItemNScCs||}t|j|dSr&)rBrrR)r rrIr r r __delitem__os zNamedNodeMap.__delitem__cCs|j|j|jfSr&rr r r r __getstate__tszNamedNodeMap.__getstate__cCs|\|_|_|_dSr&rr stater r r __setstate__wszNamedNodeMap.__setstate__)N) r|r}r~rrrrrtrrrrrr__len__rrrrrrrrrrrrrrrrrr r r r rs:     rZlengthz$Number of nodes in the NamedNodeMap.c@s0eZdZdZddZddZddZdd Zd S) TypeInfo namespacercCs||_||_dSr&r)r rrr r r rszTypeInfo.__init__cCs2|jrd|jj|j|jfSd|jj|jfSdS)Nz<%s %r (from %r)>z<%s %r>)r __class__r|rr r r r __repr__s  zTypeInfo.__repr__cCs|jSr&)rr r r r rszTypeInfo._get_namecCs|jSr&)rr r r r _get_namespaceszTypeInfo._get_namespaceN)r|r}r~rrrrrr r r r rs rc@s eZdZdZejZdZeZ dZ ejej ej ej ejejfZeddfddZddZdd Zd d Zd d ZddZddZddZddZddZddZddZeZddZddZ d d!Z!e!Z"d"d#Z#d$d%Z$d&d'Z%d(d)Z&d*d+Z'd9d-d.Z(d/d0Z)d1d2Z*d3d4Z+d5d6Z,d7d8Z-dS):Element) rYr;rrrrrr(rrrDrENrcCsBd|_||_|_||_||_t|_d|_|_d|_ d|_ dSr&) r;rrrrrxr(rDrErr)r rrrrr r r rs  zElement.__init__cCs|jduri|_i|_dSr&)rrr r r r _ensure_attributess zElement._ensure_attributescCs2z|jWSty,|jdddYS0dSr)rrirrr r r r rbs zElement._get_localNamecCs|jSr&rr r r r _get_tagNameszElement._get_tagNamecCs@|jdur&t|jD] }|qd|_d|_t|dSr&)rrsrrRrr )r attrr r r rRs   zElement.unlinkcCs6|jdurdSz|j|jWSty0YdS0dSr)rrrj)r rr r r getAttributes  zElement.getAttributecCs:|jdurdSz|j||fjWSty4YdS0dSr)rrrjrr r r getAttributeNSs   zElement.getAttributeNScCsV||}|dur4t|}||_|j|_||n||jkrR||_|jrRt|dSr&)getAttributeNoderrrYsetAttributeNoderrB)r rrr r r r setAttributes   zElement.setAttributecCst|\}}|||}|durHt||||}||_|j|_||n4||jkrf||_|jrft||j|kr|||_||_ dSr&) _nssplitgetAttributeNodeNSrrrYr rrBrr)r r qualifiedNamerr localnamer r r r setAttributeNSs     zElement.setAttributeNScCs|jdurdS|j|Sr&r)r attrnamer r r r s zElement.getAttributeNodecCs|jdurdS|j||fSr&)rrrr r r r s zElement.getAttributeNodeNScCs|jd|fvrtjd||j|jd}|durD|||j |j |j fd}|durt||urt||t ||||ur|S||ur|SdS)Nzattribute node already owned) rr7r8ZInuseAttributeErrrrrrremoveAttributeNoderrr_set_attribute_node)r r Zold1Zold2r r r r s    zElement.setAttributeNodecCsN|jdurtjz|j|}Wnty>tjYn0||dSr&)rr7r8r@rrjr)r rr r r r removeAttribute%s   zElement.removeAttributecCsR|jdurtjz|j||f}WntyBtjYn0||dSr&)rr7r8r@rjr)r rrr r r r removeAttributeNS.s   zElement.removeAttributeNScCs\|durtjz|j|jWnty>tjYn0t|||j|_|Sr&) r7r8r@rrrjrBrRrYrr r r r7s  zElement.removeAttributeNodecCs|jdurdS||jvSNFrrr r r hasAttributeGs zElement.hasAttributecCs|jdurdS||f|jvSr)rrr r r hasAttributeNSQs zElement.hasAttributeNScCst||tSr&rrxrr r r getElementsByTagNameVszElement.getElementsByTagNamecCst|||tSr&rrxrr r r getElementsByTagNameNS^s zElement.getElementsByTagNameNScCsd|jt|fS)Nz)rrr r r r rbszElement.__repr__rcCs||d|j|}|D],}|d|t|||j|dq$|jr|dt|jdkr|jdjt j t j fvr|jd |dddn4|||jD]}| |||||q|||d|j|fn|d |dS) Nrz %s="rrr2rrz%sz/>%s) rr_get_attributesrrrr(rrr rPrr )r r%r# addindentr$rZa_namerIr r r r es(        zElement.writexmlcCs|t|j|j|Sr&)rrrrr r r r r!szElement._get_attributescCs|jr dSdSdSrrr r r r hasAttributesszElement.hasAttributescCs||}||dSr&)r setIdAttributeNode)r ridAttrr r r setIdAttributes zElement.setIdAttributecCs|||}||dSr&)rr$)r rrr%r r r setIdAttributeNSs zElement.setIdAttributeNScCsj|dus||jstjt|dur4tj|jsfd|_|jd7_|j j d7_ t |dS)NTr2) rerr7r8r@_get_containing_entrefNoModificationAllowedErrrrrYrrB)r r%r r r r$s   zElement.setIdAttributeNode)rrr).r|r}r~rr rTrrrrrrrrPrrr6rrrrbrrRr r rrr rr ZsetAttributeNodeNSrrrZremoveAttributeNodeNSrrrr rr r!r#r&r'r$r r r r rsT      rrz*NamedNodeMap of attributes on the element.z%Namespace-local name of this element.cCs8t||||j|j<||j|j|jf<||_dSr&)rBrrrrrrr)elementr r r r rs  rc@sbeZdZdZdZeZdZdZddZ ddZ ddZ d d Z d d Z d dZddZddZdS) Childlessr NcCsdSr&r r r r r r-szChildless._get_firstChildcCsdSr&r r r r r r0szChildless._get_lastChildcCstj|jddS)Nz nodes cannot have childrenr7r8r9rrr r r r=szChildless.appendChildcCsdSrr r r r r r)szChildless.hasChildNodescCstj|jddSNz nodes do not have childrenr,r rFrGr r r r5szChildless.insertBeforecCstj|jddSr-)r7r8r@rrOr r r r<szChildless.removeChildcCsdSr&r r r r r rUszChildless.normalizecCstj|jddSr-r,r rFrLr r r rMszChildless.replaceChild)r|r}r~rrZ EmptyNodeListr(rrr-r0r=r)r5r<rUrMr r r r r+sr+c@s\eZdZejZdZddZddZddZ e ee Z dd Z d d Z e e e Zdd dZdS)ProcessingInstructiontargetrQcCs||_||_dSr&r1)r r2rQr r r rszProcessingInstruction.__init__cCs|jSr&rQr r r r _get_nodeValuesz$ProcessingInstruction._get_nodeValuecCs ||_dSr&r3rr r r _set_nodeValuesz$ProcessingInstruction._set_nodeValuecCs|jSr&r2r r r r _get_nodeNamesz#ProcessingInstruction._get_nodeNamecCs ||_dSr&r6rr r r _set_nodeNamesz#ProcessingInstruction._set_nodeNamercCs|d||j|j|fdS)Nz %s%s)rr2rQr r%r#r"r$r r r r szProcessingInstruction.writexmlN)rrr)r|r}r~r rrrrr4r5rrr7r8rr r r r r r0s  r0c@sreZdZdZddZddZeZddZdd Ze eeZ Z d d Z d d Z ddZddZddZddZdS) CharacterData)_datarYr;rErDcCs,d|_|_d|_|_d|_t|dSr)rYr;rErDr;r rr r r r rs  zCharacterData.__init__cCs t|jSr&)rrQr r r r rszCharacterData._get_lengthcCs|jSr&r;r r r r _get_dataszCharacterData._get_datacCs ||_dSr&r<r rQr r r _set_dataszCharacterData._set_datacCs6|j}t|dkrd}nd}d|jj|dd|fS)N z...rzr)rQrrr|)r rQZ dotdotdotr r r r s zCharacterData.__repr__cCsT|dkrtjd|t|jkr.tjd|dkrBtjd|j|||SNroffset cannot be negative#offset cannot be beyond end of datacount cannot be negativer7r8 IndexSizeErrrrQr offsetcountr r r substringDatas   zCharacterData.substringDatacCs|j||_dSr&r3)r argr r r appendDataszCharacterData.appendDatacCsZ|dkrtjd|t|jkr.tjd|rVd|jd|||j|df|_dS)NrrBrC%s%s%srE)r rHrKr r r insertData!s  zCharacterData.insertDatacCsl|dkrtjd|t|jkr.tjd|dkrBtjd|rh|jd||j||d|_dSrArErGr r r deleteData*s   zCharacterData.deleteDatacCsr|dkrtjd|t|jkr.tjd|dkrBtjd|rnd|jd|||j||df|_dS)NrrBrCrDrMrE)r rHrIrKr r r replaceData4s   zCharacterData.replaceDataN)r|r}r~rrrrr=r?rrQrrrJrLrNrOrPr r r r r:s    r:zLength of the string data.c@sHeZdZdZejZdZdZddZ dddZ d d Z d d Z d dZ dS)rr z#textNcCs|dks|t|jkr"tjd|}|j|d|_|j|_|j}|jr~||jj vr~|durp|j |n|j |||jd||_|S)Nrzillegal offset value) rrQr7r8rFrrYrDr;r(r=r5)r rHZnewTextnextr r r splitTextIs zText.splitTextrcCst|d||j|fdS)NrM)rrQr9r r r r Xsz Text.writexmlcCs|jg}|j}|durB|jtjtjfvrB|d|j|j}qqBq|j}|durz|jtjtjfvrz||j|j}qHqzqHd |S)Nrr) rQrErr rPrrCrDrSjoin)r rVrr r r _get_wholeText]s zText._get_wholeTextcCs|j}|j}|dur@|jtjtjfvr@|j}|||}q q@q |j}|sT|||dur|jtjtjfvr|j}|||}qTqqT|r||_|SdSdSr&) r;rErr rPrr<rDrQ)r ZcontentrrrQr r r replaceWholeTextos*   zText.replaceWholeTextcCsF|jrdSt|}|dur"dS|j|}|dur:dS|SdSr)rQstrip_get_containing_elementrYrisElementContent)r rrr r r !_get_isWhitespaceInElementContents  z&Text._get_isWhitespaceInElementContent)rrr)r|r}r~rr rPrrrrRr rTrUrYr r r r rBs rZisWhitespaceInElementContentzKTrue iff this text node contains only whitespace and is in element content.Z wholeTextz.The text of all logically-adjacent text nodes.cCs*|j}|dur&|jtjkr|S|j}qdSr&)r;rr rTrIrHr r r rWs  rWcCs*|j}|dur&|jtjkr|S|j}qdSr&)r;rr rrZr r r r(s  r(c@s(eZdZejZdZddZdddZdS) Commentz#commentcCst|||_dSr&)r:rr;r>r r r rs zComment.__init__rcCs,d|jvrtd|d||j|fdS)Nz--z%'--' is not allowed in a comment nodez %s%s)rQr?rr9r r r r s zComment.writexmlN)rrr) r|r}r~r rrrrr r r r r r[sr[c@s$eZdZdZejZdZdddZdS) CDATASectionr z#cdata-sectionrcCs,|jddkrtd|d|jdS)Nz]]>rz$']]>' not allowed in a CDATA sectionz)rQfindr?rr9r r r r szCDATASection.writexmlN)rrr) r|r}r~rr rrrr r r r r r\sr\c@szeZdZdZdddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZdS)ReadOnlySequentialNamedNodeMap_seqr cCs ||_dSr&r_)r seqr r r rsz'ReadOnlySequentialNamedNodeMap.__init__cCs t|jSr&rr`r r r r rsz&ReadOnlySequentialNamedNodeMap.__len__cCs t|jSr&rbr r r r rsz*ReadOnlySequentialNamedNodeMap._get_lengthcCs"|jD]}|j|kr|SqdSr&)r`rrr r r rs  z+ReadOnlySequentialNamedNodeMap.getNamedItemcCs,|jD] }|j|kr|j|kr|SqdSr&)r`rrrr r r rs z-ReadOnlySequentialNamedNodeMap.getNamedItemNScCs4t|tr|j|}n ||}|dur0t||Sr&)rr4rrrj)r Z name_or_tuplerIr r r rs    z*ReadOnlySequentialNamedNodeMap.__getitem__cCs2|dkr dSz |j|WSty,YdS0dSr,)r`rrr r r rs   z#ReadOnlySequentialNamedNodeMap.itemcCstjddSNz"NamedNodeMap instance is read-onlyr7r8r)rr r r rsz.ReadOnlySequentialNamedNodeMap.removeNamedItemcCstjddSrcrdrr r r rsz0ReadOnlySequentialNamedNodeMap.removeNamedItemNScCstjddSrcrdrr r r rsz+ReadOnlySequentialNamedNodeMap.setNamedItemcCstjddSrcrdrr r r rsz-ReadOnlySequentialNamedNodeMap.setNamedItemNScCs|jgSr&r_r r r r rsz+ReadOnlySequentialNamedNodeMap.__getstate__cCs|d|_dSr,r_rr r r rsz+ReadOnlySequentialNamedNodeMap.__setstate__N)r )r|r}r~rrrrrrrrrrrrrrr r r r r^s  r^z&Number of entries in the NamedNodeMap.c@s(eZdZdZddZddZddZdS) IdentifiedpublicIdsystemIdcCs||_||_dSr&rf)r rgrhr r r _identified_mixin_initsz!Identified._identified_mixin_initcCs|jSr&)rgr r r r _get_publicIdszIdentified._get_publicIdcCs|jSr&)rhr r r r _get_systemIdszIdentified._get_systemIdN)r|r}r~rrirjrkr r r r re srec@sHeZdZejZdZdZdZdZ dZ ddZ ddZ ddZ d d d ZdS) DocumentTypeNcCs2t|_t|_|r&t|\}}||_|j|_dSr&)r^entities notationsrrr)r rrrr r r r"s  zDocumentType.__init__cCs|jSr&)internalSubsetr r r r _get_internalSubset*sz DocumentType._get_internalSubsetcCs|jdurtd}|j|_|j|_tjjj}|rg|j_ g|j _ |j j D]2}t |j|j |j }|j j |||||qH|jj D]N}t|j|j |j |j}|j|_|j|_|j|_|jj |||||q|||||SdSdSr&)rYrlrrr7r8UserDataHandler NODE_CLONEDrmr`rnNotationrgrhrSrwEntity notationNameactualEncodingrr`)r rZclonerurnotationeentityr r r r[-s0    zDocumentType.cloneNodercCs|d||j|jr8|d||j||jfn|jrR|d||jf|jdur||d||j|d|d|dS)Nz        z DOMImplementation.createDocumentcCst|}||_||_|Sr&)rlrgrh)r rrgrhrr r r createDocumentTypesz$DOMImplementation.createDocumentTypecCs||dr|SdSdSr&)r]rfr r r rgs zDOMImplementation.getInterfacecCstSr&)Documentr r r r rsz"DOMImplementation._create_documentN) r|r}r~rr]rrrgrr r r r rs  -rc@sXeZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ dS) ElementInforcCs ||_dSr&rrr r r rszElementInfo.__init__cCstSr&rr Zanamer r r rszElementInfo.getAttributeTypecCstSr&rrr r r rszElementInfo.getAttributeTypeNScCsdSrr r r r r rXszElementInfo.isElementContentcCsdSrr r r r r isEmptyszElementInfo.isEmptycCsdSrr rr r r rszElementInfo.isIdcCsdSrr rr r r rszElementInfo.isIdNScCs|jSr&rr r r r rszElementInfo.__getstate__cCs ||_dSr&rrr r r rszElementInfo.__setstate__N) r|r}r~rrrrrXrrrrrr r r r rs rcCs>|jtjkr|jd|_nt|r:|jjd|j_dSr&)rr r _id_cacheclear_id_search_stackrrYrr r r rBs    rBc@sreZdZdZejejejejfZ e Z ej Z dZdZdZdZdZZdZdZdZdZdZdZdZdZddZdd Zd d Zd d ZddZ ddZ!ddZ"ddZ#ddZ$ddZ%ddZ&ddZ'ddZ(d d!Z)d"d#Z*d$d%Z+d&d'Z,d(d)Z-d*d+Z.d,d-Z/d.d/Z0d0d1Z1d2d3Z2d4d5Z3d6d7Z4d8d9Z5d:d;Z6dd?Z8d@dAZ9dBdCZ:dIdEdFZ;dGdHZ|j||jtj kr^| r^tjdt ||S)Nr1z two document elements disallowed) rr6r7r8r9r:r;r<r rT_get_documentElementr=rr r r r=Ks    zDocument.appendChildcCsTz|j|Wnty,tjYn0d|_|_d|_|j |urPd|_ |Sr&) r(rNr?r7r8r@rDrEr;documentElementrOr r r r<[s   zDocument.removeChildcCs$|jD]}|jtjkr|SqdSr&)r(rr rTrr r r rgs  zDocument._get_documentElementcCs(|jdur|jd|_t|dSr&)rrRr r r r r rRls  zDocument.unlinkcCs|sdS|jddd}|j|_|j|_|j|_|jD]B}t|||}|j||jt j kr`n|jt j krr||_ ||_ q6|tjjj|||Sr&)r\rrrr`r(rXrSrr rr|rr;rwr7r8rqrr)r rZrwrZ childcloner r r r[rs$      zDocument.cloneNodecCst}||_|Sr&)rrY)r rpr r r createDocumentFragmentszDocument.createDocumentFragmentcCst|}||_|Sr&)rrY)r rryr r r createElementszDocument.createElementcCs(t|tstdt}||_||_|SNznode contents must be a string)rrrrrQrY)r rQtr r r createTextNodes  zDocument.createTextNodecCs(t|tstdt}||_||_|Sr)rrrr\rQrYr rQrHr r r createCDATASections  zDocument.createCDATASectioncCst|}||_|Sr&)r[rYrr r r createCommentszDocument.createCommentcCst||}||_|Sr&)r0rY)r r2rQpr r r createProcessingInstructions z$Document.createProcessingInstructioncCst|}||_d|_|Sr)rrYr)r rar r r createAttributeszDocument.createAttributecCs"t|\}}t|||}||_|Sr&)rrrY)r rrrrryr r r rs  zDocument.createElementNScCs*t|\}}t||||}||_d|_|Sr)rrrYr)r rrrrrr r r createAttributeNSs  zDocument.createAttributeNScCst||||}||_|Sr&)rtrY)r rrgrhruryr r r _create_entityszDocument._create_entitycCst|||}||_|Sr&)rsrY)r rrgrhrr r r _create_notations zDocument._create_notationcCs||jvr|j|S|js$|js$dS|j}|durB|jg}||_n|sJdSd}|r|}|dd|jD||}|rB|j D]}|j r| |j |j r||j|j<|j|kr|}n |jsqq||jr ||j|j<|j|kr|}n|js>qq|jr||j|j<|j|kr.|}q|jdkrqqn>|jr|j D]*}|jrT||j|j<|j|krT|}qT|durNqqN|S)NcSsg|]}|jtvr|qSr )rrA).0rWr r r s z+Document.getElementById..r2)rrrrrpopextendr(rrrrrrrrrrr)r rstackresultrIrr r r r getElementByIdsZ              zDocument.getElementByIdcCst||tSr&rrr r r rszDocument.getElementsByTagNamecCst|||tSr&rrr r r r s zDocument.getElementsByTagNameNScCs|j||Sr&)r\r]r^r r r ra szDocument.isSupportedcCs>|jtjkrtjdn|jtjkr2tjdt|||S)Nzcannot import document nodesz!cannot import document type nodes)rr rr7r8NotSupportedErrr|rX)r rIrZr r r importNodes    zDocument.importNoderc Csxg}|r|d|d|dur<|d|r0dndd|dd|d||jD]}|||||q^dS) Nz encoding="rz standalone="ZyesZnoz)rSrrSr(r ) r r%r#r"r$rrZ declarationsrIr r r r s zDocument.writexmlcCsJ|j|ur tjd||jf|jtjtjfvr>tjd|t krd|vr| dd\}}|dkr|tjj krtj dq|dkr|tjj kr|jtjkrtj dd}|}nd}d}|jtjkr|j }|dur|j}||nd}||_||_||_||_|jtjkr||_n*||_|durF|||rF|||S)Nz?cannot rename nodes from other documents; expected %s, found %sz8renameNode() only applies to element and attribute nodesrr2rzillegal use of 'xmlns' prefixz$illegal use of the 'xmlns' attribute)rYr7r8rrr rTrrrrrrrrrrrrrrrr r$)r rrrrrr*Zis_idr r r renameNode&sb         zDocument.renameNode)rrrNN)=r|r}r~rr rTrrr|r6rr\rrrrrr;rErDrvrrr`rrrrrrr~rrrrrrrr=r<rrRr[rrrrrrrrrrrrrr rarr rr r r r rsl   : rrz#Top-level element of this document.c Cs|j|rtjjj}n tjjj}|jtj kr| |j |j }|j D]0}||j |j |j||j |j}|j|_qH|r|jD]}t|||}||qn|jtjkr|}|r|jD]}t|||}||qn|jtjkr||j}n|jtjkr||j}n|jtjkr>||j |j}nj|jtj!kr\|"|j}nL|jtj#kr|$|j |j }d|_|j|_n|jtj%krtjjj}|j&'|j(|j)|j*}||_|rg|j+_,g|j-_,|j-j,D]F} t.| j | j)| j*} || _|j-j,/| t0| dr| 1|| | q|j+j,D]b} t2| j | j)| j*| j3} | j4| _4| j5| _5| j6| _6|| _|j+j,/| t0| dr.| 1|| | q.ntj7dt8|t0|dr|1||||S)NTrwzCannot clone node %s)9rYrer7r8rqrrZ NODE_IMPORTEDrr rTrrrrrrrrrrr(rXr=r3rrPrrQrrrrr2rrrrr|r\rrrgrhrmr`rnrsrSrrrwrtrurvrr`rr:) rIrZZnewOwnerDocumentrurwr rrWrHrrxryrzr r r rX_s                   rXcCs,|dd}t|dkr|Sd|dfSdS)Nrr2r)rr)rfieldsr r r rs  rcCs0||i|}|\}}||||Sr&)ZgetEventZ expandNoder)funcargskwargsZeventsZtoktypeZrootNoder r r _do_pulldom_parses   rcCsH|dur"|s"ddlm}||Sddlm}t|j|f||dSdS)Nr expatbuilderpulldom)parserbufsize)xml.domrparserr)filerrrrr r r rs     rcCsB|durddlm}||Sddlm}t|j|fd|iSdS)Nrrrr)rr parseStringrr)stringrrrr r r rs    rcCs@|r:t|trt|}|D]\}}tj||sdSqtjSr&)rrrZ_parse_feature_stringrr\r])Zfeaturesfvr r r getDOMImplementations   r)NN)N)N)6rrr7rrrrZxml.dom.minicompatZxml.dom.xmlbuilderrrr8r rTrrAZ defpropertyrKrrrrrrobjectrZ AttributeListrrrrr+r0r:rrWr(r[r\r^rerlrtrsrrrBrrXrrrrrr r r r sw  y$  )GU  ><( O*UR