B  '^@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)NT)selfr r 2/opt/alt/python37/lib/python3.7/xml/dom/minidom.py__bool__+sz Node.__bool__cCs|dd|S)N) toprettyxml)r encodingr r r toxml.sz Node.toxml  cCsx|dkrt}ntjt|ddd}|jtjkrH||d|||n||d|||dkrh|S| SdS)Nxmlcharrefreplacer)rerrorsnewliner) ioStringIO TextIOWrapperBytesIOnodeTyper DOCUMENT_NODEwritexmlgetvaluedetach)r indentnewlrwriterr r r r1s   zNode.toprettyxmlcCs t|jS)N)bool childNodes)r r r r hasChildNodesCszNode.hasChildNodescCs|jS)N)r$)r r r r _get_childNodesFszNode._get_childNodescCs|jr|jdSdS)Nr)r$)r r r r _get_firstChildIszNode._get_firstChildcCs|jr|jdSdS)N)r$)r r r r _get_lastChildMszNode._get_lastChildcCs|j|jkr0xt|jD]}|||qW|S|j|jkrXtjdt |t |f|j dk rn|j ||dkr| |ny|j |}Wntk rtjYnX|jtkrt||j||||_||_|r|j|d}||_||_nd|_||_ |S)Nz%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 newChildrefChildcr6noder r r r-Qs6      zNode.insertBeforecCs|j|jkr.xt|jD]}||qW|S|j|jkrXtjdt |t |fn|jt krjt ||j dk r|j |t||d|_|S)Nz%s cannot be child of %s)rr+r,r$r5r.r/r0r1r2r9r:r3r4 _append_childr<)r rAr@r r r r5qs      zNode.appendChildcCs|j|jkr(|j}|||||S|j|jkrPtjdt |t |f||kr\dS|j dk rr|j |y|j |}Wnt k rtjYnX||j |<||_ d|_ |jtks|jtkrt||j|_|j|_d|_d|_|jr||j_|jr||j_|S)Nz%s cannot be child of %s)rr+r<r4r-r.r/r0r1r2r3r$r6r7r8r9r:r=)r r>oldChildr?r6r r r replaceChilds<         zNode.replaceChildcCsy|j|Wntk r.tjYnX|jdk rD|j|j_|jdk rX|j|j_d|_|_|jt krvt |d|_ |S)N) r$remover7r/r0r8r<r=rr9r:r3)r rCr r r r4s      zNode.removeChildcCsg}x|jD]}|jtjkr|jsL|r2|j|d_|jrB|j|j_|q|r|dj|jkr|d}|j|j|_|j|_|jr||j_|q||q |||jtj kr | q W||jdd<dS)Nr() r$rr TEXT_NODEdatar<r=unlinkappend ELEMENT_NODE normalize)r LchildrAr r r rKs*          zNode.normalizecCst|||jp|S)N) _clone_node ownerDocument)r deepr r r cloneNodeszNode.cloneNodecCs|jj||S)N)rOimplementation hasFeature)r featureversionr r r isSupportedszNode.isSupportedcCsdS)Nr )r r r r _get_localNameszNode._get_localNamecCs||kS)Nr )r otherr r r isSameNodeszNode.isSameNodecCs||dr|SdSdS)N)rV)r rTr r r getInterfaces zNode.getInterfacec Cs,y|j|dSttfk r&dSXdS)Nr) _user_dataAttributeErrorKeyError)r keyr r r getUserDataszNode.getUserDatacCsnd}y |j}Wntk r,i}||_YnX||krB||d}|dkr^d}|dk rj||=n ||f||<|S)Nr)r[r\)r r^rGhandlerolddr r r setUserDatas    zNode.setUserDatacCsHt|drDx8t|jD]&\}\}}|dk r||||||qWdS)Nr[)hasattrlistr[itemsZhandle)r operationsrcdstr^rGr`r r r _call_user_data_handlers zNode._call_user_data_handlercCsBd|_|_|jr2x|jD] }|qWt|_d|_d|_dS)N)r3rOr$rHNodeListr=r<)r rMr r r rHs   z Node.unlinkcCs|S)Nr )r r r r __enter__szNode.__enter__cCs |dS)N)rH)r etZevtbr r r __exit__sz Node.__exit__)N)rrN)!__name__ __module__ __qualname__ namespaceURIr3rOr<r=rprefixr rrr%r&r'r)r-r5rDr4rKrQrVrWrYrZr_rcrjrHrlror 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}||_||_||||_dS)Nr()r$r=r<rIr3)r rAr$Zlastr r r rBs rBcCs(x"|dk r"|jtjkrdS|j}qWdS)NTF)rr rr3)rAr r r _in_document&s    rycCs6|r2|dddddddd}||dS) N&z&z>)replacewrite)r"rGr r r _write_data.srcCsHxB|jD]8}|jtjkr4|dks*|j|kr4||t|||qW|S)Nr)r$rr rJtagNamerI_get_elements_by_tagName_helper)parentnamercrAr r r r5s    rcCs\xV|jD]L}|jtjkr|dks*|j|krF|dks<|j|krF||t||||qW|S)Nr)r$rr rJrxrsrI"_get_elements_by_tagName_ns_helper)rZnsURIrxrrAr r r r=s   rc@sJeZdZejZdZdZdZdZ ej ej ej ej ejejejfZddZdS)DocumentFragmentz#document-fragmentNcCs t|_dS)N)rkr$)r r r r __init__TszDocumentFragment.__init__)rprqrrr r+rnodeName nodeValue attributesr3rJrFCDATA_SECTION_NODEENTITY_REFERENCE_NODEPROCESSING_INSTRUCTION_NODE COMMENT_NODE NOTATION_NODEr.rr r r r rFsrc@seZdZdZejZdZdZdZ ej ej fZ e ddfddZddZdd Zd d Zd d ZeeeZZddZddZeeeZZddZddZeeeZddZddZddZdS)Attr)_name_valuers_prefixr$ _localNamerO ownerElementNFcCs2d|_||_||_||_t|_|jtdS)N)rrrsrrkr$rIText)r qNamersrxrtr r r rbs z Attr.__init__cCs.y|jStk r(|jdddSXdS)N:r*r()rr\rsplit)r r r r rWoszAttr._get_localNamecCs|jS)N) specified)r r r r _get_specifieduszAttr._get_specifiedcCs|jS)N)r)r r r r _get_namexszAttr._get_namecCs||_|jdk rt|jdS)N)rrr:)r valuer r r _set_name{s zAttr._set_namecCs|jS)N)r)r r r r _get_valueszAttr._get_valuecCs6||_||jd_|jdk r&t|j||jd_dS)Nr)rr$rGrr:)r rr r r _set_values    zAttr._set_valuecCs|jS)N)r)r r r r _get_prefixszAttr._get_prefixcCsd|j}|dkr&|r&|tkr&tjd||_|dkr<|j}nd||jf}|jrZt|j||_ dS)Nxmlnsz5illegal use of 'xmlns' prefix for the wrong namespacez%s:%s) rsrr/r0 NamespaceErrrrxrr:r)r rtZnsuriZnewNamer r r _set_prefixs  zAttr._set_prefixcCsz|j}|dk rR|j|j=|j|j|jf=|jrRd|_|jd8_|jj d8_ x|j D] }| qZW|j dd=dS)NFr*) r_attrsr_attrsNSrsrx_is_id_magic_id_nodesrO_magic_id_countr$rH)r elemrMr r r rHs   z Attr.unlinkcCsf|jr dS|j}|j}|dks&|dkr*dS||}|dkr@dS|jrV||j|jS||jSdS)NTF) rrOr_get_elem_inforsisIdNSrxisIdr)r rvrinfor r r _get_isIds zAttr._get_isIdcCs\|j}|j}|dks|dkr tS||}|dkr6tS|jrL||j|jS||jSdS)N) rOr_no_typerrsgetAttributeTypeNSrxgetAttributeTyper)r rvrrr r r _get_schemaTypes zAttr._get_schemaType) rprqrr __slots__r ATTRIBUTE_NODErrrrrFrr.rrrWrrrpropertyrrrrrrrrrtrHrrr r r r rXs,   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): NamedNodeMap)rr _ownerElementcCs||_||_||_dS)N)rrr)r attrsZattrsNSrr r r rszNamedNodeMap.__init__cCs t|jS)N)lenr)r r r r _get_lengthszNamedNodeMap._get_lengthcCs0y|t|j|Stk r*dSXdS)N)rerkeys IndexError)r r6r r r itemszNamedNodeMap.itemcCs.g}x$|jD]}||j|jfqW|S)N)rvaluesrIrr)r rLrAr r r rfszNamedNodeMap.itemscCs4g}x*|jD]}||j|jf|jfqW|S)N)rrrIrsrxr)r rLrAr r r itemsNSszNamedNodeMap.itemsNScCs"t|tr||jkS||jkSdS)N) isinstancestrrr)r r^r r r __contains__s  zNamedNodeMap.__contains__cCs |jS)N)rr)r r r r rszNamedNodeMap.keyscCs |jS)N)rr)r r r r keysNSszNamedNodeMap.keysNScCs |jS)N)rr)r r r r rszNamedNodeMap.valuesNcCs|j||S)N)rget)r rrr r r r szNamedNodeMap.getcCs:|jt|ddkrdSt|t|kt|t|kSdS)Nrr)rgetattrid)r rXr r r _cmpszNamedNodeMap._cmpcCs||dkS)Nr)r)r rXr r r __eq__szNamedNodeMap.__eq__cCs||dkS)Nr)r)r rXr r r __ge__szNamedNodeMap.__ge__cCs||dkS)Nr)r)r rXr r r __gt__szNamedNodeMap.__gt__cCs||dkS)Nr)r)r rXr r r __le__szNamedNodeMap.__le__cCs||dkS)Nr)r)r rXr r r __lt__!szNamedNodeMap.__lt__cCs"t|tr|j|S|j|SdS)N)rr,rr)r attname_or_tupler r r __getitem__$s  zNamedNodeMap.__getitem__cCsvt|trRy|j|}Wn0tk rHt|}|jj|_||YnX||_n t|tsdt d|}||dS)Nz%value must be a string or Attr object) rrrr]rrrO setNamedItemr TypeError)r attnamerrAr r r __setitem__+s   zNamedNodeMap.__setitem__cCs$y |j|Stk rdSXdS)N)rr])r rr r r getNamedItem:s zNamedNodeMap.getNamedItemcCs(y|j||fStk r"dSXdS)N)rr])r rsrxr r r getNamedItemNS@szNamedNodeMap.getNamedItemNScCsX||}|dk rJt|j|j|j=|j|j|jf=t|drFd|_ |St j dS)Nr) rr:rrrrrsrxrdrr/r0r8)r rnr r r removeNamedItemFs    zNamedNodeMap.removeNamedItemcCsZ|||}|dk rLt|j|j|j|jf=|j|j=t|drHd|_ |St j dS)Nr) rr:rrrsrxrrrdrr/r0r8)r rsrxrr r r removeNamedItemNSRs    zNamedNodeMap.removeNamedItemNScCstt|ts&tjdt|t|f|j|j}|r@| ||j|j<||j |j |j f<|j |_t|j|S)Nz%s cannot be child of %s)rrr/r0r1r2rrrrHrrsrxrrr:)r rArar r r r^s   zNamedNodeMap.setNamedItemcCs ||S)N)r)r rAr r r setNamedItemNSkszNamedNodeMap.setNamedItemNScCs||}t|j|dS)N)r:rrH)r rrAr r r __delitem__ns zNamedNodeMap.__delitem__cCs|j|j|jfS)N)rrr)r r r r __getstate__sszNamedNodeMap.__getstate__cCs|\|_|_|_dS)N)rrr)r stater r r __setstate__vszNamedNodeMap.__setstate__)N) rprqrrrrrrrfrrrrrr__len__rrrrrrrrrrrrrrrrrr r r r rs:     rlengthz$Number of nodes in the NamedNodeMap.c@s0eZdZdZddZddZddZdd Zd S) TypeInfo) namespacercCs||_||_dS)N)rr)r rrr r r rszTypeInfo.__init__cCs2|jrd|jj|j|jfSd|jj|jfSdS)Nz<%s %r (from %r)>z<%s %r>)r __class__rpr)r r r r __repr__s  zTypeInfo.__repr__cCs|jS)N)r)r r r r rszTypeInfo._get_namecCs|jS)N)r)r r r r _get_namespaceszTypeInfo._get_namespaceN)rprqrrrrrrrr 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) rOr3rrrtrsrr$rrr<r=NrcCsBd|_||_|_||_||_t|_d|_|_d|_ d|_ dS)N) r3rrrtrsrkr$r<r=rr)r rrsrtrxr r r rs  zElement.__init__cCs|jdkri|_i|_dS)N)rr)r r r r _ensure_attributess zElement._ensure_attributescCs.y|jStk r(|jdddSXdS)Nrr*r()rr\rr)r r r r rWszElement._get_localNamecCs|jS)N)r)r r r r _get_tagNameszElement._get_tagNamecCsD|jdk r*xt|jD] }|qWd|_d|_t|dS)N)rrerrHrr )r attrr r r rHs   zElement.unlinkcCs4|jdkrdSy |j|jStk r.dSXdS)Nr)rrr])r rr r r getAttributes   zElement.getAttributecCs8|jdkrdSy|j||fjStk r2dSXdS)Nr)rrr])r rsrxr r r getAttributeNSs  zElement.getAttributeNScCsV||}|dkr4t|}||_|j|_||n||jkrR||_|jrRt|dS)N)getAttributeNoderrrOsetAttributeNoderr:)r rrrr r r setAttributes   zElement.setAttributecCst|\}}|||}|dkrHt||||}||_|j|_||n4||jkrf||_|jrft||j|kr|||_||_ dS)N) _nssplitgetAttributeNodeNSrrrOrrr:rtr)r rs qualifiedNamerrt localnamerr r r setAttributeNSs     zElement.setAttributeNScCs|jdkrdS|j|S)N)rr)r Zattrnamer r r rs zElement.getAttributeNodecCs|jdkrdS|j||fS)N)rr)r rsrxr r r rs zElement.getAttributeNodeNScCs|jd|fkrtjd||j|jd}|dk rD|||j |j |j fd}|dk rt||k rt||t ||||k r|S||k r|SdS)Nzattribute node already owned) rr/r0ZInuseAttributeErrrrrrremoveAttributeNoderrsrx_set_attribute_node)r rZold1Zold2r r r rs    zElement.setAttributeNodecCsP|jdkrtjy|j|}Wntk r@tjYnX||dS)N)rr/r0r8rr]r)r rrr r r removeAttributes  zElement.removeAttributecCsT|jdkrtjy|j||f}Wntk rDtjYnX||dS)N)rr/r0r8r]r)r rsrxrr r r removeAttributeNS%s  zElement.removeAttributeNScCs^|dkrtjy|j|jWntk r@tjYnXt|||j|_dS)N) r/r0r8rrr]r:rHrO)r rAr r r r.s zElement.removeAttributeNodecCs|jdkrdS||jkS)NF)r)r rr r r hasAttribute=s zElement.hasAttributecCs|jdkrdS||f|jkS)NF)r)r rsrxr r r hasAttributeNSBs zElement.hasAttributeNScCst||tS)N)rrk)r rr r r getElementsByTagNameGszElement.getElementsByTagNamecCst|||tS)N)rrk)r rsrxr r r getElementsByTagNameNSJszElement.getElementsByTagNameNScCsd|jt|fS)Nz)rr)r r r r rNszElement.__repr__rc Cs||d|j|}t|}x4|D],}|d|t|||j|dq.W|jr|dt|jdkr|jdj t j kr|jd |dddn8||x"|jD]}| |||||qW|||d|j|fn|d |dS) Nr{z %s="r|r}r*rrz%sz/>%s) rr_get_attributessortedrrrr$rrr rFr) r r"r addindentr!rZa_namesZa_namerAr r r rQs$      zElement.writexmlcCs|t|j|j|S)N)rrrr)r r r r rlszElement._get_attributescCs|jr dSdSdS)NTF)r)r r r r hasAttributespszElement.hasAttributescCs||}||dS)N)rsetIdAttributeNode)r ridAttrr r r setIdAttributexs zElement.setIdAttributecCs|||}||dS)N)rr)r rsrxrr r r setIdAttributeNS|s zElement.setIdAttributeNScCsj|dks||jstjt|dk r4tj|jsfd|_|jd7_|j j d7_ t |dS)NTr*) rYrr/r0r8_get_containing_entrefNoModificationAllowedErrrrrOrr:)r rr r r rs   zElement.setIdAttributeNode)rrr).rprqrrrr rJrrrrrrrrFrrr.rrrrWrrHrrrrrrrZsetAttributeNodeNSrrrZremoveAttributeNodeNSrrrrrrrrrrrr r r r rsP      rrz*NamedNodeMap of attributes on the element.z%Namespace-local name of this element.cCs8t||||j|j<||j|j|jf<||_dS)N)r:rrrrrsrxr)elementrr r r rs  rc@sbeZdZdZdZeZdZdZddZ ddZ ddZ d d Z d d Z d dZddZddZdS) Childlessr NcCsdS)Nr )r r r r r'szChildless._get_firstChildcCsdS)Nr )r r r r r)szChildless._get_lastChildcCstj|jddS)Nz nodes cannot have children)r/r0r1r)r rAr r r r5szChildless.appendChildcCsdS)NFr )r r r r r%szChildless.hasChildNodescCstj|jddS)Nz nodes do not have children)r/r0r1r)r r>r?r r r r-szChildless.insertBeforecCstj|jddS)Nz nodes do not have children)r/r0r8r)r rCr r r r4szChildless.removeChildcCsdS)Nr )r r r r rKszChildless.normalizecCstj|jddS)Nz nodes do not have children)r/r0r1r)r r>rCr r r rDszChildless.replaceChild)rprqrrrrZ EmptyNodeListr$rurwr'r)r5r%r-r4rKrDr r r r rsrc@s\eZdZejZdZddZddZddZ e ee Z dd Z d d Z e e e Zdd dZdS)ProcessingInstruction)targetrGcCs||_||_dS)N)r rG)r r rGr r r rszProcessingInstruction.__init__cCs|jS)N)rG)r r r r _get_nodeValuesz$ProcessingInstruction._get_nodeValuecCs ||_dS)N)rG)r rr r r _set_nodeValuesz$ProcessingInstruction._set_nodeValuecCs|jS)N)r )r r r r _get_nodeNamesz#ProcessingInstruction._get_nodeNamecCs ||_dS)N)r )r rr r r _set_nodeNamesz#ProcessingInstruction._set_nodeNamercCs|d||j|j|fdS)Nz %s%s)rr rG)r r"r rr!r r r rszProcessingInstruction.writexmlN)rrr)rprqrrr rrrrr r rrr rrrr r r r r s  r c@sreZdZdZddZddZeZddZdd Ze eeZ Z d d Z d d Z ddZddZddZddZdS) CharacterData)_datarOr3r=r<cCs,d|_|_d|_|_d|_t|dS)Nr)rOr3r=r<rr r)r r r r rs  zCharacterData.__init__cCs t|jS)N)rrG)r r r r rszCharacterData._get_lengthcCs|jS)N)r)r r r r _get_dataszCharacterData._get_datacCs ||_dS)N)r)r rGr r r _set_dataszCharacterData._set_datacCs6|j}t|dkrd}nd}d|jj|dd|fS)N z...rzr)rGrrrp)r rGZ dotdotdotr r r rs  zCharacterData.__repr__cCsT|dkrtjd|t|jkr.tjd|dkrBtjd|j|||S)Nrzoffset cannot be negativez#offset cannot be beyond end of datazcount cannot be negative)r/r0 IndexSizeErrrrG)r offsetcountr r r substringDatas   zCharacterData.substringDatacCs|j||_dS)N)rG)r argr r r appendDataszCharacterData.appendDatacCsZ|dkrtjd|t|jkr.tjd|rVd|jd|||j|df|_dS)Nrzoffset cannot be negativez#offset cannot be beyond end of dataz%s%s%s)r/r0rrrG)r rrr r r insertDatas  zCharacterData.insertDatacCsl|dkrtjd|t|jkr.tjd|dkrBtjd|rh|jd||j||d|_dS)Nrzoffset cannot be negativez#offset cannot be beyond end of datazcount cannot be negative)r/r0rrrG)r rrr r r deleteDatas   zCharacterData.deleteDatacCsr|dkrtjd|t|jkr.tjd|dkrBtjd|rnd|jd|||j||df|_dS)Nrzoffset cannot be negativez#offset cannot be beyond end of datazcount cannot be negativez%s%s%s)r/r0rrrG)r rrrr r r replaceDatas   zCharacterData.replaceDataN)rprqrrrrrrrrrrGrrrrrrrr r r r rs    rzLength 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 kr~|dkrp|j |n|j |||jd||_|S)Nrzillegal offset value) rrGr/r0rrrOr<r3r$r5r-)r rZnewTextnextr r r splitText0s zText.splitTextrcCst|d||j|fdS)Nz%s%s%s)rrG)r r"r rr!r r r r?sz Text.writexmlcCs|jg}|j}x6|dk rD|jtjtjfkr@|d|j|j}qPqW|j}x4|dk r|jtjtjfkr|||j|j}qNPqNWd |S)Nrr) rGr=rr rFrr;r<rIjoin)r rLrr r r _get_wholeTextDs   zText._get_wholeTextcCs|j}|j}x6|dk rB|jtjtjfkr>|j}|||}qPqW|j}|sX||x6|dk r|jtjtjfkr|j}|||}qZPqZW|r||_|SdSdS)N) r3r=rr rFrr4r<rG)r Zcontentrrrr r r replaceWholeTextVs*     zText.replaceWholeTextcCsF|jrdSt|}|dkr"dS|j|}|dkr:dS|SdS)NF)rGstrip_get_containing_elementrOrisElementContent)r rrr r r !_get_isWhitespaceInElementContentrs  z&Text._get_isWhitespaceInElementContent)rrr)rprqrrrr rFrrrrrr r!r%r r r r r)s 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}x"|dk r(|jtjkr |S|j}qWdS)N)r3rr rJ)rAr@r r r r#s    r#cCs.|j}x"|dk r(|jtjkr |S|j}qWdS)N)r3rr r)rAr@r r r rs    rc@s(eZdZejZdZddZdddZdS) Commentz#commentcCst|||_dS)N)rrr)r rGr r r rs zComment.__init__rcCs,d|jkrtd|d||j|fdS)Nz--z%'--' is not allowed in a comment nodez %s%s)rGr7r)r r"r rr!r r r rs zComment.writexmlN)rrr) rprqrrr rrrrrr r r r r&sr&c@s$eZdZdZejZdZdddZdS) CDATASectionr z#cdata-sectionrcCs,|jddkrtd|d|jdS)Nz]]>rz$']]>' not allowed in a CDATA sectionz)rGfindr7r)r r"r rr!r r r rszCDATASection.writexmlN)rrr) rprqrrrr rrrrr r r r r'sr'c@szeZdZdZdddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZdS)ReadOnlySequentialNamedNodeMap)_seqr cCs ||_dS)N)r*)r seqr r r rsz'ReadOnlySequentialNamedNodeMap.__init__cCs t|jS)N)rr*)r r r r rsz&ReadOnlySequentialNamedNodeMap.__len__cCs t|jS)N)rr*)r r r r rsz*ReadOnlySequentialNamedNodeMap._get_lengthcCs"x|jD]}|j|kr|SqWdS)N)r*r)r rrr r r rs  z+ReadOnlySequentialNamedNodeMap.getNamedItemcCs,x&|jD]}|j|kr|j|kr|SqWdS)N)r*rsrx)r rsrxrr r r rs z-ReadOnlySequentialNamedNodeMap.getNamedItemNScCs4t|tr|j|}n ||}|dkr0t||S)N)rr,rrr])r Z name_or_tuplerAr r r rs    z*ReadOnlySequentialNamedNodeMap.__getitem__cCs0|dkr dSy |j|Stk r*dSXdS)Nr)r*r)r r6r r r rs  z#ReadOnlySequentialNamedNodeMap.itemcCstjddS)Nz"NamedNodeMap instance is read-only)r/r0r)r rr r r rsz.ReadOnlySequentialNamedNodeMap.removeNamedItemcCstjddS)Nz"NamedNodeMap instance is read-only)r/r0r)r rsrxr r r rsz0ReadOnlySequentialNamedNodeMap.removeNamedItemNScCstjddS)Nz"NamedNodeMap instance is read-only)r/r0r)r rAr r r rsz+ReadOnlySequentialNamedNodeMap.setNamedItemcCstjddS)Nz"NamedNodeMap instance is read-only)r/r0r)r rAr r r rsz-ReadOnlySequentialNamedNodeMap.setNamedItemNScCs|jgS)N)r*)r r r r rsz+ReadOnlySequentialNamedNodeMap.__getstate__cCs|d|_dS)Nr)r*)r rr r r rsz+ReadOnlySequentialNamedNodeMap.__setstate__N)r )rprqrrrrrrrrrrrrrrrrr r r r r)s  r)z&Number of entries in the NamedNodeMap.c@s(eZdZdZddZddZddZdS) Identified)publicIdsystemIdcCs||_||_dS)N)r-r.)r r-r.r r r _identified_mixin_initsz!Identified._identified_mixin_initcCs|jS)N)r-)r r r r _get_publicIdszIdentified._get_publicIdcCs|jS)N)r.)r r r r _get_systemIdszIdentified._get_systemIdN)rprqrrrr/r0r1r r r r r,sr,c@sHeZdZejZdZdZdZdZ dZ ddZ ddZ ddZ d d d ZdS) DocumentTypeNcCs2t|_t|_|r&t|\}}||_|j|_dS)N)r)entities notationsrrr)r rrtrr r r r s  zDocumentType.__init__cCs|jS)N)internalSubset)r r r r _get_internalSubsetsz DocumentType._get_internalSubsetcCs|jdkrtd}|j|_|j|_tjjj}|rg|j_ g|j _ x>|j j D]2}t |j|j |j }|j j |||||qJWxZ|jj D]N}t|j|j |j |j}|j|_|j|_|j|_|jj |||||qW|||||SdSdS)N)rOr2rrr/r0UserDataHandler NODE_CLONEDr3r*r4Notationr-r.rIrjEntity notationNameactualEncodingrrU)r rPclonergrnotationeentityr r r rQs.  zDocumentType.cloneNodercCs|d||j|jr8|d||j||jfn|jrR|d||jf|jdk r||d||j|d|d|dS)Nz r r r rFszEntity.__init__cCs|jS)N)r<)r r r r _get_actualEncodingLszEntity._get_actualEncodingcCs|jS)N)r)r r r r _get_encodingOszEntity._get_encodingcCs|jS)N)rU)r r r r _get_versionRszEntity._get_versioncCstjddS)Nz(cannot append children to an entity node)r/r0r1)r r>r r r r5UszEntity.appendChildcCstjddS)Nz+cannot insert children below an entity node)r/r0r1)r r>r?r r r r-YszEntity.insertBeforecCstjddS)Nz*cannot remove children from an entity node)r/r0r1)r rCr r r r4]szEntity.removeChildcCstjddS)Nz)cannot replace children of an entity node)r/r0r1)r r>rCr r r rDaszEntity.replaceChild)rprqrrrr Z ENTITY_NODErrr<rrUrrCrDrEr5r-r4rDr r r r r:=sr:c@seZdZejZdZddZdS)r9NcCs||_|||dS)N)rr/)r rr-r.r r r riszNotation.__init__)rprqrrr rrrrr r r r r9esr9c@sHeZdZddddddddgZd d Zd d Zd dZddZddZdS)DOMImplementation)corez1.0)rGz2.0)rGN)r/z1.0)r/z2.0)r/N)zls-loadz3.0)zls-loadNcCs|dkr d}||f|jkS)Nr)lower _features)r rTrUr r r rSyszDOMImplementation.hasFeaturec Cs|r|jdk rtjd|}|dko8|dko8|dk }|sP|rPtjd|rt|\}}|dkr||dkr|tjd|r|stjd|||}|r| || ||r||_|_ ||_ ||_ |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) r3r/r0WrongDocumentErr_create_documentZInvalidCharacterErrrrcreateElementNSr5rOdoctyperR) r rsrrMrvZadd_root_elementrtrrr r r createDocument~s4        z DOMImplementation.createDocumentcCst|}||_||_|S)N)r2r-r.)r rr-r.rMr r r createDocumentTypesz$DOMImplementation.createDocumentTypecCs||dr|SdSdS)N)rS)r rTr r r rZs zDOMImplementation.getInterfacecCstS)N)Document)r r r r rKsz"DOMImplementation._create_documentN) rprqrrrIrSrNrOrZrKr r r r rFns-rFc@sXeZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ dS) ElementInfo)rcCs ||_dS)N)r)r rr r r rszElementInfo.__init__cCstS)N)r)r anamer r r rszElementInfo.getAttributeTypecCstS)N)r)r rsrxr r r rszElementInfo.getAttributeTypeNScCsdS)NFr )r r r r r$szElementInfo.isElementContentcCsdS)NFr )r r r r isEmptyszElementInfo.isEmptycCsdS)NFr )r rRr r r rszElementInfo.isIdcCsdS)NFr )r rsrxr r r rszElementInfo.isIdNScCs|jS)N)r)r r r r rszElementInfo.__getstate__cCs ||_dS)N)r)r rr r r rszElementInfo.__setstate__N) rprqrrrrrrr$rSrrrrr r r r rQs rQcCs>|jtjkr|jd|_nt|r:|jjd|j_dS)N)rr r _id_cacheclear_id_search_stackryrO)rAr r r r:s    r:c@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)Nz%s cannot be child of %sz two document elements disallowed) rr.r/r0r1r2r3r4r rJ_get_documentElementr5)r rAr r r r52s    zDocument.appendChildcCsVy|j|Wntk r.tjYnXd|_|_d|_|j |krRd|_ |S)N) r$rEr7r/r0r8r<r=r3documentElement)r rCr r r r4Bs  zDocument.removeChildcCs$x|jD]}|jtjkr|SqWdS)N)r$rr rJ)r rAr r r raNs  zDocument._get_documentElementcCs(|jdk r|jd|_t|dS)N)rMrHr )r r r r rHSs  zDocument.unlinkcCs|sdS|jddd}|j|_|j|_|j|_xL|jD]B}t|||}|j||jt j krbn|jt j krt||_ ||_ q8W|tjjj|||S)N)rRrNrr]rUr$rNrIrr rrBrMr3rjr/r0r7r8)r rPr=rZ childcloner r r rQYs"       zDocument.cloneNodecCst}||_|S)N)rrO)r rbr r r createDocumentFragmentnszDocument.createDocumentFragmentcCst|}||_|S)N)rrO)r rr?r r r createElementsszDocument.createElementcCs(t|tstdt}||_||_|S)Nznode contents must be a string)rrrrrGrO)r rGtr r r createTextNodexs  zDocument.createTextNodecCs(t|tstdt}||_||_|S)Nznode contents must be a string)rrrr'rGrO)r rGr@r r r createCDATASections  zDocument.createCDATASectioncCst|}||_|S)N)r&rO)r rGr@r r r createCommentszDocument.createCommentcCst||}||_|S)N)r rO)r r rGpr r r createProcessingInstructions z$Document.createProcessingInstructioncCst|}||_d|_|S)Nr)rrOr)r rar r r createAttributeszDocument.createAttributecCs"t|\}}t|||}||_|S)N)rrrO)r rsrrtrxr?r r r rLs  zDocument.createElementNScCs*t|\}}t||||}||_d|_|S)Nr)rrrOr)r rsrrtrxrkr r r createAttributeNSs  zDocument.createAttributeNScCst||||}||_|S)N)r:rO)r rr-r.r;r?r r r _create_entityszDocument._create_entitycCst|||}||_|S)N)r9rO)r rr-r.rr r r _create_notations zDocument._create_notationcCs||jkr|j|S|js$|js$dS|j}|dkrB|jg}||_n|sJdSd}x<|r|}|dd|jD||}|r>x|j D]}|j r| |j |j r||j|j<|j|kr|}n|jsPq||jr||j|j<|j|kr|}n |js8Pq|jr||j|j<|j|kr,|}q|jdkrPqWnB|jrx8|j D]*}|jrR||j|j<|j|krR|}qRW|dk rRPqRW|S)NcSsg|]}|jtkr|qSr )rr9).0rMr r r sz+Document.getElementById..r*)rTrWrrVrbpopextendr$rrrrsrrxrrrrr)r rstackresultrArrr r r getElementByIdsZ               zDocument.getElementByIdcCst||tS)N)rrk)r rr r r rszDocument.getElementsByTagNamecCst|||tS)N)rrk)r rsrxr r r rszDocument.getElementsByTagNameNScCs|j||S)N)rRrS)r rTrUr r r rVszDocument.isSupportedcCs>|jtjkrtjdn|jtjkr2tjdt|||S)Nzcannot import document nodesz!cannot import document type nodes)rr rr/r0NotSupportedErrrBrN)r rArPr r r importNodes    zDocument.importNodercCsN|dkr|d|n|d||fx|jD]}|||||q2WdS)Nzz%%s)rr$r)r r"r rr!rrAr r r rs   zDocument.writexmlcCsJ|j|k r tjd||jf|jtjtjfkr>tjd|t krd|kr| dd\}}|dkr|tjj krtj dq|dkr|tjj kr|jtjkrtj dd}|}nd}d}|jtjkr|j }|dk r|j}||nd}||_||_||_||_|jtjkr||_n*||_|dk rF|||rF|||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)rOr/r0rJrr rJrrwrrrrrrrrtrrsrrrrr)r rrsrrtrxrZis_idr r r renameNodesR         zDocument.renameNode)rrrN)=rprqrrrr rJrrrBr.rFrRrrrrrr3r=r<r<rr]rUr_r[rYrrrrCrXrZrDr\r^r`rEr5r4rarHrQrcrdrfrgrhrjrlrLrmrnrorvrrrVrxrryr r r r rPsf    : rPrbz#Top-level element of this document.c Cs|j|rtjjj}n tjjj}|jtj kr| |j |j }x>|j D]0}||j |j |j||j |j}|j|_qJW|rx$|jD]}t|||}||qWn|jtjkr|}|rx$|jD]}t|||}||qWn|jtjkr ||j}n|jtjkr*||j}n|jtjkrL||j |j}nr|jtj!krj|"|j}nT|jtj#kr|$|j |j }d|_|j|_n$|jtj%krtjjj}|j&'|j(|j)|j*}||_|rg|j+_,g|j-_,xR|j-j,D]F} t.| j | j)| j*} || _|j-j,/| t0| dr| 1|| | qWx|j+j,D]b} t2| j | j)| j*| j3} | j4| _4| j5| _5| j6| _6|| _|j+j,/| t0| drB| 1|| | qBWntj7dt8|t0|dr|1||||S)NTrjzCannot clone node %s)9rOrYr/r0r7r8Z NODE_IMPORTEDrr rJrLrsrrrrrrrxrr$rNr5r+rcrFrfrGrrgrrjr rrhrrmrBrRrOrr-r.r3r*r4r9rIrdrjr:r;r<rrUrwr2) rArPZnewOwnerDocumentrgr=rrkrMr@rr>r?r@r r r rNAs|                rNcCs,|dd}t|dkr|Sd|dfSdS)Nrr*r)rr)rZfieldsr r r rs  rcCs,|||}|\}}||||S)N)ZgetEventZ expandNoderU)funcargskwargsZeventsZtoktypeZrootNoder r r _do_pulldom_parses    r~cCsH|dkr"|s"ddlm}||Sddlm}t|j|f||dSdS)Nr) expatbuilder)pulldom)parserbufsize)xml.domrparserr~)filerrrrr r r rs      rcCsB|dkrddlm}||Sddlm}t|j|fd|iSdS)Nr)r)rr)rr parseStringrr~)stringrrrr r r rs     rcCsB|rs v  y$ w )GU  ><( O*PR