o !Qd, @s ddlZddlZddlmZmZmZmZddlTddlm 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`daZ4dedbdcZ5dS)fN)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)4NodeNcCdS)NTselfr r 6/opt/alt/python310/lib64/python3.10/xml/dom/minidom.py__bool__+z Node.__bool__cCs|dd||SN) toprettyxml)r encoding standaloner r rtoxml.z Node.toxml  cCsv|dur t}n tjt|ddd}|jtjkr%||d||||n||d|||dur5|S| S)Nxmlcharrefreplacer)rerrorsnewliner) ioStringIO TextIOWrapperBytesIOnodeTyper DOCUMENT_NODEwritexmlgetvaluedetach)r indentnewlrrwriterr r rr1s    zNode.toprettyxmlcC t|jSN)bool childNodesr r r r hasChildNodesD zNode.hasChildNodescC|jSr*r,r r r r_get_childNodesGzNode._get_childNodescC|jr|jdSdSNrr0r r r r_get_firstChildJ zNode._get_firstChildcCr3Nr0r r r r_get_lastChildNr6zNode._get_lastChildcCs|j|jkrt|jD]}|||q |S|j|jvr*tjdt |t |f|j dur5|j ||dur@| ||Sz|j |}Wn tyTtjw|jtvr^t||j||||_||_|r{|j|d}||_||_nd|_||_ |S)N%s cannot be child of %s)r!DOCUMENT_FRAGMENT_NODEtupler, insertBefore_child_node_typesxmldomHierarchyRequestErrrepr parentNode removeChild appendChildindex ValueError NotFoundErr_nodeTypes_with_children_clear_id_cacheinsert nextSiblingpreviousSibling)r newChildrefChildcrGnoder r rr>Rs<        zNode.insertBeforecCs|j|jkrt|jD]}||q |S|j|jvr)tjdt |t |f|jt vr2t ||j dur=|j |t||d|_|SNr:)r!r<r=r,rFr?r@rArBrCrJrKrDrE _append_childrM)r rRrQr r rrFrs       zNode.appendChildcCs |j|jkr|j}|||||S|j|jvr(tjdt |t |f||ur.dS|j dur9|j |z|j |}Wn t yMtjw||j |<||_ d|_ |jtvsc|jtvrgt||j|_|j|_d|_d|_|jr|||j_|jr||j_|SrS)r!r<rMrEr>r?r@rArBrCrDr,rGrHrIrJrKrN)r rOoldChildrPrGr r r replaceChilds@           zNode.replaceChildcCszz|j|Wn tytjw|jdur|j|j_|jdur)|j|j_d|_|_|jt vr8t |d|_ |Sr*) r,removerHr@rArIrMrNr!rJrKrDr rUr r rrEs        zNode.removeChildcCsg}|jD]Z}|jtjkrP|js%|r|j|d_|jr |j|j_|q|rJ|dj|jkrJ|d}|j|j|_|j|_|jrE||j_|q||q|||jtj kr_| q||jdd<dSr7) r,r!r TEXT_NODEdatarMrNunlinkappend ELEMENT_NODE normalize)r LchildrRr r rr^s,         zNode.normalizecCst|||jp|Sr*) _clone_node ownerDocument)r deepr r r cloneNodezNode.cloneNodecCs|jj||Sr*)rbimplementation hasFeaturer featureversionr r r isSupportedrzNode.isSupportedcCdSr*r r r r r_get_localNamezNode._get_localNamecCs||uSr*r r otherr r r isSameNodezNode.isSameNodecC||dr|SdSr*)rkr rir r r getInterface zNode.getInterfacec Cs*z|j|dWSttfyYdSwr4) _user_dataAttributeErrorKeyErrorr keyr r r getUserDatas zNode.getUserDatacCsnd}z|j}Wntyi}||_Ynw||vr ||d}|dur/d}|dur-||=|S||f||<|Sr4)rwrx)r r{rZhandlerolddr r r setUserDatas      zNode.setUserDatacCsHt|dr t|jD]\}\}}|dur||||||q dSdS)Nrw)hasattrlistrwitemsZhandle)r operationsrcZdstr{rZr}r r r_call_user_data_handlers zNode._call_user_data_handlercCs>d|_|_|jr|jD]}|q t|_d|_d|_dSr*)rDrbr,r[NodeListrNrM)r r`r r rr[s    z Node.unlinkcCs|Sr*r r r r r __enter__rzNode.__enter__cCs |dSr*)r[)r ZetZevtbr r r__exit__ z Node.__exit__NN)rrNN)!__name__ __module__ __qualname__ namespaceURIrDrbrMrNrprefixrrrr-r1r5r9r>rFrVrEr^rdrkrmrqrur|rrr[rrr r r rr "s@      r firstChildzFirst child node, or None.)doc lastChildzLast child node, or None. localNamez"Namespace-local name of this node.cCs2|j}|r|d}||_||_||||_dSr7)r,rNrMr\rD)r rRr,Zlastr r rrTs  rTcCs*|dur|jtjkr dS|j}|dusdSNTF)r!r r"rDrRr r r _in_document's  rcCs< |r|dddddddd}||dSdS) N&z&z>)replacewrite)r(rZr r r _write_data/srcCsD|jD]}|jtjkr|dks|j|kr||t|||q|SNr)r,r!r r]tagNamer\_get_elements_by_tagName_helper)parentnamercrRr r rr6s   rcCsX|jD]&}|jtjkr)|dks|j|kr"|dks|j|kr"||t||||q|Sr)r,r!r r]rrr\"_get_elements_by_tagName_ns_helper)rZnsURIrrrRr r rr>s   rc@sJeZdZejZdZdZdZdZ ej ej ej ej ejejejfZddZdS)DocumentFragmentz#document-fragmentNcCs t|_dSr*)rr,r r r r__init__UrzDocumentFragment.__init__)rrrr r<r!nodeName nodeValue attributesrDr]rYCDATA_SECTION_NODEENTITY_REFERENCE_NODEPROCESSING_INSTRUCTION_NODE COMMENT_NODE NOTATION_NODEr?rr r r rrGs rc@seZdZdZejZdZdZdZ ej ej fZ e ddfddZddZdd Zd d Zd d ZeeeZZddZddZeeeZZddZddZeeeZddZddZddZdS)Attr)_name_valuer_prefixr, _localNamerb ownerElementNFcCs@d|_||_||_||_|dur||_t|_|jtdSr*) rrrrrrr,r\Text)r qNamerrrr r rrcsz Attr.__init__cC.z|jWSty|jdddYSwN:r;r8)rrxrsplitr r r rrmr  zAttr._get_localNamecCr/r*) specifiedr r r r_get_specifiedxr2zAttr._get_specifiedcCr/r*)rr r r r _get_name{r2zAttr._get_namecCs"||_|jdurt|jdSdSr*)rrrKr valuer r r _set_name~s zAttr._set_namecCr/r*)rr r r r _get_valuer2zAttr._get_valuecCs6||_||jd_|jdurt|j||jd_dSr4)rr,rZrrKrr r r _set_values    zAttr._set_valuecCr/r*)rr r r r _get_prefixr2zAttr._get_prefixcCsd|j}|dkr|r|tkrtjd||_|dur|j}nd||jf}|jr-t|j||_ dS)Nxmlnsz5illegal use of 'xmlns' prefix for the wrong namespacez%s:%s) rrr@rA NamespaceErrrrrrKr)r rZnsuriZnewNamer r r _set_prefixs   zAttr._set_prefixcCsv|j}|dur)|j|j=|j|j|jf=|jr)d|_|jd8_|jj d8_ |j D]}| q,|j dd=dS)NFr;) r_attrsr_attrsNSrr_is_id_magic_id_nodesrb_magic_id_countr,r[)r elemr`r r rr[s   z Attr.unlinkcCsb|jrdS|j}|j}|dus|durdS||}|dur dS|jr+||j|jS||jSr) rrbr_get_elem_inforisIdNSrisIdrr rrinfor r r _get_isIds  zAttr._get_isIdcCsX|j}|j}|dus|durtS||}|durtS|jr&||j|jS||jSr*) rbr_no_typerrgetAttributeTypeNSrgetAttributeTyperrr r r_get_schemaTypes  zAttr._get_schemaType) rrr __slots__r ATTRIBUTE_NODEr!rrrrYrr?rrrmrrrpropertyrrrrrrrrrr[rrr r r rrYs0    rrz True if this attribute is an ID.z'Namespace-local name of this attribute. schemaTypezSchema type for this attribute.c@seZdZ dZddZddZddZdd 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 rrs zNamedNodeMap.__init__cCr)r*)lenrr r r r _get_lengthr.zNamedNodeMap._get_lengthcCs.z |t|j|WStyYdSwr*)rrkeys IndexErrorr rGr r ritems  zNamedNodeMap.itemcCs*g}|jD] }||j|jfq|Sr*)rvaluesr\rrr r_rRr r rrszNamedNodeMap.itemscCs0g}|jD]}||j|jf|jfq|Sr*)rrr\rrrrr r ritemsNSszNamedNodeMap.itemsNScCst|tr ||jvS||jvSr*) isinstancestrrrrzr r r __contains__   zNamedNodeMap.__contains__cC |jSr*)rrr r r rrr.zNamedNodeMap.keyscCrr*)rrr r r rkeysNSr.zNamedNodeMap.keysNScCrr*)rrr r r rr r.zNamedNodeMap.valuesNcC|j||Sr*rget)r rrr r rr zNamedNodeMap.getcCs6|jt|ddur dSt|t|kt|t|kS)Nrr)rgetattridror r r_cmps zNamedNodeMap._cmpcCs||dkSr4rror r r__eq__rzNamedNodeMap.__eq__cCs||dkSr4rror r r__ge__rzNamedNodeMap.__ge__cCs||dkSr4rror r r__gt__rzNamedNodeMap.__gt__cCs||dkSr4rror r r__le__!rzNamedNodeMap.__le__cCs||dkSr4rror r r__lt__$rzNamedNodeMap.__lt__cCst|tr |j|S|j|Sr*)rr=rr)r attname_or_tupler r r __getitem__'rzNamedNodeMap.__getitem__cCsvt|tr)z|j|}Wnty#t|}|jj|_||Ynw||_dSt|ts2t d|}||dS)Nz%value must be a string or Attr object) rrrryrrrb setNamedItemr TypeError)r attnamerrRr r r __setitem__.s     zNamedNodeMap.__setitem__cCs"z|j|WStyYdSwr*)rryr rr r r getNamedItem=s   zNamedNodeMap.getNamedItemcCs&z|j||fWStyYdSwr*)rryr rrr r rgetNamedItemNSCs  zNamedNodeMap.getNamedItemNScCsT||}|dur%t|j|j|j=|j|j|jf=t|dr#d|_ |St j Nr) rrKrrrrrrrrr@rArIr rnr r rremoveNamedItemIs     zNamedNodeMap.removeNamedItemcCsV|||}|dur&t|j|j|j|jf=|j|j=t|dr$d|_ |St j r) rrKrrrrrrrrr@rArIr rrr r r rremoveNamedItemNSUs     zNamedNodeMap.removeNamedItemNScCstt|tstjdt|t|f|j|j}|r | ||j|j<||j |j |j f<|j |_t|j|SrS)rrr@rArBrCrrrr[rrrrrrK)r rRr~r r rras   zNamedNodeMap.setNamedItemcCs ||Sr*)rr rRr r rsetNamedItemNSnr.zNamedNodeMap.setNamedItemNScCs||}t|j|dSr*)rKrr[)r rrRr r r __delitem__qs  zNamedNodeMap.__delitem__cCs|j|j|jfSr*rr r r r __getstate__vrzNamedNodeMap.__getstate__cCs|\|_|_|_dSr*rr stater r r __setstate__yszNamedNodeMap.__setstate__r*) rrrrrrrrrrrrrr__len__rrrrrrrrrrr r rrrrrr r r rrs>     rZlengthz$Number of nodes in the NamedNodeMap.c@s0eZdZdZddZddZddZdd Zd S) TypeInfo namespacercC||_||_dSr*r)r rrr r rr zTypeInfo.__init__cCs.|jrd|jj|j|jfSd|jj|jfS)Nz<%s %r (from %r)>z<%s %r>)r __class__rrr r r r__repr__s  zTypeInfo.__repr__cCr/r*)rr r r rrr2zTypeInfo._get_namecCr/r*)rr r r r_get_namespacer2zTypeInfo._get_namespaceN)rrrrrrrrr r r rrs  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) rbrDrrrrrr,rrrMrNNrcCsBd|_||_|_||_||_t|_d|_|_d|_ d|_ dSr*) rDrrrrrr,rMrNrr)r rrrrr r rrs   zElement.__init__cCs|jdur i|_i|_dSdSr*)rrr r r r_ensure_attributess  zElement._ensure_attributescCrr)rrxrrr r r rrmrzElement._get_localNamecCr/r*rr r r r _get_tagNamer2zElement._get_tagNamecCs@|jdurt|jD]}|q d|_d|_t|dSr*)rrrr[rr )r attrr r rr[s  zElement.unlinkcCs4 |jdurdSz|j|jWStyYdSwr)rrry)r rr r r getAttributes  zElement.getAttributecCs6|jdurdSz |j||fjWStyYdSwr)rrryrr r rgetAttributeNSs  zElement.getAttributeNScCs`||}|durt|}||_|j|_||dS||jkr,||_|jr.t|dSdSdSr*)getAttributeNoderrrbsetAttributeNoderrK)r rrr"r r r setAttributes   zElement.setAttributecCst|\}}|||}|dur%t||||}||_|j|_||dS||jkr4||_|jr4t||j|krA||_||_ dSdSr*) _nssplitgetAttributeNodeNSrrrbr&rrKrr)r r qualifiedNamerr localnamer"r r rsetAttributeNSs     zElement.setAttributeNScCs|jdurdS|j|Sr*r)r attrnamer r rr%s  zElement.getAttributeNodecCs|jdurdS|j||fSr*)rrrr r rr) s zElement.getAttributeNodeNScCs|jd|fvr tjd||j|jd}|dur"|||j |j |j fd}|dur:||ur:||t ||||urE|S||urK|SdS)Nzattribute node already owned) rr@rAZInuseAttributeErrrrrrremoveAttributeNoderrr_set_attribute_node)r r"Zold1Zold2r r rr&s    zElement.setAttributeNodecCsJ|jdur tjz|j|}Wn tytjw||dSr*)rr@rArIrryr.)r rr"r r rremoveAttribute's    zElement.removeAttributecCsN|jdur tjz |j||f}Wn tytjw||dSr*)rr@rArIryr.)r rrr"r r rremoveAttributeNS0s    zElement.removeAttributeNScCsX|dur tjz|j|jWn tytjwt|||j|_|Sr*) r@rArIrrryrKr[rbrr r rr.9s   zElement.removeAttributeNodecCs |jdurdS||jvSNFrrr r r hasAttributeIs  zElement.hasAttributecCs|jdurdS||f|jvSr2)rrr r rhasAttributeNSSs zElement.hasAttributeNScCs t||tSr*rrrr r rgetElementsByTagNameXszElement.getElementsByTagNamecCt|||tSr*rrrr r rgetElementsByTagNameNS` zElement.getElementsByTagNameNScCsd|jt|fS)Nz)rrr r r rrdrezElement.__repr__rcCs ||d|j|}|D]}|d|t|||j|dq|jrw|dt|jdkrQ|jdjt j t j fvrQ|jd |dddn|||jD] }| |||||qY|||d|j|fdS|d |dS) Nrz %s="rrr;rrz%sz/>%s) rr_get_attributesrrrr,rr!r rYrr#)r r(r& addindentr'rZa_namerRr r rr#gs(       zElement.writexmlcCs|t|j|j|Sr*)rrrrr r r rr<szElement._get_attributescCs|jrdSdSrr3r r r r hasAttributesszElement.hasAttributescCs||}||dSr*)r%setIdAttributeNode)r ridAttrr r rsetIdAttributes zElement.setIdAttributecCs|||}||dSr*)r)r?)r rrr@r r rsetIdAttributeNSs zElement.setIdAttributeNScCsn|dus ||jstjt|durtj|js5d|_|jd7_|j j d7_ t |dSdS)NTr;) rqrr@rArI_get_containing_entrefNoModificationAllowedErrrrrbrrK)r r@r r rr?s    zElement.setIdAttributeNoderrr).rrrrr r]r!rrrrrrrYrrr?rrrrmr!r[r#r$r'r,r%r)r&ZsetAttributeNodeNSr0r1r.ZremoveAttributeNodeNSr4r5r7r:rr#r<r>rArBr?r r r rrsV        rrz*NamedNodeMap of attributes on the element.z%Namespace-local name of this element.cCs8t||||j|j<||j|j|jf<||_dSr*)rKrrrrrrr)elementr"r r rr/s   r/c@sdeZdZ dZdZeZdZdZddZ ddZ ddZ d d Z d d Z d dZddZddZdS) Childlessr NcCrlr*r r r r rr5rzChildless._get_firstChildcCrlr*r r r r rr9rzChildless._get_lastChildcCtj|jd)Nz nodes cannot have childrenr@rArBrrr r rrFzChildless.appendChildcCr r2r r r r rr-rzChildless.hasChildNodescCrHNz nodes do not have childrenrIr rOrPr r rr>rJzChildless.insertBeforecCrHrK)r@rArIrrXr r rrErJzChildless.removeChildcCrlr*r r r r rr^rnzChildless.normalizecCrHrKrIr rOrUr r rrVrJzChildless.replaceChild)rrrrrZ EmptyNodeListr,rrr5r9rFr-r>rEr^rVr r r rrGs rGc@s\eZdZejZdZddZddZddZ e ee Z dd Z d d Z e e e Zdd dZdS)ProcessingInstructiontargetrZcCrr*rO)r rPrZr r rrrzProcessingInstruction.__init__cCr/r*rZr r r r_get_nodeValuer2z$ProcessingInstruction._get_nodeValuecC ||_dSr*rQrr r r_set_nodeValuer.z$ProcessingInstruction._set_nodeValuecCr/r*rPr r r r _get_nodeNamer2z#ProcessingInstruction._get_nodeNamecCrSr*rUrr r r _set_nodeNamer.z#ProcessingInstruction._set_nodeNamercCs|d||j|j|fdS)Nz %s%s)rrPrZr r(r&r=r'r r rr#szProcessingInstruction.writexmlNrE)rrrr rr!rrrRrTrrrVrWrr#r r r rrNs  rNc@sreZdZdZddZddZeZddZdd Ze eeZ Z d d Z d d Z ddZddZddZddZdS) CharacterData)_datarbrDrNrMcCs,d|_|_d|_|_d|_t|dSr)rbrDrNrMrZr rr r r rrs  zCharacterData.__init__cCr)r*)rrZr r r rrr.zCharacterData._get_lengthcCr/r*rZr r r r _get_datar2zCharacterData._get_datacCrSr*r[r rZr r r _set_data r.zCharacterData._set_datacCs6|j}t|dkr d}nd}d|jj|dd|fS)N z...rzr)rZrrr)r rZZ dotdotdotr r rrs zCharacterData.__repr__cCsT|dkr tjd|t|jkrtjd|dkr!tjd|j|||SNroffset cannot be negative#offset cannot be beyond end of datacount cannot be negativer@rA IndexSizeErrrrZr offsetcountr r r substringDatas   zCharacterData.substringDatacCs|j||_dSr*rQ)r argr r r appendData rzCharacterData.appendDatacCs^|dkr tjd|t|jkrtjd|r-d|jd|||j|df|_dSdS)Nrrarb%s%s%srd)r rgrjr r r insertData#s   zCharacterData.insertDatacCsp|dkr tjd|t|jkrtjd|dkr!tjd|r6|jd||j||d|_dSdSr`rdrfr r r deleteData,s   &zCharacterData.deleteDatacCsv|dkr tjd|t|jkrtjd|dkr!tjd|r9d|jd|||j||df|_dSdS)Nrrarbrcrlrd)r rgrhrjr r r replaceData6s    zCharacterData.replaceDataN)rrrrrrrr\r^rrZrrrirkrmrnror r r rrYs   rYzLength of the string data.c@sHeZdZdZejZdZdZddZ dddZ d d Z d d Z d dZ dS)rr z#textNcCs|dks |t|jkrtjd|}|j|d|_|j|_|j}|jr?||jj vr?|dur8|j |n|j |||jd||_|S)Nrzillegal offset value) rrZr@rArerrbrMrDr,rFr>)r rgZnewTextnextr r r splitTextKs zText.splitTextrcCst|d||j|fdS)Nrl)rrZrXr r rr#Zsz Text.writexmlcCs|jg}|j}|dur$|jtjtjfvr|d|j|j}nn|dus |j}|durC|jtjtjfvr>||j|j}nn|dus+d |S)Nrr) rZrNr!r rYrrLrMr\join)r r_r r r r_get_wholeText_s   zText._get_wholeTextcCs|j}|j}|dur#|jtjtjfvr|j}|||}nn|dus |j}|s-|||durJ|jtjtjfvrE|j}|||}nn|dus1|rQ||_|SdSr*) rDrNr!r rYrrErMrZ)r Zcontentrr rpr r rreplaceWholeTextqs.   zText.replaceWholeTextcCsB|jrdSt|}|durdS|j|}|durdS|Sr2)rZstrip_get_containing_elementrbrisElementContent)r rrr r r!_get_isWhitespaceInElementContents  z&Text._get_isWhitespaceInElementContentrE)rrrrr rYr!rrrqr#rsrtrxr r r rrDs  rZisWhitespaceInElementContentzKTrue iff this text node contains only whitespace and is in element content.Z wholeTextz.The text of all logically-adjacent text nodes.cC0|j}|dur|jtjkr|S|j}|dusdSr*)rDr!r r]rRrQr r rrv rvcCryr*)rDr!r rrzr r rrCr{rCc@s(eZdZejZdZddZdddZdS) Commentz#commentcCst|||_dSr*)rYrrZr]r r rrs  zComment.__init__rcCs,d|jvr td|d||j|fdS)Nz--z%'--' is not allowed in a comment nodez %s%s)rZrHrrXr r rr#s zComment.writexmlNrE) rrrr rr!rrr#r r r rr|s r|c@s$eZdZdZejZdZdddZdS) CDATASectionr z#cdata-sectionrcCs,|jddkr td|d|jdS)Nz]]>rz$']]>' not allowed in a CDATA sectionz)rZfindrHrrXr r rr#szCDATASection.writexmlNrE) rrrrr rr!rr#r r r rr}s r}c@szeZdZdZdddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZdS)ReadOnlySequentialNamedNodeMap_seqr cCrSr*r)r seqr r rrs z'ReadOnlySequentialNamedNodeMap.__init__cCr)r*rrr r r rrr.z&ReadOnlySequentialNamedNodeMap.__len__cCr)r*rr r r rrr.z*ReadOnlySequentialNamedNodeMap._get_lengthcCs"|jD] }|j|kr|SqdSr*)rrr r r rrs  z+ReadOnlySequentialNamedNodeMap.getNamedItemcCs,|jD]}|j|kr|j|kr|SqdSr*)rrrr r r rrs z-ReadOnlySequentialNamedNodeMap.getNamedItemNScCs4t|tr |j|}n||}|durt||Sr*)rr=rrry)r Z name_or_tuplerRr r rrs   z*ReadOnlySequentialNamedNodeMap.__getitem__cCs.|dkrdSz|j|WStyYdSwr4)rrrr r rrs  z#ReadOnlySequentialNamedNodeMap.itemcC tjdNz"NamedNodeMap instance is read-onlyr@rArDrr r rr z.ReadOnlySequentialNamedNodeMap.removeNamedItemcCrrrrr r rr rz0ReadOnlySequentialNamedNodeMap.removeNamedItemNScCrrrrr r rrrz+ReadOnlySequentialNamedNodeMap.setNamedItemcCrrrrr r rrrz-ReadOnlySequentialNamedNodeMap.setNamedItemNScCs|jgSr*rr r r rrrrz+ReadOnlySequentialNamedNodeMap.__getstate__cCs|d|_dSr4rrr r rrrz+ReadOnlySequentialNamedNodeMap.__setstate__N)r )rrrrrrrrrrrr r rrrrr r r rrs   rz&Number of entries in the NamedNodeMap.c@s*eZdZ dZddZddZddZdS) IdentifiedpublicIdsystemIdcCrr*r)r rrr r r_identified_mixin_initrz!Identified._identified_mixin_initcCr/r*)rr r r r _get_publicIdr2zIdentified._get_publicIdcCr/r*)rr r r r _get_systemIdr2zIdentified._get_systemIdN)rrrrrrrr r r rr s  rc@sHeZdZejZdZdZdZdZ dZ ddZ ddZ ddZ d d d ZdS) DocumentTypeNcCs2t|_t|_|rt|\}}||_|j|_dSr*)rentities notationsr(rr)r r*rr+r r rr$s   zDocumentType.__init__cCr/r*)internalSubsetr r r r_get_internalSubset,r2z DocumentType._get_internalSubsetcCs|jdurstd}|j|_|j|_tjjj}|rjg|j_ g|j _ |j j D]}t |j|j |j }|j j |||||q$|jj D]'}t|j|j |j |j}|j|_|j|_|j|_|jj |||||qB|||||SdSr*)rbrrrr@rAUserDataHandler NODE_CLONEDrrrNotationrrr\rEntity notationNameactualEncodingrrj)r rcclonerr notationeentityr r rrd/s0    zDocumentType.cloneNodercCs|d||j|jr|d||j||jfn |jr)|d||jf|jdur>|d||j|d|d|dS)Nz trzEntity.insertBeforecCr)Nz*cannot remove children from an entity noderrXr r rrExrzEntity.removeChildcCr)Nz)cannot replace children of an entity noderrMr r rrV|rzEntity.replaceChild)rrrrr Z ENTITY_NODEr!rrrrjrrrrrFr>rErVr r r rrXs rc@seZdZejZdZddZdS)rNcCs||_|||dSr*)rr)r rrrr r rrszNotation.__init__)rrrr rr!rrr r r rrs rc@s<eZdZgdZddZddZddZdd Zd d Zd S) DOMImplementation))core1.0)r2.0)rN)r@r)r@r)r@N)ls-loadz3.0)rNcCs|dkrd}||f|jvSr)lower _featuresrhr r rrgszDOMImplementation.hasFeaturec Cs|r |jdur tjd|}|duo|duo|du }|s(|r(tjd|rZt|\}}|dkr>|dkr>tjd|rH|sHtjd|||}|rU| || ||rb||_|_ ||_ ||_ |S)Nz(doctype object owned by another DOM treezElement with no namer@z$http://www.w3.org/XML/1998/namespacezillegal use of 'xml' prefixz(illegal use of prefix without namespaces) rDr@rAWrongDocumentErr_create_documentZInvalidCharacterErrr(rcreateElementNSrFrbdoctyperf) r rr*rrZadd_root_elementrr+rFr r rcreateDocuments<       z DOMImplementation.createDocumentcCst|}||_||_|Sr*)rrr)r r*rrrr r rcreateDocumentTypez$DOMImplementation.createDocumentTypecCrsr*)rgrtr r rrurvzDOMImplementation.getInterfacecCstSr*)Documentr r r rrr2z"DOMImplementation._create_documentN) rrrrrgrrrurr r r rrs - rc@sZeZdZ dZddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ dS) ElementInfor cCrSr*r rr r rrr.zElementInfo.__init__cCtSr*rr Zanamer r rrrzElementInfo.getAttributeTypecCrr*rrr r rrrzElementInfo.getAttributeTypeNScCr r2r r r r rrwrzElementInfo.isElementContentcC dSr2r r r r risEmptyszElementInfo.isEmptycCrr2r rr r rrzElementInfo.isIdcCrr2r rr r rrrzElementInfo.isIdNScCr/r*r r r r rrr2zElementInfo.__getstate__cCrSr*r rr r rrr.zElementInfo.__setstate__N) rrrrrrrrwrrrrrr r r rrs rcCsD|jtjkr|jd|_dSt|r |jjd|j_dSdSr*)r!r r" _id_cacheclear_id_search_stackrrbrr r rrKs     rKc@sveZdZdZejejejejfZ 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;dGdHZr2zDocument._get_encodingcCr/r*) errorHandlerr r r r_get_errorHandlerAr2zDocument._get_errorHandlercCr/r*)rr r r r_get_standaloneDr2zDocument._get_standalonecCr/r*)strictErrorCheckingr r r r_get_strictErrorCheckingGr2z!Document._get_strictErrorCheckingcCr/r*rr r r rrJr2zDocument._get_versioncCsj|j|jvrtjdt|t|f|jdur|j||jtj kr/| r/tjdt ||S)Nr:z two document elements disallowed) r!r?r@rArBrCrDrEr r]_get_documentElementrFrr r rrFMs     zDocument.appendChildcCsPz|j|Wn tytjwd|_|_d|_|j |ur&d|_ |Sr*) r,rWrHr@rArIrMrNrDdocumentElementrXr r rrE]s    zDocument.removeChildcCs$|jD] }|jtjkr|SqdSr*)r,r!r r]rr r rris  zDocument._get_documentElementcCs(|jdur |jd|_t|dSr*)rr[r r r r rr[ns  zDocument.unlinkcCs|sdS|jddd}|j|_|j|_|j|_|jD]!}t|||}|j||jt j kr0n |jt j kr9||_ ||_ q|tjjj|||Sr*)rfrrrrjr,rar\r!r r"rrrDrr@rArr)r rcrr Z childcloner r rrdts"     zDocument.cloneNodecCst}||_|Sr*)rrb)r rr r rcreateDocumentFragmentszDocument.createDocumentFragmentcCt|}||_|Sr*)rrb)r rrr r r createElementzDocument.createElementcC(t|ts tdt}||_||_|SNznode contents must be a string)rrrrrZrb)r rZtr r rcreateTextNode zDocument.createTextNodecCrr)rrrr}rZrbr rZrQr r rcreateCDATASectionrzDocument.createCDATASectioncCrr*)r|rbrr r r createCommentrzDocument.createCommentcCst||}||_|Sr*)rNrb)r rPrZpr r rcreateProcessingInstructions z$Document.createProcessingInstructioncCst|}||_d|_|Sr)rrbr)r rar r rcreateAttributerzDocument.createAttributecCs"t|\}}t|||}||_|Sr*)r(rrb)r rr*rrrr r rrs  zDocument.createElementNScCs*t|\}}t||||}||_d|_|Sr)r(rrbr)r rr*rrrr r rcreateAttributeNSs zDocument.createAttributeNScCst||||}||_|Sr*)rrb)r rrrrrr r r_create_entityszDocument._create_entitycCst|||}||_|Sr*)rrb)r rrrr r r r_create_notations zDocument._create_notationcCs~||jvr |j|S|js|jsdS|j}|dur!|jg}||_n|s%dSd}|r|}|dd|jD||}|r|j D]S}|j re| |j |j rd||j|j<|j|kr_|}qD|jsdn4qD||jr||j|j<|j|kry|}qD|js~nqD|jr||j|j<|j|kr|}qD|jdkrnqDn|jr|j D]}|jr||j|j<|j|kr|}q|dur |S|s)|S)NcSsg|] }|jtvr|qSr )r!rJ).0r`r r r s z+Document.getElementById..r;)rrrrrpopextendr,rrrrrrrrrrr)r rstackresultrRrr"r r rgetElementByIdsf              'zDocument.getElementByIdcCst||tSr*r6rr r rr7rzDocument.getElementsByTagNamecCr8r*r9rr r rr: r;zDocument.getElementsByTagNameNScCrr*)rfrgrhr r rrkrzDocument.isSupportedcCs<|jtjkr tjd|jtjkrtjdt|||S)Nzcannot import document nodesz!cannot import document type nodes)r!r r"r@rANotSupportedErrrra)r rRrcr r r importNodes     zDocument.importNoderc Csxg}|r |d|d|dur|d|rdndd|dd|d||jD] }|||||q/dS) Nz encoding="rz standalone="ZyesZnoz)r\rrrr,r#) r r(r&r=r'rrZ declarationsrRr r rr#s zDocument.writexmlcCsF|j|urtjd||jf|jtjtjfvrtjd|t kr[d|vr@| dd\}}|dkr?|tjj kr?tj dn|dkrV|tjj krV|jtjkrVtj dd}|}nd}d}|jtjkru|j }|durt|j}||nd}||_||_||_||_|jtjkr||_|S||_|dur|||r|||S)Nz?cannot rename nodes from other documents; expected %s, found %sz8renameNode() only applies to element and attribute nodesrr;rzillegal use of 'xmlns' prefixz$illegal use of the 'xmlns' attribute)rbr@rArr!r r]rrrrrrrrr.rrrrrrr&r?)r r rrrrrFZis_idr r r renameNode(sb          zDocument.renameNode)rrrNN)=rrrrr r]rrrr?rrfr"r!rrrrDrNrMrrrrjrrrrrrrrrrrrrrrFrErr[rdrrrrrrrrrrrrr7r:rkrr#rr r r rr sn   : rrz#Top-level element of this document.c Cs |j|r tjjj}ntjjj}|jtj krR| |j |j }|j D]}||j |j |j||j |j}|j|_q%|rQ|jD] }t|||}||qCn|jtjkrp|}|ro|jD] }t|||}||qan|jtjkr}||j}n|jtjkr||j}n|jtjkr||j |j}n|jtj!kr|"|j}n|jtj#kr|$|j |j }d|_|j|_n|jtj%kr?tjjj}|j&'|j(|j)|j*}||_|r>g|j+_,g|j-_,|j-j,D]"} t.| j | j)| j*} || _|j-j,/| t0| dr| 1|| | q|j+j,D]1} t2| j | j)| j*| j3} | j4| _4| j5| _5| j6| _6|| _|j+j,/| t0| dr<| 1|| | q n tj7dt8|t0|drV|1||||S)NTrzCannot clone node %s)9rbrqr@rArrZ NODE_IMPORTEDr!r r]rrrrrr,rr)rrr,rarFr<rrYrrZrrrrrPrrrrrrfrrrrrrrrr\rrrrrrrjrrC) rRrcZnewOwnerDocumentrrr"rr`rQr rrrr r rraas                         racCs(|dd}t|dkr|Sd|dfS)Nrr;r)rr)r*Zfieldsr r rr(s   r(cCs0||i|}|\}}||||Sr*)ZgetEventZ expandNoder)funcargskwargsZeventsZtoktypeZrootNoder r r_do_pulldom_parses   rcCsF |dur|sddlm}||Sddlm}t|j|f||dS)Nr expatbuilderpulldom)parserbufsize)xml.domrparserr)filerrrrr r rrs     rcCs@ |durddlm}||Sddlm}t|j|fd|iS)Nrrrr)rr parseStringrr)stringrrrr r rrs    rcCs@|rt|tr t|}|D]\}}tj||sdSqtjSr*)rrrZ_parse_feature_stringrrfrg)Zfeaturesfvr r rgetDOMImplementations   rrr*)6rrr@rrrrZxml.dom.minicompatZxml.dom.xmlbuilderrrrAr r]rrJZ defpropertyrTrrrrrrobjectrZ AttributeListrrrr/rGrNrYrrvrCr|r}rrrrrrrrKrrar(rrrrr r r rsw  {$  )GU  ><( O*UR