U .e"@sddlmZmZmZzddlmZWn ek rDddlmZYnXddlm Z m Z ddl Z ddl m Z ddl mZdd lmZdd lmZd d ZeeZdS) )absolute_importdivisionunicode_literals)MutableMapping)minidomNodeN)base) constants) namespaces)moduleFactoryFactorycsVGdddtGfdddtjGfdddtj}ddtS) Nc@sLeZdZddZddZddZddZd d Zd d Zd dZ ddZ dS)zgetDomBuilder..AttrListcSs ||_dSNelementselfrrI/usr/lib/python3.8/site-packages/pip/_vendor/html5lib/treebuilders/dom.py__init__sz(getDomBuilder..AttrList.__init__cSst|jjSr)iterr attributeskeysrrrr__iter__sz(getDomBuilder..AttrList.__iter__cSs4t|trtn |jj|}||_||jj|<dSr) isinstancetupleNotImplementedErrorr ownerDocumentZcreateAttributevaluer)rnamerattrrrr __setitem__s  z+getDomBuilder..AttrList.__setitem__cSs t|jjSr)lenrrrrrr__len__#sz'getDomBuilder..AttrList.__len__cSst|jjSr)listrritemsrrrrr&&sz%getDomBuilder..AttrList.itemscSst|jjSr)r%rrvaluesrrrrr')sz&getDomBuilder..AttrList.valuescSs"t|trtn|jj|jSdSr)rrrrrrrr rrr __getitem__,s z+getDomBuilder..AttrList.__getitem__cSst|trtn |jj|=dSr)rrrrrr(rrr __delitem__2s z+getDomBuilder..AttrList.__delitem__N) __name__ __module__ __qualname__rrr"r$r&r'r)r*rrrrAttrListsr.cseZdZddZeddZddZddd Zd d Zd d Z ddZ fddZ ddZ ee e Z fddZddZddZeeZdS)z"getDomBuilder..NodeBuildercSstj||j||_dSr)r rrnodeNamerrrrrr9sz+getDomBuilder..NodeBuilder.__init__cSst|jdr|jjpdS)N namespaceURI)hasattrrr0rrrr=s z+getDomBuilder..NodeBuilder.cSs||_|j|jdSr)parentr appendChildrnoderrrr4@sz.getDomBuilder..NodeBuilder.appendChildNcSs4|jj|}|r$|j||jn |j|dSr)rrcreateTextNode insertBeforer4)rdatar8textrrr insertTextDsz-getDomBuilder..NodeBuilder.insertTextcSs|j|j|j||_dSr)rr8r3)rr6ZrefNoderrrr8Ksz/getDomBuilder..NodeBuilder.insertBeforecSs&|jj|jkr|j|jd|_dSr)rZ parentNode removeChildr3r5rrrr<Osz.getDomBuilder..NodeBuilder.removeChildcSs6|jr,|jj}|j||j|qg|_dSr)r hasChildNodesZ firstChildr<r4 childNodes)rZ newParentchildrrrreparentChildrenTs   z3getDomBuilder..NodeBuilder.reparentChildrencs |jSrrr)r.rr getAttributes[sz0getDomBuilder..NodeBuilder.getAttributescSsv|rrt|D]`\}}t|trb|ddk rD|dd|d}n|d}|j|d||q|j||qdS)Nr:rr )r%r&rrrZsetAttributeNSZ setAttribute)rrr rZ qualifiedNamerrr setAttributes^s  z0getDomBuilder..NodeBuilder.setAttributescs|jdS)NF)r cloneNoder NodeBuilderrrrDmsz,getDomBuilder..NodeBuilder.cloneNodecSs |jSr)rr=rrrr hasContentpsz-getDomBuilder..NodeBuilder.hasContentcSs(|jdkrtd|jfS|j|jfSdS)NZhtml) namespacer r rrrr getNameTupless z/getDomBuilder..NodeBuilder.getNameTuple)N)r+r,r-rpropertyrHr4r;r8r<r@rArCrrDrGrIZ nameTupler)r.rFrrrF8s     rFcseZdZfddZfddZdfdd Zfdd Zfd d Zd d ZfddZ ddZ ddZ dddZ Z dZdS)z"getDomBuilder..TreeBuildercsddd|_t|Sr)getDOMImplementationZcreateDocumentdomweakrefproxyr)Domrr documentClass|sz0getDomBuilder..TreeBuilder.documentClasscsR|d}|d}|d}}||||}|j|tkrN|j|_dS)Nr publicIdsystemId)rKZcreateDocumentTypeZdocumentr4rrLr)rtokenr rQrRZdomimplZdoctype)rOrFrr insertDoctypesz0getDomBuilder..TreeBuilder.insertDoctypeNcs6|dkr |jdkr |j|}n|j||}|Sr)ZdefaultNamespacerLZ createElementZcreateElementNS)rr rHr6rErr elementClasssz/getDomBuilder..TreeBuilder.elementClasscs|j|Sr)rLZ createComment)rr9rErr commentClasssz/getDomBuilder..TreeBuilder.commentClasscs|jSr)rLZcreateDocumentFragmentrrErr fragmentClasssz0getDomBuilder..TreeBuilder.fragmentClasscSs|j|jdSr)rLr4rr5rrrr4sz.getDomBuilder..TreeBuilder.appendChildcs|Srrr)testSerializerrrrXsz1getDomBuilder..TreeBuilder.testSerializercSs|jSr)rLrrrr getDocumentsz.getDomBuilder..TreeBuilder.getDocumentcSstj|jSr)r TreeBuilder getFragmentrrrrrr[sz.getDomBuilder..TreeBuilder.getFragmentcSsp|}||krtj|||nNt|jdrXtj|jjkrXt|jj|j_|jj tj|j |j |dS)N_child_node_types) r rZr;r1rLr TEXT_NODEr\r%appendr4r7)rr9r3rrrr;s z-getDomBuilder..TreeBuilder.insertText)N)N)r+r,r-rPrTrUrVrWr4rXrYr[r;implementationr r)rODomImplementationrFrXrrrZ{s      rZcs0|gdfdd |ddS)Nrc s|jtjkr|jrj|js|jrP|jp&d}|jp0d}dd||j||fq~dd||jfndd|fnr|jtjkrdnX|jtjkrdn>|jtj krވdd||j fn|jtj krd d||j fnt |d r6|j dk r6d tj|j |jf}n|j}d d||f|rg}tt|jD]T}|j|}|j}|j}|j } | rd tj| |jf}n|j}|||fqnt|D]&\}}d d|d||fq|d7}|jD]} | |qdS)Nz|%s z|%sz|%sz #documentz#document-fragmentz|%sz|%s"%s"r0z%s %sz|%s<%s>z |%s%s="%s"r )ZnodeTyperZDOCUMENT_TYPE_NODEr rQrRr^Z DOCUMENT_NODEZDOCUMENT_FRAGMENT_NODEZ COMMENT_NODEZ nodeValuer]r1r0r prefixesr/Z hasAttributesranger#ritemrZ localNamesortedr>) rindentrQrRr rir!rnsr?rvserializeElementrrrlsT             z?getDomBuilder..testSerializer..serializeElement )r)Z normalizejoinrrrjrrXs . z%getDomBuilder..testSerializer)rr rrZlocals)r`rZr)r.rOr`rFrXr getDomBuilders $C:6rp)Z __future__rrrZcollections.abcr ImportError collectionsZxml.domrrrMrar r r Z_utilsr rpZ getDomModulerrrrs    _