ž 7’ReM1c@s¶ddlmZmZmZddlmZddlZddlmZddlm Z ddlm Z dd l m Z dd l m Z ejd ƒZed d „Ze eƒZdS(i(uabsolute_importudivisionuunicode_literals(u text_typeNi(u_basei(uihatexml(u constants(u namespaces(umoduleFactoryFactoryu {([^}]*)}(.*)c s ˆ‰ˆjdƒj‰G‡fdd†dtjƒ‰G‡fdd†dˆƒ‰G‡fdd†dˆƒ‰G‡fdd †d ˆƒ‰G‡fd d †d ˆƒ‰‡fd d †‰ ‡‡fdd†}G‡‡‡‡‡‡‡‡ fdd†dtjƒ}tƒS(Nuasdcs(|EeZdZd#‡fdd†Zdd„Zdd„Zdd„ZeeeƒZ d d „Z d d „Z ee e ƒZ d d„Z dd„Zee eƒZdd„Zdd„ZeeeƒZdd„Zdd„Zdd„Zdd„Zd#dd„Zdd „Zd!d"„Zd#S($u getETreeBuilder..Elementcs‰||_||_ˆj|j||ƒƒ|_|dkrUtd|jf|_n|j|jf|_d|_g|_ g|_ dS(Nuhtml( u_nameu _namespaceuElementu _getETreeTagu_elementuNoneu namespacesu nameTupleuparentu _childNodesu_flags(uselfunameu namespace(u ElementTree(u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyu__init__s     u)getETreeBuilder..Element.__init__cSs)|dkr|}nd||f}|S(Nu{%s}%s(uNone(uselfunameu namespaceu etree_tag((u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyu _getETreeTag!s  u-getETreeBuilder..Element._getETreeTagcSs+||_|j|j|jƒ|j_dS(N(u_nameu _getETreeTagu _namespaceu_elementutag(uselfuname((u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyu_setName(s u)getETreeBuilder..Element._setNamecSs|jS(N(u_name(uself((u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyu_getName,su)getETreeBuilder..Element._getNamecSs+||_|j|j|jƒ|j_dS(N(u _namespaceu _getETreeTagu_nameu_elementutag(uselfu namespace((u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyu _setNamespace1s u.getETreeBuilder..Element._setNamespacecSs|jS(N(u _namespace(uself((u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyu _getNamespace5su.getETreeBuilder..Element._getNamespacecSs |jjS(N(u_elementuattrib(uself((u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyu_getAttributes:su/getETreeBuilder..Element._getAttributescSs”x-t|jjjƒƒD]}|jj|=qWx]|jƒD]O\}}t|tƒrsd|d|df}n|}|jj||ƒq=WdS(Nu{%s}%sii(ulistu_elementuattribukeysuitemsu isinstanceutupleuset(uselfu attributesukeyuvalueuname((u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyu_setAttributes=su/getETreeBuilder..Element._setAttributescSs|jS(N(u _childNodes(uself((u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyu_getChildNodesKsu/getETreeBuilder..Element._getChildNodescSs;|jdd…=g|_x|D]}|j|ƒq WdS(N(u_elementu _childNodesu insertChild(uselfuvalueuelement((u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyu_setChildNodesNs  u/getETreeBuilder..Element._setChildNodescSst|jjpt|jƒƒS(u,Return true if the node has children or text(uboolu_elementutextulen(uself((u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyu hasContentVsu+getETreeBuilder..Element.hasContentcSs0|jj|ƒ|jj|jƒ||_dS(N(u _childNodesuappendu_elementuparent(uselfunode((u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyu appendChildZsu,getETreeBuilder..Element.appendChildcSs>t|jƒj|jƒ}|jj||jƒ||_dS(N(ulistu_elementuindexuinsertuparent(uselfunodeurefNodeuindex((u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyu insertBefore_su-getETreeBuilder..Element.insertBeforecSs |jj|jƒd|_dS(N(u_elementuremoveuNoneuparent(uselfunode((u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyu removeChilddsu,getETreeBuilder..Element.removeChildcSs-t|jƒs?|jjs*d|j_n|jj|7_nê|dkr‡|jdjsnd|jd_n|jdj|7_n¢t|jƒ}|j|jƒ}|dkrü|j|djsßd|j|d_n|j|dj|7_n-|jjsd|j_n|jj|7_dS(Nuiiiÿÿÿÿiÿÿÿÿiÿÿÿÿ(ulenu_elementutextuNoneutailulistuindex(uselfudatau insertBeforeuchildrenuindex((u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyu insertTexths"    u+getETreeBuilder..Element.insertTextcSsLt|ƒ|j|jƒ}x*|jjƒD]\}}||j|.Element.cloneNodecSs–|jr+|jdjj|jj7_nH|jjsFd|j_n|jjdk rs|jj|jj7_nd|j_tjj||ƒdS(Niuiÿÿÿÿ(u childNodesu_elementutailutextuNoneu_baseuNodeureparentChildren(uselfu newParent((u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyureparentChildren…s "  u1getETreeBuilder..Element.reparentChildrenN(u__name__u __module__u __qualname__uNoneu__init__u _getETreeTagu_setNameu_getNameupropertyunameu _setNamespaceu _getNamespaceu namespaceu_getAttributesu_setAttributesu attributesu_getChildNodesu_setChildNodesu childNodesu hasContentu appendChildu insertBeforeu removeChildu insertTextu cloneNodeureparentChildren(u __locals__(u ElementTree(u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyuElements*              uElementcsM|EeZdZ‡fdd†Zdd„Zdd„ZeeeƒZdS(u getETreeBuilder..Commentcs1ˆj|ƒ|_d|_g|_g|_dS(N(uCommentu_elementuNoneuparentu _childNodesu_flags(uselfudata(u ElementTree(u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyu__init__‘s  u)getETreeBuilder..Comment.__init__cSs |jjS(N(u_elementutext(uself((u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyu_getData™su)getETreeBuilder..Comment._getDatacSs||j_dS(N(u_elementutext(uselfuvalue((u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyu_setDataœsu)getETreeBuilder..Comment._setDataN(u__name__u __module__u __qualname__u__init__u_getDatau_setDataupropertyudata(u __locals__(u ElementTree(u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyuComments  uCommentcst|EeZdZ‡fdd†Zdd„Zdd„ZeeeƒZdd„Zd d „Z eee ƒZ d S( u%getETreeBuilder..DocumentTypecs2ˆj|dƒ||j_||_||_dS(Nu (u__init__u_elementutextupublicIdusystemId(uselfunameupublicIdusystemId(uElement(u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyu__init__¢s  u.getETreeBuilder..DocumentType.__init__cSs|jjddƒS(NupublicIdu(u_elementuget(uself((u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyu _getPublicId¨su2getETreeBuilder..DocumentType._getPublicIdcSs&|dk r"|jjd|ƒndS(NupublicId(uNoneu_elementuset(uselfuvalue((u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyu _setPublicId«s u2getETreeBuilder..DocumentType._setPublicIdcSs|jjddƒS(NusystemIdu(u_elementuget(uself((u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyu _getSystemId±su2getETreeBuilder..DocumentType._getSystemIdcSs&|dk r"|jjd|ƒndS(NusystemId(uNoneu_elementuset(uselfuvalue((u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyu _setSystemId´s u2getETreeBuilder..DocumentType._setSystemIdN( u__name__u __module__u __qualname__u__init__u _getPublicIdu _setPublicIdupropertyupublicIdu _getSystemIdu _setSystemIdusystemId(u __locals__(uElement(u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyu DocumentType¡s    u DocumentTypecs&|EeZdZ‡fdd†ZdS(u!getETreeBuilder..Documentcsˆj|dƒdS(Nu DOCUMENT_ROOT(u__init__(uself(uElement(u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyu__init__»su*getETreeBuilder..Document.__init__N(u__name__u __module__u __qualname__u__init__(u __locals__(uElement(u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyuDocumentºsuDocumentcs&|EeZdZ‡fdd†ZdS(u)getETreeBuilder..DocumentFragmentcsˆj|dƒdS(NuDOCUMENT_FRAGMENT(u__init__(uself(uElement(u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyu__init__¿su2getETreeBuilder..DocumentFragment.__init__N(u__name__u __module__u __qualname__u__init__(u __locals__(uElement(u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyuDocumentFragment¾suDocumentFragmentcs;g‰d‡‡‡fdd†‰ˆ|dƒdjˆƒS(Nic sŠt|dƒs|jƒ}n|jdkr¯|jdƒsK|jdƒr•|jdƒp]d}|jdƒprd}ˆjd|j||fƒq0ˆjd|jfƒn|jdkrMˆjd ƒ|jdk rÿˆjd d |d |jfƒn|jdk rtd ƒ‚nt|dƒr0t |j ƒr0tdƒ‚q0nã|jˆkr}ˆjdd ||jfƒn³t |jt ƒs±t dt|jƒ|jfƒ‚tj|jƒ}|dkrÛ|j}n/|jƒ\}}tj|}d||f}ˆjdd ||fƒt|dƒrg}xƒ|j jƒD]r\}} tj|ƒ}|dk r£|jƒ\}}tj|}d||f} n|} |j| | fƒqJWx?t|ƒD].\}} ˆjdd |d || fƒqÍWn|jr0ˆjd d |d |jfƒn|d 7}x|D]} ˆ| |ƒqAW|jr†ˆjd d |d |jfƒndS(Nutagu upublicIdusystemIduuu u DOCUMENT_ROOTu #documentu|%s"%s"u iuDocument node cannot have tailuattribu$Document node cannot have attributesu|%suExpected unicode, got %s, %su%s %su|%s<%s>u |%s%s="%s"(uhasattrugetrootutagugetuappendutextuNoneutailu TypeErrorulenuattribu isinstanceu text_typeuAssertionErrorutypeu tag_regexpumatchugroupsu constantsuprefixesuitemsusorted( uelementuindentupublicIdusystemIdunsmatchunameunsuprefixu attributesuvalueu attr_stringuchild(uElementTreeCommentTypeurvuserializeElement(u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyuserializeElementÅs^  %!     ) %   uAgetETreeBuilder..testSerializer..serializeElementu (ujoin(uelement(uElementTreeCommentType(urvuserializeElementu@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyutestSerializerÂs7 u'getETreeBuilder..testSerializercsGg‰tjƒ‰‡‡‡‡‡fdd†‰ˆ|ƒdjˆƒS(u4Serialize an element and its child nodes to a stringcsTt|ˆjƒr!|jƒ}n|jdkr²|jdƒsN|jdƒr˜|jdƒp`d}|jdƒpud}ˆjd|j||fƒq4ˆjd|jfƒn‚|jdkrL|jdk rãˆj|jƒn|jdk rt dƒ‚nt |d ƒr.t |j ƒr.t d ƒ‚nx|D]}ˆ|ƒq5Wnè|jˆkruˆjd |jfƒn¿|j s¡ˆjd ˆj |jƒfƒnEd j‡fdd†|j jƒDƒƒ}ˆjd|j|fƒ|jrˆj|jƒnx|D]}ˆ|ƒq Wˆjd|jfƒ|jrPˆj|jƒndS(Nu upublicIdusystemIduuu u DOCUMENT_ROOTuDocument node cannot have tailuattribu$Document node cannot have attributesu u<%s>u cs/g|]%\}}dˆj|ƒ|f‘qS(u%s="%s"(u fromXmlName(u.0unameuvalue(ufilter(u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyu #s uOgetETreeBuilder..tostring..serializeElement..u<%s %s>u(u isinstanceu ElementTreeugetrootutagugetuappendutextuNoneutailu TypeErroruhasattrulenuattribu fromXmlNameujoinuitems(uelementupublicIdusystemIduchilduattr(u ElementTreeuElementTreeCommentTypeufilterurvuserializeElement(u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyuserializeElements@   #   u;getETreeBuilder..tostring..serializeElementu(uihatexmlu InfosetFilterujoin(uelement(u ElementTreeuElementTreeCommentType(ufilterurvuserializeElementu@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyutostrings  - u!getETreeBuilder..tostringcsh|EeZdZˆZˆZˆZˆZˆZˆZ‡fdd†Z ‡fdd†Z dd„Z dS(u$getETreeBuilder..TreeBuildercs ˆ|ƒS(N((uselfuelement(utestSerializer(u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyutestSerializer>su3getETreeBuilder..TreeBuilder.testSerializercsPˆr|jjS|jdk r9|jjjd|jƒS|jjjdƒSdS(Nu{%s}htmluhtml(udocumentu_elementudefaultNamespaceuNoneufind(uself(ufullTree(u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyu getDocumentAs   u0getETreeBuilder..TreeBuilder.getDocumentcSstjj|ƒjS(N(u_baseu TreeBuilderu getFragmentu_element(uself((u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyu getFragmentKsu0getETreeBuilder..TreeBuilder.getFragmentN( u__name__u __module__u __qualname__u documentClassu doctypeClassu elementClassu commentClassu fragmentClassuimplementationutestSerializeru getDocumentu getFragment(u __locals__(uCommentuDocumentuDocumentFragmentu DocumentTypeuElementuElementTreeImplementationufullTreeutestSerializer(u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyu TreeBuilder6s u TreeBuilder(uCommentutagu_baseuNodeu TreeBuilderulocals(uElementTreeImplementationufullTreeutostringu TreeBuilder(( uCommentuDocumentuDocumentFragmentu DocumentTypeuElementu ElementTreeuElementTreeCommentTypeuElementTreeImplementationufullTreeutestSerializeru@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyugetETreeBuilders}>64ugetETreeBuilder(u __future__uabsolute_importudivisionuunicode_literalsupip._vendor.sixu text_typeureuu_baseuihatexmlu constantsu namespacesuutilsumoduleFactoryFactoryucompileu tag_regexpuFalseugetETreeBuilderugetETreeModule(((u@/tmp/pip-zej_zi-build/pip/_vendor/html5lib/treebuilders/etree.pyus ÿC