509318396
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3
Õö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
   ú%/usr/lib64/python3.6/_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ƒ 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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ƒ |j|jƒ ƒ |jrB|j|jƒ |S )Nr   )ÚopenElementsr   ÚtextÚappendÚextendZgetchildrenÚtail)r	   Zfragmentr   r
   r
   r   ÚgetFragment7   s    zTreeBuilder.getFragmentc             C   s   | j |||ƒ}|| _d S )N)ÚdoctypeClassr    )r	   r   r   r   r    r
   r
   r   ÚinsertDoctypeA   s    zTreeBuilder.insertDoctypec             C   s(   | j s| jj|ƒ ntj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`|jd| j j ƒ | j jd k	s<| j jd k	rV|jd| j j| j jf ƒ |jdƒ |jdƒ tjdj|ƒƒ}x| jD ]}|j	t
j|ƒƒ q‚W | jƒ | _|jƒ | j_| j|ƒ}||_| j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ÚrootZ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+   r3   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
   
