0{YM1@sddlmZmZmZddlmZddlZddlmZddlm Z ddlm Z dd l m Z dd l m Z ejd Zd d dZe eZdS))absolute_importdivisionunicode_literals) text_typeN)_base)ihatexml) constants) namespaces)moduleFactoryFactoryz {([^}]*)}(.*)Fc s jdjGfdddtjGfdddGfdddGfdd d Gfd d d fd d fdd}G fdddtj}tS)NZasdcs$eZdZdfddZddZddZdd ZeeeZd d Z d d Z ee e Z ddZ ddZ ee e ZddZddZeeeZddZddZddZddZdddZd d!Zd"d#ZdS)$z getETreeBuilder..ElementNcs||_||_j|j|||_|dkrUtd|jf|_n|j|jf|_d|_g|_g|_ dS)Nhtml) _name _namespaceElement _getETreeTag_elementr nameTupleparent _childNodes_flags)selfname namespace) ElementTreeB/tmp/pip-ok8sy_ze-build/pip/_vendor/html5lib/treebuilders/etree.py__init__s     z)getETreeBuilder..Element.__init__cSs)|dkr|}nd||f}|S)Nz{%s}%sr)rrrZ etree_tagrrrr!s  z-getETreeBuilder..Element._getETreeTagcSs+||_|j|j|j|j_dS)N)rrrrtag)rrrrr_setName(s z)getETreeBuilder..Element._setNamecSs|jS)N)r)rrrr_getName,sz)getETreeBuilder..Element._getNamecSs+||_|j|j|j|j_dS)N)rrrrr)rrrrr _setNamespace1s z.getETreeBuilder..Element._setNamespacecSs|jS)N)r)rrrr _getNamespace5sz.getETreeBuilder..Element._getNamespacecSs |jjS)N)rattrib)rrrr_getAttributes:sz/getETreeBuilder..Element._getAttributescSsx-t|jjjD]}|jj|=qWx]|jD]O\}}t|trsd|d|df}n|}|jj||q=WdS)Nz{%s}%srr)listrr#keysitems isinstancetupleset)r attributeskeyvaluerrrr_setAttributes=sz/getETreeBuilder..Element._setAttributescSs|jS)N)r)rrrr_getChildNodesKsz/getETreeBuilder..Element._getChildNodescSs;|jdd=g|_x|D]}|j|q WdS)N)rrZ insertChild)rr-elementrrr_setChildNodesNs  z/getETreeBuilder..Element._setChildNodescSst|jjpt|jS)z,Return true if the node has children or text)boolrtextlen)rrrr hasContentVsz+getETreeBuilder..Element.hasContentcSs0|jj||jj|j||_dS)N)rappendrr)rnoderrr appendChildZsz,getETreeBuilder..Element.appendChildcSs>t|jj|j}|jj||j||_dS)N)r%rindexinsertr)rr7refNoder9rrr insertBefore_sz-getETreeBuilder..Element.insertBeforecSs |jj|jd|_dS)N)rremover)rr7rrr removeChilddsz,getETreeBuilder..Element.removeChildcSs-t|js?|jjs*d|j_n|jj|7_n|dkr|jdjsnd|jd_n|jdj|7_nt|j}|j|j}|dkr|j|djsd|j|d_n|j|dj|7_n-|jjsd|j_n|jj|7_dS)Nrrr@r@)r4rr3tailr%r9)rdatar<Zchildrenr9rrr insertTexths"    z+getETreeBuilder..Element.insertTextcSsLt||j|j}x*|jjD]\}}||j|.Element.cloneNodecSs|jr+|jdjj|jj7_nH|jjsFd|j_n|jjdk rs|jj|jj7_nd|j_tjj||dS)Nrr?r@) childNodesrrAr3rNodereparentChildren)r newParentrrrrHs "  z1getETreeBuilder..Element.reparentChildren)__name__ __module__ __qualname__rrrr propertyrr!r"rr$r.r+r/r1rFr5r8r<r>rCrErHr)rrrrs*               rcsIeZdZfddZddZddZeeeZdS)z getETreeBuilder..Commentcs1j||_d|_g|_g|_dS)N)Commentrrrr)rrB)rrrrs  z)getETreeBuilder..Comment.__init__cSs |jjS)N)rr3)rrrr_getDatasz)getETreeBuilder..Comment._getDatacSs||j_dS)N)rr3)rr-rrr_setDatasz)getETreeBuilder..Comment._setDataN)rJrKrLrrOrPrMrBr)rrrrNs   rNcspeZdZfddZddZddZeeeZddZd d Z eee Z d S) z%getETreeBuilder..DocumentTypecs2j|d||j_||_||_dS)Nz )rrr3publicIdsystemId)rrrQrR)rrrrs  z.getETreeBuilder..DocumentType.__init__cSs|jjddS)NrQr?)rget)rrrr _getPublicIdsz2getETreeBuilder..DocumentType._getPublicIdcSs&|dk r"|jjd|ndS)NrQ)rr*)rr-rrr _setPublicIds z2getETreeBuilder..DocumentType._setPublicIdcSs|jjddS)NrRr?)rrS)rrrr _getSystemIdsz2getETreeBuilder..DocumentType._getSystemIdcSs&|dk r"|jjd|ndS)NrR)rr*)rr-rrr _setSystemIds z2getETreeBuilder..DocumentType._setSystemIdN) rJrKrLrrTrUrMrQrVrWrRr)rrr DocumentTypes     rXcs"eZdZfddZdS)z!getETreeBuilder..Documentcsj|ddS)N DOCUMENT_ROOT)r)r)rrrrsz*getETreeBuilder..Document.__init__N)rJrKrLrr)rrrDocuments rZcs"eZdZfddZdS)z)getETreeBuilder..DocumentFragmentcsj|ddS)NZDOCUMENT_FRAGMENT)r)r)rrrrsz2getETreeBuilder..DocumentFragment.__init__N)rJrKrLrr)rrrDocumentFragments r[cs;gdfdd|ddjS)Nrc st|ds|j}n|jdkr|jdsK|jdr|jdp]d}|jdprd}jd|j||fq0jd|jfn|jdkrMjd |jdk rjd d |d |jfn|jdk rtd nt|dr0t|j r0tdq0n|jkr}jdd ||jfnt |jt st dt |j|jftj|j}|dkr|j}n/|j\}}tj|}d||f}jdd ||ft|drg}x|j jD]r\}} tj|}|dk r|j\}}tj|}d||f} n|} |j| | fqJWx?t|D].\}} jdd |d || fqWn|jr0jd d |d |jfn|d 7}x|D]} | |qAW|jrjd d |d |jfndS)Nrz rQrRr?zz rYz #documentz|%s"%s" rzDocument node cannot have tailr#z$Document node cannot have attributesz|%szExpected unicode, got %s, %sz%s %sz|%s<%s>z |%s%s="%s")hasattrgetrootrrSr6r3rA TypeErrorr4r#r(rAssertionErrorrD tag_regexpmatchgroupsr prefixesr'sorted) r0indentrQrRZnsmatchrnsprefixr+r-Z attr_stringchild)ElementTreeCommentTypervserializeElementrrrls^  %!     ) %   zAgetETreeBuilder..testSerializer..serializeElement )join)r0)rj)rkrlrtestSerializers7 z'getETreeBuilder..testSerializercsGgtjfdd|djS)z4Serialize an element and its child nodes to a stringcsTt|jr!|j}n|jdkr|jdsN|jdr|jdp`d}|jdpud}jd|j||fq4jd|jfn|jdkrL|jdk rj|jn|jdk rtdnt |d r.t |j r.td nx|D]}|q5Wn|jkrujd |jfn|j sjd j |jfnEd j fdd|j jD}jd|j|f|jrj|jnx|D]}|q Wjd|jf|jrPj|jndS)Nz rQrRr?zz rYzDocument node cannot have tailr#z$Document node cannot have attributesz z<%s>r\cs/g|]%\}}dj||fqS)z%s="%s") fromXmlName).0rr-)filterrr #s zOgetETreeBuilder..tostring..serializeElement..z<%s %s>z)r(rr^rrSr6r3rAr_r]r4r#rprnr')r0rQrRriattr)rrjrrrkrlrrrls@   #   z;getETreeBuilder..tostring..serializeElementr?)r Z InfosetFilterrn)r0)rrj)rrrkrlrtostrings  - z!getETreeBuilder..tostringcsdeZdZZZZZZZfddZ fddZ ddZ dS)z$getETreeBuilder..TreeBuildercs |S)Nr)rr0)rorrro>sz3getETreeBuilder..TreeBuilder.testSerializercsPr|jjS|jdk r9|jjjd|jS|jjjdSdS)Nz{%s}htmlr )documentrdefaultNamespacefind)r)fullTreerr getDocumentAs   z0getETreeBuilder..TreeBuilder.getDocumentcSstjj|jS)N)r TreeBuilder getFragmentr)rrrrr|Ksz0getETreeBuilder..TreeBuilder.getFragmentN) rJrKrL documentClass doctypeClass elementClass commentClass fragmentClassimplementationrorzr|r)rNrZr[rXrElementTreeImplementationryrorrr{6s  r{)rNrrrGr{locals)rryrur{r) rNrZr[rXrrrjrryrorgetETreeBuilders}>64r) __future__rrrZpip._vendor.sixrrer?rr r r utilsr compilerargetETreeModulerrrrs C