ó
bõéKc           @   sò   d  d l  Z  d  d l m Z m Z m Z d  d l m Z d e  j f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d	 „  ƒ  YZ	 d
 e f d „  ƒ  YZ
 d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e  j f d „  ƒ  YZ d S(   iÿÿÿÿN(   t   voidElementst
   namespacest   prefixes(   t   escapet   Nodec           B   sŒ   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d d „ Z d „  Z d d „ Z
 d	 „  Z d
 „  Z d „  Z d „  Z d „  Z e e ƒ Z RS(   iÿÿÿÿc         C   s1   | |  _  d  |  _ d  |  _ g  |  _ g  |  _ d  S(   N(   t   namet   Nonet   parentt   valuet
   childNodest   _flags(   t   selfR   (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyt   __init__   s
    				c         c   s3   x, |  j  D]! } | Vx | D] } | Vq Wq
 Wd  S(   N(   R	   (   R   t   nodet   item(    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyt   __iter__   s    c         C   s   |  j  S(   N(   R   (   R   (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyt   __unicode__   s    c         C   s
   t  ‚ d  S(   N(   t   NotImplementedError(   R   (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyt   toxml   s    i    c         C   sI   d d | t  |  ƒ f } x( |  j D] } | | j | d ƒ 7} q$ W| S(   Ns   
|%s%st    i   (   t   unicodeR	   t	   printTree(   R   t   indentt   treet   child(    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyR      s    c         C   sg   t  | t ƒ rJ |  j rJ t  |  j d t ƒ rJ |  j d j | j 7_ n |  j j | ƒ |  | _ d  S(   Niÿÿÿÿ(   t
   isinstancet   TextNodeR	   R   t   appendR   (   R   R   (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyt   appendChild!   s
    c         C   s<   | d  k r" |  j t | ƒ ƒ n |  j t | ƒ | ƒ d  S(   N(   R   R   R   t   insertBefore(   R   t   dataR   (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyt
   insertText)   s    c         C   s‡   |  j  j | ƒ } t | t ƒ rg | d k rg t |  j  | d t ƒ rg |  j  | d j | j 7_ n |  j  j | | ƒ |  | _ d  S(   Ni    i   (   R	   t   indexR   R   R   t   insertR   (   R   R   t   refNodeR    (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyR   /   s     c         C   s.   y |  j  j | ƒ Wn
 ‚  n Xd  | _ d  S(   N(   R	   t   removeR   R   (   R   R   (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyt   removeChild8   s
    c         C   s
   t  ‚ d  S(   N(   R   (   R   (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyt	   cloneNode@   s    c         C   s   t  |  j ƒ S(   s,   Return true if the node has children or text(   t   boolR	   (   R   (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyt
   hasContentC   s    c         C   s4   |  j  d  k r  t d |  j f S|  j  |  j f Sd  S(   Nt   html(   t	   namespaceR   R   R   (   R   (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyt   getNameTupleG   s    N(   t   __name__t
   __module__t   typeR   R   R   R   R   R   R   R   R   R$   R%   R'   R*   t   propertyt	   nameTuple(    (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyR      s   											t   Documentc           B   sS   e  Z d  Z d „  Z d „  Z d „  Z d d „ Z d d „ Z d „  Z d	 „  Z	 RS(
   i   c         C   s   t  j |  d  ƒ d  S(   N(   R   R   R   (   R   (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyR   Q   s    c         C   s   d S(   Ns	   #document(    (   R   (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyR   T   s    c         C   s   t  j |  | ƒ d  S(   N(   R   R   (   R   R   (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyR   W   s    s   utf=8c         C   s7   d } x! |  j  D] } | | j ƒ  7} q W| j | ƒ S(   Nt    (   R	   R   t   encode(   R   t   encodingt   resultR   (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyR   Z   s    s   utf-8c         C   s;   d } x! |  j  D] } | | j ƒ  7} q W| j | ƒ d S(   Ns   <pre>s   </pre>(   R	   t   hiliteR2   (   R   R3   R4   R   (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyR5   `   s    c         C   s7   t  |  ƒ } x$ |  j D] } | | j d ƒ 7} q W| S(   Ni   (   R   R	   R   (   R   R   R   (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyR   f   s    c         C   s   t  ƒ  S(   N(   R0   (   R   (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyR%   l   s    (
   R+   R,   R-   R   R   R   R   R5   R   R%   (    (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyR0   O   s   				t   DocumentFragmentc           B   s    e  Z d  Z d „  Z d „  Z RS(   i   c         C   s   d S(   Ns   #document-fragment(    (   R   (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyR   q   s    c         C   s   t  ƒ  S(   N(   R6   (   R   (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyR%   t   s    (   R+   R,   R-   R   R%   (    (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyR6   o   s   	t   DocumentTypec           B   s8   e  Z d  Z d „  Z d „  Z e Z d „  Z d „  Z RS(   i   c         C   s&   t  j |  | ƒ | |  _ | |  _ d  S(   N(   R   R   t   publicIdt   systemId(   R   R   R8   R9   (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyR   y   s    	c         C   sS   |  j  s |  j rD |  j  p d } |  j p- d } d |  j | | f Sd |  j Sd  S(   NR1   s   <!DOCTYPE %s "%s" "%s">u   <!DOCTYPE %s>(   R8   R9   R   (   R   R8   R9   (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyR   ~   s    c         C   s   d |  j  S(   Ns4   <code class="markup doctype">&lt;!DOCTYPE %s></code>(   R   (   R   (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyR5   ‹   s    c         C   s   t  |  j |  j |  j ƒ S(   N(   R7   R   R8   R9   (   R   (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyR%   Ž   s    (   R+   R,   R-   R   R   R   R5   R%   (    (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyR7   w   s   			R   c           B   s8   e  Z d  Z d „  Z d „  Z d „  Z e Z d „  Z RS(   i   c         C   s   t  j |  d  ƒ | |  _ d  S(   N(   R   R   R   R   (   R   R   (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyR   “   s    c         C   s   d |  j  S(   Nu   "%s"(   R   (   R   (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyR   —   s    c         C   s   t  |  j ƒ S(   N(   R   R   (   R   (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyR   š   s    c         C   s   t  |  j ƒ S(   N(   R   R   (   R   (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyR%   Ÿ   s    (   R+   R,   R-   R   R   R   R5   R%   (    (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyR   ‘   s   			t   Elementc           B   sG   e  Z d  Z d d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z	 RS(   i   c         C   s&   t  j |  | ƒ | |  _ i  |  _ d  S(   N(   R   R   R)   t
   attributes(   R   R   R)   (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyR   ¤   s    	c         C   s6   |  j  d  k r d |  j Sd t |  j  |  j f Sd  S(   Nu   <%s>u   <%s %s>(   R)   R   R   R   (   R   (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyR   ©   s    c      	   C   s¶   d |  j  } |  j r] xD |  j j ƒ  D]0 \ } } | d | t | i d d 6ƒ f 7} q& Wn  |  j r¨ | d 7} x! |  j D] } | | j ƒ  7} qz W| d |  j  7} n
 | d 7} | S(   Nt   <u    %s="%s"s   &quot;t   "t   >u   </%s>u   />(   R   R;   t	   iteritemsR   R	   R   (   R   R4   R   R   R   (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyR   ¯   s    	+	

c      	   C   s½   d |  j  } |  j r] xD |  j j ƒ  D]0 \ } } | d | t | i d d 6ƒ f 7} q& Wn  |  j r— | d 7} x; |  j D] } | | j ƒ  7} qz Wn |  j  t k r® | d S| d |  j  S(   Ns/   &lt;<code class="markup element-name">%s</code>s_    <code class="markup attribute-name">%s</code>=<code class="markup attribute-value">"%s"</code>s   &quot;R=   R>   s1   &lt;/<code class="markup element-name">%s</code>>(   R   R;   R?   R   R	   R5   R    (   R   R4   R   R   R   (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyR5   ½   s    	+	
c         C   sÀ   d d | t  |  ƒ f } | d 7} |  j r• xe |  j j ƒ  D]Q \ } } t | t ƒ rs d | d | d f } n  | d d | | | f 7} q= Wn  x$ |  j D] } | | j | ƒ 7} qŸ W| S(   Ns   
|%s%sR   i   s   %s %si    i   s   
|%s%s="%s"(   R   R;   R?   R   t   tupleR	   R   (   R   R   R   R   R   R   (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyR   Ê   s    
	"c         C   s^   t  |  j ƒ } t |  d ƒ r- |  j | _ n  x* |  j j ƒ  D] \ } } | | j | <q= W| S(   NR)   (   R:   R   t   hasattrR)   R;   R?   (   R   t   newNodet   attrR   (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyR%   Ö   s    N(
   R+   R,   R-   R   R   R   R   R5   R   R%   (    (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyR:   ¢   s   				t   CommentNodec           B   s;   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   i   c         C   s   t  j |  d  ƒ | |  _ d  S(   N(   R   R   R   R   (   R   R   (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyR   à   s    c         C   s   d |  j  S(   Ns   <!-- %s -->(   R   (   R   (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyR   ä   s    c         C   s   d |  j  S(   Ns	   <!--%s-->(   R   (   R   (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyR   ç   s    c         C   s   d t  |  j ƒ S(   Ns0   <code class="markup comment">&lt;!--%s--></code>(   R   R   (   R   (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyR5   ê   s    c         C   s   t  |  j ƒ S(   N(   RD   R   (   R   (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyR%   í   s    (   R+   R,   R-   R   R   R   R5   R%   (    (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyRD   Þ   s   				t   TreeBuilderc           B   s/   e  Z e Z e Z e Z e Z	 e
 Z d  „  Z RS(   c         C   s
   | j  ƒ  S(   N(   R   (   R   R   (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyt   testSerializer÷   s    (   R+   R,   R0   t   documentClassR7   t   doctypeClassR:   t   elementClassRD   t   commentClassR6   t   fragmentClassRF   (    (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyRE   ð   s   (   t   _baset   html5lib.constantsR    R   R   t   xml.sax.saxutilsR   R   R0   R6   R7   R   R:   RD   RE   (    (    (    s_   /home/sa3ruby/intertwingly.net/code/venus-bzr/planet/vendor/html5lib/treebuilders/simpletree.pyt   <module>   s   I <