
    h                     z    S r SSKJrJr  SSKJrJr   " S S5      r " S S5      r " S S	\R                  5      r	g
)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)htmlr   c                       \ rS rSrS rSrg)DocumentType   c                 (    Xl         X l        X0l        g NnamepublicIdsystemId)selfr   r   r   s       I/var/www/html/env/lib/python3.13/site-packages/lxml/html/_html5builder.py__init__DocumentType.__init__   s    	      r   N)__name__
__module____qualname____firstlineno__r   __static_attributes__ r   r   r   r      s    !r   r   c                        \ rS rSrS rS rSrg)Document   c                      S U l         / U l        g r
   _elementTree
childNodesr   s    r   r   Document.__init__   s     r   c                 j    U R                   R                  5       R                  UR                  5        g r
   )r   getrootaddnext_element)r   elements     r   appendChildDocument.appendChild   s%    !!#++G,<,<=r   r   N)r   r   r   r   r   r(   r   r   r   r   r   r      s    >r   r   c                   V    \ rS rSr\r\rSrSr	\r
S rS rS rS rS rSS jrS	 rS
rg)TreeBuilder    Nc                     [         R                  " [        SS9n[         R                  " [        SS9nUR                  U l        UR                  U l        [        R                  R                  " U /UQ70 UD6  g )NF)fullTree)etree_buildersgetETreeModuler   r   ElementelementClassCommentcommentClassr   r+   r   )r   argskwargshtml_builderetree_builders        r   r   TreeBuilder.__init__'   s`    %44TEJ&55eeL(00)11""49$9&9r   c                 l    [         R                  R                  U 5        SU l        / U l        S U l        g )NF)r   r+   resetrootInsertedinitialCommentsdoctyper!   s    r   r;   TreeBuilder.reset.   s-    %!!r   c                 .    U R                   R                  $ r
   )documentr   r!   s    r   getDocumentTreeBuilder.getDocument4   s    }})))r   c                 *   / nU R                   S   R                  nUR                  (       a  UR                  UR                  5        UR	                  UR                  5       5        UR                  (       a  UR                  UR                  5        U$ )Nr   )openElementsr&   textappendextendgetchildrentail)r   fragmentr'   s      r   getFragmentTreeBuilder.getFragment7   se    ##A&//<<OOGLL)++-.<<OOGLL)r   c                 4    U R                  XU5      nX@l        g r
   )doctypeClassr>   )r   r   r   r   r>   s        r   insertDoctypeTreeBuilder.insertDoctypeA   s    ##DH=r   c                     U R                   (       d  U R                  R                  U5        g [        R                  R                  XU5        g r
   )r<   r=   rG   r   r+   insertComment)r   dataparents      r   rS   TreeBuilder.insertCommentE   s5        ''-++D?r   c                    / nU R                   (       a  U R                   R                  (       a  UR                  SU R                   R                  -  5        U R                   R                  c  U R                   R                  bB  UR                  SU R                   R                  < SU R                   R                  < S35        UR                  S5        UR                  S5        [
        R                  " SR                  U5      5      nU R                   H(  nUR                  [        R                  " U5      5        M*     U R                  5       U l        UR                  5       U R                  l        U R!                  U5      nX5l        U R                  R$                  R                  U5        U R&                  R                  U5        SU l        g )	Nz<!DOCTYPE %sz	 PUBLIC "z" "">z<html></html> T)r>   r   rG   r   r   r   
fromstringjoinr=   addpreviousr   r3   documentClassrA   getroottreer   r2   r&   r    rE   r<   )r   r   bufrootcommentroot_elements         r   
insertRootTreeBuilder.insertRootK   sI   <<DLL--JJ~(9(99:||$$0DLL4I4I4U

$,,2G2G26,,2G2GI JJJsO

?#rwws|, ++GU]]734 , **,%)%5%5%7" ((. $  ''5  . r   )r4   r>   rA   r2   r=   r<   r
   )r   r   r   r   r   r^   r   rO   r2   r4   fragmentClassr   r;   rB   rL   rP   rS   rd   r   r   r   r   r+   r+       s?    MLLLM:*@!r   r+   N)
__doc__html5lib.treebuildersr   r   r/   lxmlr   r   r   r+   r   r   r   <module>rj      s;    A ! !> >D!%## D!r   