g zdZddlmZmZddlmZmZGddZGddZGdd ejZ y ) 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. )_baseetree)htmlrceZdZdZy) DocumentTypec.||_||_||_yN)namepublicIdsystemId)selfr r r s H/opt/hc_python/lib64/python3.12/site-packages/lxml/html/_html5builder.py__init__zDocumentType.__init__s     N)__name__ __module__ __qualname__rrrrrs!rrceZdZdZdZy)Documentc d|_g|_yr ) _elementTree childNodesr s rrzDocument.__init__s rcj|jjj|jyr )rgetrootaddnext_element)r elements r appendChildzDocument.appendChilds% !!#++G,<,<=rN)rrrrr rrrrrs >rrcLeZdZeZeZdZdZeZ dZ dZ dZ dZ dZd dZdZy) TreeBuilderNctjtd}tjtd}|j|_|j |_tjj|g|i|y)NF)fullTree) etree_buildersgetETreeModulerrElement elementClassComment commentClassrr"r)r argskwargs html_builder etree_builders rrzTreeBuilder.__init__'s`%44TEJ &55eeL (00)11 ""49$9&9rcltjj|d|_g|_d|_y)NF)rr"reset rootInsertedinitialCommentsdoctypers rr0zTreeBuilder.reset.s- %!! rc.|jjSr )documentrrs r getDocumentzTreeBuilder.getDocument4s}})))rcg}|jdj}|jr|j|j|j |j |j r|j|j |S)Nr) openElementsrtextappendextend getchildrentail)r fragmentrs r getFragmentzTreeBuilder.getFragment7se##A&// << OOGLL )++-. << OOGLL )rc8|j|||}||_yr ) doctypeClassr3)r r r r r3s r insertDoctypezTreeBuilder.insertDoctypeAs##D(H= rc|js|jj|ytjj |||yr )r1r2r:rr" insertComment)r dataparents rrDzTreeBuilder.insertCommentEs7   ' ' -    + +D$ ?rcg}|jr|jjr|jd|jjz|jj|jj@|jd|jjd|jjd|jd|jdt j dj|}|jD]&}|jtj|(|j|_ |j|j_|j!|}||_|jj$j||j&j|d|_y) Nz z T)r3r r:r r r fromstringjoinr2 addpreviousrr) documentClassr5 getroottreerr(rrr8r1)r r bufrootcomment root_elements r insertRootzTreeBuilder.insertRootKsK <rYs;A!!>>D!%##D!r