ž 7’Re!c@sšddlmZmZmZddlmZmZddlZddlm Z ddlm Z ddl m Z dd l m Z d d „Ze eƒZdS( i(uabsolute_importudivisionuunicode_literals(uminidomuNodeNi(u_basei(u constants(u namespaces(umoduleFactoryFactorycsyˆ‰Gdd„dtƒ‰G‡‡fdd†dtjƒ‰G‡‡‡‡fdd†dtjƒ}dd„‰tƒS( NcBst|EeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dS(ugetDomBuilder..AttrListcSs ||_dS(N(uelement(uselfuelement((u>/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/dom.pyu__init__su(getDomBuilder..AttrList.__init__cSst|jjjƒƒjƒS(N(ulistuelementu attributesuitemsu__iter__(uself((u>/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/dom.pyu__iter__su(getDomBuilder..AttrList.__iter__cSs|jj||ƒdS(N(uelementu setAttribute(uselfunameuvalue((u>/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/dom.pyu __setitem__su+getDomBuilder..AttrList.__setitem__cSstt|jjjƒƒƒS(N(ulenulistuelementu attributesuitems(uself((u>/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/dom.pyu__len__su'getDomBuilder..AttrList.__len__cSs#dd„t|jjjƒƒDƒS(NcSs$g|]}|d|df‘qS(ii((u.0uitem((u>/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/dom.pyu s u9getDomBuilder..AttrList.items..(ulistuelementu attributesuitems(uself((u>/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/dom.pyuitemss u%getDomBuilder..AttrList.itemscSst|jjjƒƒS(N(ulistuelementu attributesukeys(uself((u>/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/dom.pyukeys!su$getDomBuilder..AttrList.keyscSs|jj|ƒS(N(uelementu getAttribute(uselfuname((u>/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/dom.pyu __getitem__$su+getDomBuilder..AttrList.__getitem__cSs,t|tƒrt‚n|jj|ƒSdS(N(u isinstanceutupleuNotImplementedErroruelementu hasAttribute(uselfuname((u>/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/dom.pyu __contains__'s u,getDomBuilder..AttrList.__contains__N( u__name__u __module__u __qualname__u__init__u__iter__u __setitem__u__len__uitemsukeysu __getitem__u __contains__(u __locals__((u>/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/dom.pyuAttrLists       uAttrListcsิ|EeZdZdd„Zedd„ƒZdd„Zddd„Zd d „Z d d „Z d d„Z ‡fdd†Z dd„Z ee e ƒZ‡fdd†Zdd„Zdd„ZeeƒZdS(u"getDomBuilder..NodeBuildercSs#tjj||jƒ||_dS(N(u_baseuNodeu__init__unodeNameuelement(uselfuelement((u>/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/dom.pyu__init__.su+getDomBuilder..NodeBuilder.__init__cSs"t|jdƒr|jjp!dS(Nu namespaceURI(uhasattruelementu namespaceURIuNone(uself((u>/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/dom.pyu2su+getDomBuilder..NodeBuilder.cSs ||_|jj|jƒdS(N(uparentuelementu appendChild(uselfunode((u>/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/dom.pyu appendChild5s u.getDomBuilder..NodeBuilder.appendChildcSsH|jjj|ƒ}|r4|jj||jƒn|jj|ƒdS(N(uelementu ownerDocumentucreateTextNodeu insertBeforeu appendChild(uselfudatau insertBeforeutext((u>/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/dom.pyu insertText9su-getDomBuilder..NodeBuilder.insertTextcSs&|jj|j|jƒ||_dS(N(uelementu insertBeforeuparent(uselfunodeurefNode((u>/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/dom.pyu insertBefore@su/getDomBuilder..NodeBuilder.insertBeforecSs8|jj|jkr+|jj|jƒnd|_dS(N(uelementu parentNodeu removeChilduNoneuparent(uselfunode((u>/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/dom.pyu removeChildDsu.getDomBuilder..NodeBuilder.removeChildcSsOx?|jjƒrA|jj}|jj|ƒ|jj|ƒqWg|_dS(N(uelementu hasChildNodesu firstChildu removeChildu appendChildu childNodes(uselfu newParentuchild((u>/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/dom.pyureparentChildrenIs  u3getDomBuilder..NodeBuilder.reparentChildrencs ˆ|jƒS(N(uelement(uself(uAttrList(u>/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/dom.pyu getAttributesPsu0getDomBuilder..NodeBuilder.getAttributescSsข|ržx•t|jƒƒD]~\}}t|tƒr„|ddk r]|dd|d}n |d}|jj|d||ƒq|jj||ƒqWndS(Niu:ii(ulistuitemsu isinstanceutupleuNoneuelementusetAttributeNSu setAttribute(uselfu attributesunameuvalueu qualifiedName((u>/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/dom.pyu setAttributesSs   u0getDomBuilder..NodeBuilder.setAttributescsˆ|jjdƒƒS(NF(uelementu cloneNodeuFalse(uself(u NodeBuilder(u>/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/dom.pyu cloneNodebsu,getDomBuilder..NodeBuilder.cloneNodecSs |jjƒS(N(uelementu hasChildNodes(uself((u>/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/dom.pyu hasContentesu-getDomBuilder..NodeBuilder.hasContentcSs4|jdkr td|jfS|j|jfSdS(Nuhtml(u namespaceuNoneu namespacesuname(uself((u>/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/dom.pyu getNameTuplehsu/getDomBuilder..NodeBuilder.getNameTupleN(u__name__u __module__u __qualname__u__init__upropertyu namespaceu appendChilduNoneu insertTextu insertBeforeu removeChildureparentChildrenu getAttributesu setAttributesu attributesu cloneNodeu hasContentu getNameTupleu nameTuple(u __locals__(uAttrListu NodeBuilder(u>/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/dom.pyu NodeBuilder-s        u NodeBuildercsล|EeZdZ‡fdd†Z‡‡fdd†Zd‡fdd†Z‡fdd†Z‡fd d †Zd d „Z ‡fd d†Z dd„Z dd„Z ddd„Z ˆZdZdS(u"getDomBuilder..TreeBuildercs+ˆjƒjdddƒ|_tj|ƒS(N(ugetDOMImplementationucreateDocumentuNoneudomuweakrefuproxy(uself(uDom(u>/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/dom.pyu documentClassqsu0getDomBuilder..TreeBuilder.documentClasscst|d}|d}|d}ˆjƒ}|j|||ƒ}|jjˆ|ƒƒˆtkrp|j|_ndS(NunameupublicIdusystemId(ugetDOMImplementationucreateDocumentTypeudocumentu appendChilduminidomudomu ownerDocument(uselfutokenunameupublicIdusystemIdudomimpludoctype(uDomu NodeBuilder(u>/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/dom.pyu insertDoctypeus     u0getDomBuilder..TreeBuilder.insertDoctypecsO|dkr0|jdkr0|jj|ƒ}n|jj||ƒ}ˆ|ƒS(N(uNoneudefaultNamespaceudomu createElementucreateElementNS(uselfunameu namespaceunode(u NodeBuilder(u>/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/dom.pyu elementClass€su/getDomBuilder..TreeBuilder.elementClasscsˆ|jj|ƒƒS(N(udomu createComment(uselfudata(u NodeBuilder(u>/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/dom.pyu commentClassˆsu/getDomBuilder..TreeBuilder.commentClasscsˆ|jjƒƒS(N(udomucreateDocumentFragment(uself(u NodeBuilder(u>/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/dom.pyu fragmentClass‹su0getDomBuilder..TreeBuilder.fragmentClasscSs|jj|jƒdS(N(udomu appendChilduelement(uselfunode((u>/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/dom.pyu appendChildŽsu.getDomBuilder..TreeBuilder.appendChildcs ˆ|ƒS(N((uselfuelement(utestSerializer(u>/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/dom.pyutestSerializer‘su1getDomBuilder..TreeBuilder.testSerializercSs|jS(N(udom(uself((u>/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/dom.pyu getDocument”su.getDomBuilder..TreeBuilder.getDocumentcSstjj|ƒjS(N(u_baseu TreeBuilderu getFragmentuelement(uself((u>/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/dom.pyu getFragment—su.getDomBuilder..TreeBuilder.getFragmentcSsฆ|}||kr+tjj|||ƒnwt|jdƒr†tj|jjkr†t|jjƒ|j_|jjj tjƒq†n|jj |jj |ƒƒdS(Nu_child_node_types( u_baseu TreeBuilderu insertTextuhasattrudomuNodeu TEXT_NODEu_child_node_typesulistuappendu appendChilducreateTextNode(uselfudatauparent((u>/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/dom.pyu insertTextšs u-getDomBuilder..TreeBuilder.insertTextN(u__name__u __module__u __qualname__u documentClassu insertDoctypeuNoneu elementClassu commentClassu fragmentClassu appendChildutestSerializeru getDocumentu getFragmentu insertTextuimplementationuname(u __locals__(uDomuDomImplementationu NodeBuilderutestSerializer(u>/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/dom.pyu TreeBuilderps     u TreeBuildercsB|jƒg‰d‡‡fdd†‰ˆ|dƒdjˆƒS(Nic sษ|jtjkrฎ|jr“|js-|jrr|jp9d}|jpHd}ˆjdd||j||fƒqซˆjdd||jfƒqšˆjdd|fƒn์|jtjkrะˆjdƒnส|jtjkr๒ˆjdƒnจ|jtj kr%ˆjdd||j fƒnu|jtj krXˆjd d||j fƒnBt |d ƒr–|j dk r–d tj|j |jf}n |j}ˆjd d||fƒ|jƒršg}x‰tt|jƒƒD]r}|jj|ƒ}|j}|j}|j } | r8d tj| |jf}n |j}|j||fƒqโWx?t|ƒD].\}}ˆjd d|d||fƒqeWn|d7}x|jD]} ˆ| |ƒqฎWdS(Nuu|%su u|%su|%su #documentu#document-fragmentu|%su|%s"%s"u namespaceURIu%s %su|%s<%s>u |%s%s="%s"i(unodeTypeuNodeuDOCUMENT_TYPE_NODEunameupublicIdusystemIduappendu DOCUMENT_NODEuDOCUMENT_FRAGMENT_NODEu COMMENT_NODEu nodeValueu TEXT_NODEuhasattru namespaceURIuNoneu constantsuprefixesunodeNameu hasAttributesurangeulenu attributesuitemuvalueu localNameusortedu childNodes( uelementuindentupublicIdusystemIdunameu attributesuiuattruvalueunsuchild(urvuserializeElement(u>/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/dom.pyuserializeElementญsN  !!!      ) u?getDomBuilder..testSerializer..serializeElementu (u normalizeujoin(uelement((urvuserializeElementu>/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/dom.pyutestSerializerฉs  . u%getDomBuilder..testSerializer(uobjectu_baseuNodeu TreeBuilderulocals(uDomImplementationu TreeBuilder((uAttrListuDomuDomImplementationu NodeBuilderutestSerializeru>/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/dom.pyu getDomBuilder s "C(9 6u getDomBuilder(u __future__uabsolute_importudivisionuunicode_literalsuxml.domuminidomuNodeuweakrefuu_baseu constantsu namespacesuutilsumoduleFactoryFactoryu getDomBuilderu getDomModule(((u>/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/dom.pyus  ึ