
    ,h                     z    d Z ddlmZmZ ddlmZmZ  G d d      Z G d d      Z G d d	ej                        Z	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.
    )_baseetree)htmlr   c                       e Zd Zd Zy)DocumentTypec                 .    || _         || _        || _        y N)namepublicIdsystemId)selfr
   r   r   s       Y/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/lxml/html/_html5builder.py__init__zDocumentType.__init__   s    	      N)__name__
__module____qualname__r    r   r   r   r      s    !r   r   c                       e Zd Zd Zd Zy)Documentc                      d | _         g | _        y r	   )_elementTree
childNodesr   s    r   r   zDocument.__init__   s     r   c                 j    | j                   j                         j                  |j                         y r	   )r   getrootaddnext_element)r   elements     r   appendChildzDocument.appendChild   s%    !!#++G,<,<=r   N)r   r   r   r   r    r   r   r   r   r      s    >r   r   c                   L    e Zd ZeZeZdZdZeZ	d Z
d Zd Zd Zd Zd	dZd Zy)
TreeBuilderNc                     t        j                  t        d      }t        j                  t        d      }|j                  | _        |j                  | _        t        j                  j                  | g|i | y )NF)fullTree)etree_buildersgetETreeModuler   r   ElementelementClassCommentcommentClassr   r"   r   )r   argskwargshtml_builderetree_builders        r   r   zTreeBuilder.__init__'   s`    %44TEJ&55eeL(00)11""49$9&9r   c                 l    t         j                  j                  |        d| _        g | _        d | _        y )NF)r   r"   resetrootInsertedinitialCommentsdoctyper   s    r   r0   zTreeBuilder.reset.   s-    %!!r   c                 .    | j                   j                  S r	   )documentr   r   s    r   getDocumentzTreeBuilder.getDocument4   s    }})))r   c                    g }| j                   d   j                  }|j                  r|j                  |j                         |j	                  |j                                |j                  r|j                  |j                         |S )Nr   )openElementsr   textappendextendgetchildrentail)r   fragmentr   s      r   getFragmentzTreeBuilder.getFragment7   se    ##A&//<<OOGLL)++-.<<OOGLL)r   c                 8    | j                  |||      }|| _        y r	   )doctypeClassr3   )r   r
   r   r   r3   s        r   insertDoctypezTreeBuilder.insertDoctypeA   s    ##D(H=r   c                     | j                   s| j                  j                  |       y t        j                  j                  | ||       y r	   )r1   r2   r:   r   r"   insertComment)r   dataparents      r   rD   zTreeBuilder.insertCommentE   s7        ''-++D$?r   c                    g }| j                   r| j                   j                  r|j                  d| j                   j                  z         | j                   j                  | j                   j                  @|j                  d| j                   j                  d| j                   j                  d       |j                  d       |j                  d       t        j                  dj                  |            }| j                  D ]&  }|j                  t        j                  |             ( | j                         | _        |j                         | j                  _        | j!                  |      }||_        | j                  j$                  j                  |       | j&                  j                  |       d| _        y )	Nz<!DOCTYPE %sz	 PUBLIC "z" "">z<html></html> T)r3   r
   r:   r   r   r   
fromstringjoinr2   addpreviousr   r)   documentClassr5   getroottreer   r(   r   r   r8   r1   )r   r
   bufrootcommentroot_elements         r   
insertRootzTreeBuilder.insertRootK   sP   <<DLL--JJ~(9(99:||$$0DLL4I4I4U

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

?#rwws|, ++ 	5GU]]734	5 **,%)%5%5%7" ((. $  ''5  . r   r	   )r   r   r   r   rN   r   rA   r(   r*   fragmentClassr   r0   r6   r?   rB   rD   rT   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>rY      s;    A ! !> >D!%## D!r   