£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
B
    eP                 @   sZ   d Z ddlmZmZ ddlmZmZ G dd deZG dd deZ	G dd	 d	ej
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)htmlr   c               @   s   e Zd Zdd ZdS )DocumentTypec             C   s   || _ || _|| _d S )N)namepublicIdsystemId)selfr   r   r    r
   J/opt/alt/python37/lib64/python3.7/site-packages/lxml/html/_html5builder.py__init__   s    zDocumentType.__init__N)__name__
__module____qualname__r   r
   r
   r
   r   r      s   r   c               @   s   e Zd Zdd Zdd ZdS )Documentc             C   s   d | _ g | _d S )N)_elementTree
childNodes)r	   r
   r
   r   r      s    zDocument.__init__c             C   s   | j  |j d S )N)r   ZgetrootZaddnext_element)r	   elementr
   r
   r   appendChild   s    zDocument.appendChildN)r   r   r   r   r   r
   r
   r
   r   r      s   r   c               @   sZ   e Zd ZeZeZdZdZeZ	dd Z
dd Zdd Zdd	 Zd
d ZdddZdd ZdS )TreeBuilderNc             O   sD   t jtdd}t jtdd}|j| _|j| _tj	j
| f|| d S )NF)ZfullTree)etree_buildersZgetETreeModuler   r   ZElementelementClassCommentcommentClassr   r   r   )r	   argskwargsZhtml_builderZetree_builderr
   r
   r   r   '   s
    zTreeBuilder.__init__c             C   s"   t j|  d| _g | _d | _d S )NF)r   r   resetrootInsertedinitialCommentsdoctype)r	   r
   r
   r   r   .   s    zTreeBuilder.resetc             C   s   | j jS )N)documentr   )r	   r
   r
   r   getDocument4   s    zTreeBuilder.getDocumentc             C   sF   g }| j d j}|jr"||j ||  |jrB||j |S )Nr   )openElementsr   textappendextendZgetchildrentail)r	   Zfragmentr   r
   r
   r   getFragment7   s    zTreeBuilder.getFragmentc             C   s   |  |||}|| _d S )N)doctypeClassr    )r	   r   r   r   r    r
   r
   r   insertDoctypeA   s    zTreeBuilder.insertDoctypec             C   s(   | j s| j| ntj| || d S )N)r   r   r%   r   r   insertComment)r	   dataparentr
   r
   r   r+   E   s    zTreeBuilder.insertCommentc             C   s   g }| j r`| j jr`|d| j j  | j jd k	s<| j jd k	rV|d| j j| j jf  |d |d td|}x| jD ]}|	t
| qW |  | _| | j_| |}||_| jj| | j| d| _d S )Nz<!DOCTYPE %sz PUBLIC "%s" "%s">z<html></html> T)r    r   r%   r   r   r   Z
fromstringjoinr   Zaddpreviousr   r   documentClassr!   Zgetroottreer   r   r   r   r#   r   )r	   r   ZbufrootcommentZroot_elementr
   r
   r   
insertRootK   s$    



zTreeBuilder.insertRoot)N)r   r   r   r   r1   r   r)   r   r   ZfragmentClassr   r   r"   r(   r*   r+   r4   r
   r
   r
   r   r       s   

r   N)__doc__Zhtml5lib.treebuildersr   r   r   Zlxmlr   objectr   r   r   r
   r
   r
   r   <module>	   s
   
