U .e1@sddlmZmZmZddlmZddlZddlmZddlm Z ddlm Z dd l m Z dd l m Z ed Zdd dZe eZdS))absolute_importdivisionunicode_literals) text_typeN)base) _ihatexml) constants) namespaces)moduleFactoryFactoryz {([^}]*)}(.*)Fc sdjGfdddtjGfdddGfdddGfdd d Gfd d d fd d  fdd}G fdddtj}tS)NZasdcseZdZd$fdd ZddZddZdd ZeeeZd d Z d d Z ee e Z ddZ ddZ ee e ZddZddZeeeZddZddZddZddZd%ddZd d!Zd"d#ZdS)&z getETreeBuilder..ElementNcs^||_||_||||_|dkr:td|jf|_n|j|jf|_d|_g|_g|_ dS)Nhtml) _name _namespaceElement _getETreeTag_elementr Z nameTupleparent _childNodes_flags)selfname namespace ElementTreeK/usr/lib/python3.8/site-packages/pip/_vendor/html5lib/treebuilders/etree.py__init__s z)getETreeBuilder..Element.__init__cSs|dkr|}n d||f}|S)N{%s}%sr)rrrZ etree_tagrrrr#s z-getETreeBuilder..Element._getETreeTagcSs||_||j|j|j_dSN)rrrrtag)rrrrr_setName*sz)getETreeBuilder..Element._setNamecSs|jSr)rrrrr_getName.sz)getETreeBuilder..Element._getNamecSs||_||j|j|j_dSr)rrrrr )rrrrr _setNamespace3sz.getETreeBuilder..Element._setNamespacecSs|jSr)rr"rrr _getNamespace7sz.getETreeBuilder..Element._getNamespacecSs|jjSr)rattribr"rrr_getAttributes<sz/getETreeBuilder..Element._getAttributescSsht|jjD]}|jj|=q|D]:\}}t|trPd|d|df}n|}|j||q(dS)Nrrr)listrr&keysitems isinstancetupleset)r attributeskeyvaluerrrr_setAttributes?s  z/getETreeBuilder..Element._setAttributescSs|jSr)rr"rrr_getChildNodesMsz/getETreeBuilder..Element._getChildNodescSs*|jdd=g|_|D]}||qdSr)rrZ insertChild)rr0elementrrr_setChildNodesPs z/getETreeBuilder..Element._setChildNodescSst|jjpt|jS)z,Return true if the node has children or text)boolrtextlenr"rrr hasContentXsz+getETreeBuilder..Element.hasContentcSs$|j||j|j||_dSr)rappendrrrnoderrr appendChild\s z,getETreeBuilder..Element.appendChildcSs,t|j|j}|j||j||_dSr)r(rindexinsertr)rr;ZrefNoder=rrr insertBeforeasz-getETreeBuilder..Element.insertBeforecSs$|j||j|jd|_dSr)rremoverrr:rrr removeChildfs z,getETreeBuilder..Element.removeChildcSst|js,|jjsd|j_|jj|7_n|dkrb|jdjsLd|jd_|jdj|7_nxt|j}||j}|dkr|j|djsd|j|d_|j|dj|7_n |jjsd|j_|jj|7_dS)Nrr)r7rr6tailr(r=)rdatar?Zchildrenr=rrr insertTextks"     z+getETreeBuilder..Element.insertTextcSs4t||j|j}|jD]\}}||j|<q|Sr)typerrr.r*)rr3rr0rrr cloneNodes z*getETreeBuilder..Element.cloneNodecSsl|jr"|jdjj|jj7_n0|jjs2d|j_|jjdk rR|jj|jj7_d|j_tj||dS)NrCrB) childNodesrrDr6rNodereparentChildren)rZ newParentrrrrKs z1getETreeBuilder..Element.reparentChildren)N)N)__name__ __module__ __qualname__rrr!r#propertyrr$r%rr'r1r.r2r4rIr8r<r?rArFrHrKrrrrrs*      rcs2eZdZfddZddZddZeeeZdS)z getETreeBuilder..Commentcs"||_d|_g|_g|_dSr)Commentrrrr)rrErrrrs z)getETreeBuilder..Comment.__init__cSs|jjSrrr6r"rrr_getDatasz)getETreeBuilder..Comment._getDatacSs ||j_dSrrQrr0rrr_setDatasz)getETreeBuilder..Comment._setDataN)rLrMrNrrRrTrOrErrrrrPs rPcsLeZdZfddZddZddZeeeZddZd d Z eee Z d S) z%getETreeBuilder..DocumentTypecs$|d||j_||_||_dS)N )rrr6publicIdsystemId)rrrVrWrrrrs z.getETreeBuilder..DocumentType.__init__cSs|jddS)NrVrBrgetr"rrr _getPublicIdsz2getETreeBuilder..DocumentType._getPublicIdcSs|dk r|jd|dS)NrVrr-rSrrr _setPublicIdsz2getETreeBuilder..DocumentType._setPublicIdcSs|jddS)NrWrBrYr"rrr _getSystemIdsz2getETreeBuilder..DocumentType._getSystemIdcSs|dk r|jd|dS)NrWr\rSrrr _setSystemIdsz2getETreeBuilder..DocumentType._setSystemIdN) rLrMrNrr[r]rOrVr^r_rWrrXrr DocumentTypes  r`cseZdZfddZdS)z!getETreeBuilder..Documentcs|ddS)N DOCUMENT_ROOTrr"rXrrrsz*getETreeBuilder..Document.__init__NrLrMrNrrrXrrDocumentsrdcseZdZfddZdS)z)getETreeBuilder..DocumentFragmentcs|ddS)NZDOCUMENT_FRAGMENTrbr"rXrrrsz2getETreeBuilder..DocumentFragment.__init__NrcrrXrrDocumentFragmentsrecs*gdfdd |ddS)Nrc snt|ds|}|jdkrz|ds0|drd|dp raz #documentz|%s"%s" rDocument node cannot have tailr&$Document node cannot have attributesz|%sz%s %sz|%s<%s>z |%s%s="%s")hasattrgetrootr rZr9r6rD TypeErrorr7r& tag_regexpmatchgroupsr prefixesr*sorted) r3indentrVrWZnsmatchrnsprefixr.r0Z attr_stringchild)ElementTreeCommentTypervserializeElementrrrxs\                    zAgetETreeBuilder..testSerializer..serializeElement )r)joinr3)rv)rwrxrtestSerializers7 z'getETreeBuilder..testSerializercs2gtfdd|dS)z4Serialize an element and its child nodes to a stringcst|jr|}|jdkr||ds2|drf|dp>d}|dpLd}d|j||fnd|jfn|jdkr|jdk r|j|jdk rtdt |d rt |j rtd |D] }|qn|jkrd |jfn|j sd  |jfn2d fdd|j D}d|j|f|jrd|j|D]}|qhd|jf|jr|jdS)NrUrVrWrBzrfrarhr&riz z<%s>rgcs"g|]\}}d||fqS)z%s="%s") fromXmlName).0rr0)filterrr &s zOgetETreeBuilder..tostring..serializeElement..z<%s %s>z)r+rrkr rZr9r6rDrlrjr7r&r}rzr*)r3rVrWruattr)rrvrrwrxrrrxsD           z;getETreeBuilder..tostring..serializeElementrB)r Z InfosetFilterrzr{)rrv)rrwrxrtostrings -z!getETreeBuilder..tostringcsDeZdZZZZZZZfddZ fddZ ddZ dS)z$getETreeBuilder..TreeBuildercs|Srr)rr3)r|rrr|Asz3getETreeBuilder..TreeBuilder.testSerializercs<r |jjS|jdk r*|jjd|jS|jjdSdS)Nz{%s}htmlr )ZdocumentrZdefaultNamespacefindr")fullTreerr getDocumentDs z0getETreeBuilder..TreeBuilder.getDocumentcSstj|jSr)r TreeBuilder getFragmentrr"rrrrNsz0getETreeBuilder..TreeBuilder.getFragmentN) rLrMrNZ documentClassZ doctypeClassZ elementClassZ commentClassZ fragmentClassimplementationr|rrr)rPrdrer`rElementTreeImplementationrr|rrr9s  r)rPr rrJrlocals)rrrrr) rPrdrer`rrrvrrr|rgetETreeBuilders ~ >6$r)F)Z __future__rrrZpip._vendor.sixrrerBrr r r Z_utilsr compilermrZgetETreeModulerrrrs        E