B ÕöeP® ã@sZdZddlmZmZddlmZmZGdd„deƒZGdd„deƒZ Gdd „d ej ƒZ d S) zù Legacy module - don't use in new code! html5lib now has its own proper implementation. This module implements a tree builder for html5lib that generates lxml html element trees. This module uses camelCase as it follows the html5lib style guide. é)Ú_baseÚetree)Úhtmlrc@seZdZdd„ZdS)Ú DocumentTypecCs||_||_||_dS)N)ÚnameÚpublicIdÚsystemId)Úselfrrr©r úJ/opt/alt/python37/lib64/python3.7/site-packages/lxml/html/_html5builder.pyÚ__init__szDocumentType.__init__N)Ú__name__Ú __module__Ú __qualname__r r r r r rsrc@seZdZdd„Zdd„ZdS)ÚDocumentcCsd|_g|_dS)N)Ú _elementTreeÚ childNodes)r r r r r szDocument.__init__cCs|j ¡ |j¡dS)N)rZgetrootZaddnextÚ_element)r Úelementr r r Ú appendChildszDocument.appendChildN)r rrr rr r r r rsrc@sZeZdZeZeZdZdZeZ dd„Z dd„Z dd„Z dd „Z d d „Zdd d „Zdd„ZdS)Ú TreeBuilderNcOsDtjtdd�}tjtdd�}|j|_|j|_tj j |f|ž|ŽdS)NF)ZfullTree) Úetree_buildersZgetETreeModulerrZElementÚ elementClassÚCommentÚ commentClassrrr )r ÚargsÚkwargsZ html_builderZ etree_builderr r r r 's zTreeBuilder.__init__cCs"tj |¡d|_g|_d|_dS)NF)rrÚresetÚ rootInsertedÚinitialCommentsÚdoctype)r r r r r.s zTreeBuilder.resetcCs|jjS)N)Údocumentr)r r r r Ú getDocument4szTreeBuilder.getDocumentcCsFg}|jdj}|jr"| |j¡| | ¡¡|jrB| |j¡|S)Nr)Ú openElementsrÚtextÚappendÚextendZ getchildrenÚtail)r Zfragmentrr r r Ú getFragment7s   zTreeBuilder.getFragmentcCs| |||¡}||_dS)N)Ú doctypeClassr )r rrrr r r r Ú insertDoctypeAszTreeBuilder.insertDoctypecCs(|js|j |¡ntj |||¡dS)N)rrr%rrÚ insertComment)r ÚdataÚparentr r r r+EszTreeBuilder.insertCommentcCsäg}|jr`|jjr`| d|jj¡|jjdk s<|jjdk rV| d|jj|jjf¡| d¡| d¡t d |¡¡}x|jD]}|  t   |¡¡q‚W|  ¡|_ | ¡|j _| |¡}||_|j j |¡|j |¡d|_dS)Nz z ÚT)r rr%rrrZ fromstringÚjoinrZ addpreviousrrÚ documentClassr!Z getroottreerrrrr#r)r rZbufÚrootÚcommentZ root_elementr r r Ú insertRootKs$        zTreeBuilder.insertRoot)N)r rrrr1rr)rrZ fragmentClassr rr"r(r*r+r4r r r r r s  rN) Ú__doc__Zhtml5lib.treebuildersrrrZlxmlrÚobjectrrrr r r r Ú s