ó •abc@`s§ddlmZmZmZddlmZddlmZmZddl Z ddl m Z ddl m Z dd l m Z dd lmZd „ZeeƒZdS( i(tabsolute_importtdivisiontunicode_literals(tMutableMapping(tminidomtNodeNi(tbasei(t constants(t namespaces(tmoduleFactoryFactoryc`svˆ‰dtfd„ƒY‰dtjf‡‡fd†ƒY‰dtjf‡‡‡‡fd†ƒY}d„‰tƒS(NtAttrListcB`sPeZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z RS(cS`s ||_dS(N(telement(tselfR ((sI/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyt__init__scS`st|jjjƒƒS(N(titerR t attributestkeys(R ((sI/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyt__iter__scS`sJt|tƒrt‚n.|jjj|ƒ}||_||jj|:scS`s ||_|jj|jƒdS(N(tparentR t appendChild(R tnode((sI/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyR+=s cS`sH|jjj|ƒ}|r4|jj||jƒn|jj|ƒdS(N(R RtcreateTextNodet insertBeforeR+(R tdataR.ttext((sI/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyt insertTextAscS`s&|jj|j|jƒ||_dS(N(R R.R*(R R,trefNode((sI/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyR.HscS`s8|jj|jkr+|jj|jƒnd|_dS(N(R t parentNodet removeChildR(R*(R R,((sI/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyR4LscS`sOx?|jjƒrA|jj}|jj|ƒ|jj|ƒqWg|_dS(N(R t hasChildNodest firstChildR4R+t childNodes(R t newParenttchild((sI/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pytreparentChildrenQs  c`s ˆ|jƒS(N(R (R (R (sI/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyt getAttributesXscS`s¢|ržx•t|jƒƒD]~\}}t|tƒr„|ddk r]|dd|d}n |d}|jj|d||ƒq|jj||ƒqWndS(Niu:ii(RRRRR(R tsetAttributeNSt setAttribute(R RRRt qualifiedName((sI/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyt setAttributes[s   c`sˆ|jjtƒƒS(N(R t cloneNodetFalse(R (R$(sI/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyR@jscS`s |jjƒS(N(R R5(R ((sI/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyt hasContentmscS`s4|jdkr td|jfS|j|jfSdS(Nuhtml(t namespaceR(RR(R ((sI/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyt getNameTuplepsN(R"R#R tpropertyRCR+R(R1R.R4R:R;R?RR@RBRDt nameTuple((R R$(sI/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyR$5s         t TreeBuilderc`s›eZ‡fd†Z‡‡fd†Zd ‡fd†Z‡fd†Z‡fd†Zd„Z‡fd†Z d„Z d„Z d d „Z ˆZ d ZRS( c`s+ˆjƒjdddƒ|_tj|ƒS(N(tgetDOMImplementationtcreateDocumentR(tdomtweakreftproxy(R (tDom(sI/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyt documentClassysc`st|d}|d}|d}ˆjƒ}|j|||ƒ}|jjˆ|ƒƒˆtkrp|j|_ndS(NunameupublicIdusystemId(RHtcreateDocumentTypetdocumentR+RRJR(R ttokenRtpublicIdtsystemIdtdomimpltdoctype(RMR$(sI/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyt insertDoctype}s     c`sO|dkr0|jdkr0|jj|ƒ}n|jj||ƒ}ˆ|ƒS(N(R(tdefaultNamespaceRJt createElementtcreateElementNS(R RRCR,(R$(sI/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyt elementClassˆsc`sˆ|jj|ƒƒS(N(RJt createComment(R R/(R$(sI/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyt commentClasssc`sˆ|jjƒƒS(N(RJtcreateDocumentFragment(R (R$(sI/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyt fragmentClass“scS`s|jj|jƒdS(N(RJR+R (R R,((sI/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyR+–sc`s ˆ|ƒS(N((R R (ttestSerializer(sI/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyR_™scS`s|jS(N(RJ(R ((sI/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyt getDocumentœscS`stjj|ƒjS(N(RRGt getFragmentR (R ((sI/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyRaŸscS`s¦|}||kr+tjj|||ƒnwt|jdƒr†tj|jjkr†t|jjƒ|j_|jjj tjƒq†n|jj |jj |ƒƒdS(Nu_child_node_types( RRGR1R&RJRt TEXT_NODEt_child_node_typesRtappendR+R-(R R/R*((sI/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyR1¢s N(R"R#RNRVR(RZR\R^R+R_R`RaR1timplementationR((RMtDomImplementationR$R_(sI/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyRGxs     c`s?|jƒg‰d‡‡fd†‰ˆ|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(tnodeTypeRtDOCUMENT_TYPE_NODERRRRSRdt DOCUMENT_NODEtDOCUMENT_FRAGMENT_NODEt COMMENT_NODEt nodeValueRbR&R'R(RtprefixesR%t hasAttributestrangeRRtitemRt localNametsortedR7( R tindentRRRSRRtiRRtnsR9(trvtserializeElement(sI/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyRw¶sN  !!!      ) u (t normalizetjoin(R ((RvRwsI/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyR_²s  . (RRRRGtlocals(RfRG((R RMRfR$R_sI/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyt getDomBuilders $"C(: 6(t __future__RRRt collectionsRtxml.domRRRKtRRRt_utilsR R{t getDomModule(((sI/usr/lib/python2.7/site-packages/pip/_vendor/html5lib/treebuilders/dom.pyts  Þ