o 7]h"@sddlmZmZmZzddlmZWney!ddlmZYnwddlm 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 ||_dSNelementselfrrG/usr/lib/python3/dist-packages/pip/_vendor/html5lib/treebuilders/dom.py__init__ z(getDomBuilder..AttrList.__init__cSt|jjSr)iterr attributeskeysrrrr__iter__z(getDomBuilder..AttrList.__iter__cSs2t|trt|jj|}||_||jj|<dSr) isinstancetupleNotImplementedErrorr ownerDocumentcreateAttributevaluer)rnamer#attrrrr __setitem__s z+getDomBuilder..AttrList.__setitem__cSs t|jjSr)lenrrrrrr__len__#s z'getDomBuilder..AttrList.__len__cSrr)listrritemsrrrrr*&rz%getDomBuilder..AttrList.itemscSrr)r)rrvaluesrrrrr+)rz&getDomBuilder..AttrList.valuescSst|trt|jj|jSr)rrr rrr#rr$rrr __getitem__, z+getDomBuilder..AttrList.__getitem__cSst|trt|jj|=dSr)rrr rrr,rrr __delitem__2r.z+getDomBuilder..AttrList.__delitem__N) __name__ __module__ __qualname__rrr&r(r*r+r-r/rrrrAttrLists r3cseZdZddZeddZddZddd Zd d Zd d Z ddZ fddZ ddZ ee e Z fddZddZddZeeZdS)z"getDomBuilder..NodeBuildercSstj||j||_dSr)r rrnodeNamerrrrrr9s z+getDomBuilder..NodeBuilder.__init__cSst|jdr |jjp dS)N namespaceURI)hasattrrr5rrrr=s z+getDomBuilder..NodeBuilder.cSs||_|j|jdSr)parentr appendChildrnoderrrr9@sz.getDomBuilder..NodeBuilder.appendChildNcSs6|jj|}|r|j||jdS|j|dSr)rr!createTextNode insertBeforer9)rdatar=textrrr insertTextDsz-getDomBuilder..NodeBuilder.insertTextcSs|j|j|j||_dSr)rr=r8)rr;refNoderrrr=Ks z/getDomBuilder..NodeBuilder.insertBeforecSs&|jj|jkr|j|jd|_dSr)r parentNode removeChildr8r:rrrrCOs z.getDomBuilder..NodeBuilder.removeChildcSs>|jr|jj}|j||j||jsg|_dSr)r hasChildNodes firstChildrCr9 childNodes)r newParentchildrrrreparentChildrenTs    z3getDomBuilder..NodeBuilder.reparentChildrencs |jSrrr)r3rr getAttributes[rz0getDomBuilder..NodeBuilder.getAttributescSsz|r9t|D]2\}}t|tr1|ddur"|dd|d}n|d}|j|d||q|j||qdSdS)Nr:rr )r)r*rrrsetAttributeNS setAttribute)rrr$r# qualifiedNamerrr setAttributes^s  z0getDomBuilder..NodeBuilder.setAttributescs|jdS)NF)r cloneNoder NodeBuilderrrrPmrz,getDomBuilder..NodeBuilder.cloneNodecSs |jSr)rrDrrrr hasContentprz-getDomBuilder..NodeBuilder.hasContentcSs$|jdur td|jfS|j|jfS)Nhtml) namespacer r$rrrr getNameTupless  z/getDomBuilder..NodeBuilder.getNameTupler)r0r1r2rpropertyrUr9r@r=rCrIrJrOrrPrSrV nameTupler)r3rRrrrR8s     rRcseZdZfddZfddZdfdd Zfdd Zfd d Zd d ZfddZ ddZ ddZ dddZ Z dZdS)z"getDomBuilder..TreeBuildercsddd|_t|Sr)getDOMImplementationcreateDocumentdomweakrefproxyr)Domrr documentClass|s z0getDomBuilder..TreeBuilder.documentClasscsV|d}|d}|d}}||||}|j|tkr)|j|_dSdS)Nr$publicIdsystemId)rYcreateDocumentTypedocumentr9rr[r!)rtokenr$r`radomimpldoctype)r^rRrr insertDoctypes z0getDomBuilder..TreeBuilder.insertDoctypeNcs<|dur|jdur|j|}|S|j||}|Sr)defaultNamespacer[ createElementcreateElementNS)rr$rUr;rQrr elementClasss  z/getDomBuilder..TreeBuilder.elementClasscs|j|Sr)r[ createComment)rr>rQrr commentClassrz/getDomBuilder..TreeBuilder.commentClasscs|jSr)r[createDocumentFragmentrrQrr fragmentClassz0getDomBuilder..TreeBuilder.fragmentClasscSs|j|jdSr)r[r9rr:rrrr9sz.getDomBuilder..TreeBuilder.appendChildcs|Srrr)testSerializerrrrqsz1getDomBuilder..TreeBuilder.testSerializercSs|jSr)r[rrrr getDocumentsz.getDomBuilder..TreeBuilder.getDocumentcSstj|jSr)r TreeBuilder getFragmentrrrrrrtrpz.getDomBuilder..TreeBuilder.getFragmentcSsr|}||krtj|||dSt|jdr-tj|jjvr-t|jj|j_|jj tj|j |j |dS)N_child_node_types) r rsr@r6r[r TEXT_NODErur)appendr9r<)rr>r8rrrr@s z-getDomBuilder..TreeBuilder.insertTextr)r0r1r2r_rgrkrmror9rqrrrtr@implementationr$r)r^DomImplementationrRrqrrrs{s      rscs0|gdfdd |ddS)Nrc s|jtjkr@|jr5|js|jr(|jpd}|jpd}dd||j||fnLjdd||jfndd|fn|jtjkrLdn|jtjkrXdn|jtj krkdd||j fn|jtj kr~d d||j fnqt |d r|j durd tj|j |jf}n|j}d d||f|rg}tt|jD](}|j|}|j}|j}|j } | rd tj| |jf}n|j}|||fqt|D]\}}d d|d||fq|d7}|jD]} | |qdS)Nz|%s z|%sz|%sz #documentz#document-fragmentz|%sz|%s"%s"r5z%s %sz|%s<%s>z |%s%s="%s"r )nodeTyperDOCUMENT_TYPE_NODEr$r`rarw DOCUMENT_NODEDOCUMENT_FRAGMENT_NODE COMMENT_NODE nodeValuervr6r5r prefixesr4 hasAttributesranger'ritemr# localNamesortedrF) rindentr`rar$rir%r#nsrHrvserializeElementrrrsT                z?getDomBuilder..testSerializer..serializeElement )r) normalizejoinrrrrrqs  . z%getDomBuilder..testSerializer)rr rrslocals)ryrsr)r3r^ryrRrqr getDomBuilders $C:6r) __future__rrrcollections.abcr ImportError collectionsxml.domrrr\rzr r r _utilsr r getDomModulerrrrs      _