
ĀĀ­ĀĀ­ĀĀ­ĀĀ­ĀĀ­ĀĀ­ĀĀ­ĀĀ­ĀĀ­ĀĀ­ĀĀ­ĀĀ­ĀĀ­ĀĀ­ĀĀ­ĀĀ­ĀĀ­ĀĀ­
<!DOCTYPE html>
<html>
ó
Ī\[c           @   s  d  d g Z  y d d l m Z Wn# e k
 rE Z d d l m Z n Xd d l m Z d d l m Z d d l	 m
 Z
 d d l m Z m Z m Z m Z m Z d d l m Z m Z m Z m Z m Z m Z m Z d d	 l m Z d
 Z d  e f d     YZ d e e f d     YZ d S(   t   LXMLTreeBuilderForXMLt   LXMLTreeBuilderi’’’’(   t   Callable(   t   BytesIO(   t   StringIO(   t   etree(   t   Commentt   Doctypet   NamespacedAttributet   ProcessingInstructiont   XMLProcessingInstruction(   t   FASTt   HTMLt   HTMLTreeBuildert
   PERMISSIVEt   ParserRejectedMarkupt   TreeBuildert   XML(   t   EncodingDetectort   lxmlc           B   sķ   e  Z e j Z e Z e Z d  Z	 d g Z
 e	 e e e e g Z d Z i d d 6Z d   Z d   Z d d d  Z d   Z d d d d  Z d	   Z d
   Z i  d  Z d   Z d   Z d   Z d   Z d   Z d   Z  d   Z! RS(   s   lxml-xmlt   xmli   s$   http://www.w3.org/XML/1998/namespacec      	   C   s8   |  j  d  k	 r |  j  St j d |  d t d t d |  S(   Nt   targett   strip_cdatat   recovert   encoding(   t   _default_parsert   NoneR   t	   XMLParsert   Falset   True(   t   selfR   (    (    s5   /usr/lib/python2.7/site-packages/bs4/builder/_lxml.pyt   default_parser5   s    	c         C   s@   |  j  |  } t | t  r< | d |  d t d |  } n  | S(   NR   R   R   (   R   t
   isinstanceR   R   (   R   R   t   parser(    (    s5   /usr/lib/python2.7/site-packages/bs4/builder/_lxml.pyt
   parser_for=   s    c         C   sC   | |  _  | d  k	 r' t |  |  _ n  d  |  _ |  j g |  _ d  S(   N(   R   R   t   sett   empty_element_tagst   soupt   DEFAULT_NSMAPSt   nsmaps(   R   R!   R$   (    (    s5   /usr/lib/python2.7/site-packages/bs4/builder/_lxml.pyt   __init__F   s
    		c         C   s8   | d d k r* t  | d j d d   Sd  | f Sd  S(   Ni    t   {i   t   }(   t   tuplet   splitR   (   R   t   tag(    (    s5   /usr/lib/python2.7/site-packages/bs4/builder/_lxml.pyt	   _getNsTagP   s    c   	      c   sĮ   |  j  } | r t |  _ n	 t |  _ t | t  rH | d | t f Vn  t | t  rt | j d  d | t f Vn  | | g } t	 | | | |  } x% | j
 D] } | j | | t f Vq Wd S(   sÓ   
        :yield: A series of 4-tuples.
         (markup, encoding, declared encoding,
          has undergone character replacement)

        Each 4-tuple represents a strategy for parsing the document.
        t   utf8N(   t   is_xmlR	   t   processing_instruction_classR
   R    t   unicodeR   R   t   encodeR   t	   encodingst   markup(	   R   R5   t   user_specified_encodingt   exclude_encodingst   document_declared_encodingt   is_htmlt   try_encodingst   detectorR   (    (    s5   /usr/lib/python2.7/site-packages/bs4/builder/_lxml.pyt   prepare_markupX   s    
	c         C   s  t  | t  r t |  } n t  | t  r< t |  } n  | j |  j  } y |  j |  j j	  |  _
 |  j
 j |  xM t |  d k rČ | j |  j  } t |  d k r| |  j
 j |  q| q| W|  j
 j   Wn1 t t t j f k
 r
} t t |    n Xd  S(   Ni    (   R    t   bytesR   R2   R   t   readt
   CHUNK_SIZER"   R%   t   original_encodingR!   t   feedt   lent   closet   UnicodeDecodeErrort   LookupErrorR   t   ParserErrorR   t   str(   R   R5   t   datat   e(    (    s5   /usr/lib/python2.7/site-packages/bs4/builder/_lxml.pyRA   }   s    c         C   s   |  j  g |  _ d  S(   N(   R&   R'   (   R   (    (    s5   /usr/lib/python2.7/site-packages/bs4/builder/_lxml.pyRC      s    c         C   s  t  |  } d  } t |  d k rL t |  j  d k rL |  j j d   n t |  d k rŅ t  d   | j   D  } |  j j |  | j   } x9 | j   D]( \ } } t d | d  } | | | <q£ Wn  i  }	 xs | j   D]e \ }
 } |  j |
  \ } }
 | d  k r| |	 |
 <qå |  j	 |  } t | |
 |  }
 | |	 |
 <qå W|	 } |  j |  \ } } |  j	 |  } |  j
 j | | | |  d  S(   Ni    i   c         s   s!   |  ] \ } } | | f Vq d  S(   N(    (   t   .0t   keyt   value(    (    s5   /usr/lib/python2.7/site-packages/bs4/builder/_lxml.pys	   <genexpr>”   s    t   xmlnss   http://www.w3.org/2000/xmlns/(   t   dictR   RB   R'   t   appendt   itemst   copyR   R.   t   _prefix_for_namespaceR%   t   handle_starttag(   R   t   namet   attrst   nsmapt   nsprefixt   inverted_nsmapt   prefixt	   namespacet	   attributet	   new_attrst   attrRL   (    (    s5   /usr/lib/python2.7/site-packages/bs4/builder/_lxml.pyt   start   s0    'c         C   sN   | d k r d Sx7 t |  j  D]& } | d k	 r  | | k r  | | Sq  Wd S(   s9   Find the currently active prefix for the given namespace.N(   R   t   reversedR'   (   R   RZ   RX   (    (    s5   /usr/lib/python2.7/site-packages/bs4/builder/_lxml.pyRR   ½   s    c         C   sĆ   |  j  j   |  j  j d } |  j |  \ } } d  } | d  k	 r x@ t |  j  D], } | d  k	 rT | | k rT | | } PqT qT Wn  |  j  j | |  t |  j  d k ræ |  j j	   n  d  S(   Ni’’’’i   (
   R%   t   endDatat   tagStackR.   R   R_   R'   t   handle_endtagRB   t   pop(   R   RT   t   completed_tagRZ   RW   RX   (    (    s5   /usr/lib/python2.7/site-packages/bs4/builder/_lxml.pyt   endĘ   s    
c         C   s<   |  j  j   |  j  j | d |  |  j  j |  j  d  S(   Nt    (   R%   R`   t   handle_dataR1   (   R   R   RH   (    (    s5   /usr/lib/python2.7/site-packages/bs4/builder/_lxml.pyt   piÖ   s    c         C   s   |  j  j |  d  S(   N(   R%   Rg   (   R   t   content(    (    s5   /usr/lib/python2.7/site-packages/bs4/builder/_lxml.pyRH   Ū   s    c         C   s6   |  j  j   t j | | |  } |  j  j |  d  S(   N(   R%   R`   R   t   for_name_and_idst   object_was_parsed(   R   RT   t   pubidt   systemt   doctype(    (    s5   /usr/lib/python2.7/site-packages/bs4/builder/_lxml.pyRn   Ž   s    c         C   s1   |  j  j   |  j  j |  |  j  j t  d S(   s#   Handle comments as Comment objects.N(   R%   R`   Rg   R   (   R   Ri   (    (    s5   /usr/lib/python2.7/site-packages/bs4/builder/_lxml.pyt   commentć   s    c         C   s   d | S(   s   See `TreeBuilder`.u)   <?xml version="1.0" encoding="utf-8"?>
%s(    (   R   t   fragment(    (    s5   /usr/lib/python2.7/site-packages/bs4/builder/_lxml.pyt   test_fragment_to_documenté   s    N("   t   __name__t
   __module__R   R   t   DEFAULT_PARSER_CLASSR   R0   R
   R1   t   NAMEt   ALTERNATE_NAMESt   LXMLR   R   R   t   featuresR?   R&   R   R"   R   R(   R.   R<   RA   RC   R^   RR   Re   Rh   RH   Rn   Ro   Rq   (    (    (    s5   /usr/lib/python2.7/site-packages/bs4/builder/_lxml.pyR    #   s2   					
	#		(							c           B   sT   e  Z e Z d  g Z e e e e e g Z e	 Z
 e Z d   Z d   Z d   Z RS(   s	   lxml-htmlc         C   s   t  j S(   N(   R   t
   HTMLParser(   R   R   (    (    s5   /usr/lib/python2.7/site-packages/bs4/builder/_lxml.pyR   ÷   s    c         C   sw   |  j  j } y3 |  j |  |  _ |  j j |  |  j j   Wn1 t t t j	 f k
 rr } t
 t |    n Xd  S(   N(   R%   R@   R"   R!   RA   RC   RD   RE   R   RF   R   RG   (   R   R5   R   RI   (    (    s5   /usr/lib/python2.7/site-packages/bs4/builder/_lxml.pyRA   ś   s    c         C   s   d | S(   s   See `TreeBuilder`.u   <html><body>%s</body></html>(    (   R   Rp   (    (    s5   /usr/lib/python2.7/site-packages/bs4/builder/_lxml.pyRq     s    (   Rr   Rs   Rw   Ru   Rv   R   R   R   Rx   R   R0   R	   R1   R   RA   Rq   (    (    (    s5   /usr/lib/python2.7/site-packages/bs4/builder/_lxml.pyR   ī   s   			
N(   t   __all__t   collections.abcR   t   ImportErrorRI   t   collectionst   ioR   R   R   R   t   bs4.elementR   R   R   R	   R
   t   bs4.builderR   R   R   R   R   R   R   t
   bs4.dammitR   Rw   R    R   (    (    (    s5   /usr/lib/python2.7/site-packages/bs4/builder/_lxml.pyt   <module>   s   	(4Ė