ó
ÕöePc           @   s{   d  Z  d d l m Z m Z d d l m Z m Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ	 d e j
 f d	 „  ƒ  YZ
 d
 S(   sù   
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.
iÿÿÿÿ(   t   _baset   etree(   t   htmlR   t   DocumentTypec           B   s   e  Z d  „  Z RS(   c         C   s   | |  _  | |  _ | |  _ d  S(   N(   t   namet   publicIdt   systemId(   t   selfR   R   R   (    (    s;   /usr/lib/python2.7/dist-packages/lxml/html/_html5builder.pyt   __init__   s    		(   t   __name__t
   __module__R   (    (    (    s;   /usr/lib/python2.7/dist-packages/lxml/html/_html5builder.pyR      s   t   Documentc           B   s   e  Z d  „  Z d „  Z RS(   c         C   s   d  |  _ g  |  _ d  S(   N(   t   Nonet   _elementTreet
   childNodes(   R   (    (    s;   /usr/lib/python2.7/dist-packages/lxml/html/_html5builder.pyR      s    	c         C   s   |  j  j ƒ  j | j ƒ d  S(   N(   R   t   getroott   addnextt   _element(   R   t   element(    (    s;   /usr/lib/python2.7/dist-packages/lxml/html/_html5builder.pyt   appendChild   s    (   R	   R
   R   R   (    (    (    s;   /usr/lib/python2.7/dist-packages/lxml/html/_html5builder.pyR      s   	t   TreeBuilderc           B   sh   e  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 RS(   c         O   s\   t  j t d t ƒ} t  j t d t ƒ} | j |  _ | j |  _ t	 j
 j |  | | Ž d  S(   Nt   fullTree(   t   etree_builderst   getETreeModuleR   t   FalseR   t   Elementt   elementClasst   Commentt   commentClassR    R   R   (   R   t   argst   kwargst   html_buildert   etree_builder(    (    s;   /usr/lib/python2.7/dist-packages/lxml/html/_html5builder.pyR   '   s
    c         C   s/   t  j j |  ƒ t |  _ g  |  _ d  |  _ d  S(   N(   R    R   t   resetR   t   rootInsertedt   initialCommentsR   t   doctype(   R   (    (    s;   /usr/lib/python2.7/dist-packages/lxml/html/_html5builder.pyR!   .   s    		c         C   s
   |  j  j S(   N(   t   documentR   (   R   (    (    s;   /usr/lib/python2.7/dist-packages/lxml/html/_html5builder.pyt   getDocument4   s    c         C   se   g  } |  j  d j } | j r2 | j | j ƒ n  | j | j ƒ  ƒ | j ra | j | j ƒ n  | S(   Ni    (   t   openElementsR   t   textt   appendt   extendt   getchildrent   tail(   R   t   fragmentR   (    (    s;   /usr/lib/python2.7/dist-packages/lxml/html/_html5builder.pyt   getFragment7   s    		c         C   s"   |  j  | | | ƒ } | |  _ d  S(   N(   t   doctypeClassR$   (   R   R   R   R   R$   (    (    s;   /usr/lib/python2.7/dist-packages/lxml/html/_html5builder.pyt   insertDoctypeA   s    c         C   s6   |  j  s |  j j | ƒ n t j j |  | | ƒ d  S(   N(   R"   R#   R)   R    R   t   insertComment(   R   t   datat   parent(    (    s;   /usr/lib/python2.7/dist-packages/lxml/html/_html5builder.pyR1   E   s    	c         C   sD  g  } |  j  rŒ |  j  j rŒ | j d |  j  j ƒ |  j  j d  k	 sV |  j  j d  k	 r| | j d |  j  j |  j  j f ƒ n  | j d ƒ n  | j d ƒ t j d j | ƒ ƒ } x' |  j	 D] } | j
 t j | ƒ ƒ q» W|  j ƒ  |  _ | j ƒ  |  j _ |  j | ƒ } | | _ |  j j j | ƒ |  j j | ƒ t |  _ d  S(   Ns   <!DOCTYPE %ss    PUBLIC "%s" "%s"t   >s   <html></html>t    (   R$   R   R)   R   R   R   R   t
   fromstringt   joinR#   t   addpreviousR   R   t   documentClassR%   t   getroottreeR   R   R   R   R'   t   TrueR"   (   R   R   t   buft   roott   commentt   root_element(    (    s;   /usr/lib/python2.7/dist-packages/lxml/html/_html5builder.pyt
   insertRootK   s$    $	N(   R	   R
   R   R9   R   R/   R   R   R   t   fragmentClassR   R!   R&   R.   R0   R1   R@   (    (    (    s;   /usr/lib/python2.7/dist-packages/lxml/html/_html5builder.pyR       s   				
	N(   t   __doc__t   html5lib.treebuildersR    R   R   t   lxmlR   t   objectR   R   R   (    (    (    s;   /usr/lib/python2.7/dist-packages/lxml/html/_html5builder.pyt   <module>	   s
   
