Ñò
ˆùJc        	   @   s	  d  d k  Z d  d k Z d  d k Z y e i e i g Z Wn e j
 o e i g Z n Xd Z d Z	 d Z
 d Z d Z d Z d Z d	 Z d
 e i i f d „  ƒ  YZ d d d „  ƒ  YZ d d d „  ƒ  YZ d e f d „  ƒ  YZ d Z d d d „ Z d d „ Z d S(   iÿÿÿÿNt   START_ELEMENTt   END_ELEMENTt   COMMENTt   START_DOCUMENTt   END_DOCUMENTt   PROCESSING_INSTRUCTIONt   IGNORABLE_WHITESPACEt
   CHARACTERSt   PullDOMc           B   s°   e  Z d Z d Z d d  „ Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d „  Z d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s¥   d d k  l } | |  _ d  d  g |  _ |  i |  _ g  |  _ |  i i |  _ y |  i i	 |  _	 Wn t
 j
 o n Xh d | 6g |  _ |  i d |  _ g  |  _ d  S(   Niÿÿÿÿ(   t   XML_NAMESPACEt   xml(   t   xml.domR	   t   documentFactoryt   Nonet
   firstEventt	   lastEventt   elementStackt   appendt   pusht   popt   AttributeErrort   _ns_contextst   _current_contextt   pending_events(   t   selfR   R	   (    (    s%   scripts/common/Lib/xml/dom/pulldom.pyt   __init__   s    		c         C   s   |  i  d } |  i  d =| S(   Niÿÿÿÿ(   R   (   R   t   result(    (    s%   scripts/common/Lib/xml/dom/pulldom.pyR   '   s    
c         C   s   | |  _  d  S(   N(   t   _locator(   R   t   locator(    (    s%   scripts/common/Lib/xml/dom/pulldom.pyt   setDocumentLocator,   s    c         C   sk   t  |  d ƒ p g  |  _ n |  i i | p d | f ƒ |  i i |  i i ƒ  ƒ | p d  |  i | <d  S(   Nt   _xmlns_attrst   xmlns(   t   hasattrR   R   R   R   t   copyR   (   R   t   prefixt   uri(    (    s%   scripts/common/Lib/xml/dom/pulldom.pyt   startPrefixMapping/   s
    c         C   s   |  i  i ƒ  |  _ d  S(   N(   R   R   R   (   R   R"   (    (    s%   scripts/common/Lib/xml/dom/pulldom.pyt   endPrefixMapping6   s    c         C   sO  d } t  |  d d  ƒ } | d  j	 o7 x' | D] \ } } | | i | | f <q, Wg  |  _ n | \ } }	 | ov | d  j o0 |  i | }
 |
 o |
 d |	 } q¬ |	 } n |  i o |  i i | | ƒ } q|  i | | ƒ } n3 |  i o |  i i |	 ƒ } n |  i d  |	 ƒ } xû | i	 ƒ  D]í \ } } | \ } } | | j oG | d j o
 | } n d | } |  i i
 | | ƒ } | i | ƒ ny | oR |  i | }
 |
 o |
 d | } n | } |  i i
 | | ƒ } | i | ƒ n  |  i i | ƒ } | i | ƒ | | _ q$Wt | f d  g |  i d <|  i d |  _ |  i | ƒ d  S(   Ns   http://www.w3.org/2000/xmlns/R   t   :R   s   xmlns:i   (   t   getattrR   t   _attrsR   R   t   documentt   createElementNSt   buildDocumentt   createElementt   itemst   createAttributeNSt   setAttributeNodeNSt   createAttributet   setAttributeNodet   valueR    R   R   (   R   t   namet   tagNamet   attrst	   xmlns_urit   xmlns_attrst   anameR2   R#   t	   localnameR"   t   nodet   a_urit   a_localnamet   qnamet   attr(    (    s%   scripts/common/Lib/xml/dom/pulldom.pyt   startElementNS9   sT     


 

c         C   s3   t  |  i ƒ  f d  g |  i d <|  i d |  _ d  S(   Ni   (   R   R   R   R   (   R   R3   R4   (    (    s%   scripts/common/Lib/xml/dom/pulldom.pyt   endElementNSr   s    c         C   s±   |  i  o |  i  i | ƒ } n |  i d  | ƒ } xB | i ƒ  D]4 \ } } |  i  i | ƒ } | | _ | i | ƒ q? Wt | f d  g |  i	 d <|  i	 d |  _	 |  i
 | ƒ d  S(   Ni   (   R)   R,   R+   R   R-   R0   R2   R1   R    R   R   (   R   R3   R5   R:   R8   R2   R>   (    (    s%   scripts/common/Lib/xml/dom/pulldom.pyt   startElementv   s    
 	c         C   s3   t  |  i ƒ  f d  g |  i d <|  i d |  _ d  S(   Ni   (   R   R   R   R   (   R   R3   (    (    s%   scripts/common/Lib/xml/dom/pulldom.pyt
   endElement…   s    c         C   so   |  i  o? |  i  i | ƒ } t | f d  g |  i d <|  i d |  _ n# t | f d  g } |  i i | ƒ d  S(   Ni   (   R)   t   createCommentR   R   R   R   R   (   R   t   sR:   t   event(    (    s%   scripts/common/Lib/xml/dom/pulldom.pyt   comment‰   s    
c         C   su   |  i  oB |  i  i | | ƒ } t | f d  g |  i d <|  i d |  _ n& t | | f d  g } |  i i | ƒ d  S(   Ni   (   R)   t   createProcessingInstructionR   R   R   R   R   (   R   t   targett   dataR:   RE   (    (    s%   scripts/common/Lib/xml/dom/pulldom.pyt   processingInstruction’   s    
c         C   s?   |  i  i | ƒ } t | f d  g |  i d <|  i d |  _ d  S(   Ni   (   R)   t   createTextNodeR   R   R   (   R   t   charsR:   (    (    s%   scripts/common/Lib/xml/dom/pulldom.pyt   ignorableWhitespace›   s    c         C   s?   |  i  i | ƒ } t | f d  g |  i d <|  i d |  _ d  S(   Ni   (   R)   RK   R   R   R   (   R   RL   R:   (    (    s%   scripts/common/Lib/xml/dom/pulldom.pyt
   characters    s    c         C   s9   |  i  d  j o% d d  k } | i i i i |  _  n d  S(   Niÿÿÿÿ(   R   R   t   xml.dom.minidomt   domt   minidomt   Documentt   implementation(   R   R
   (    (    s%   scripts/common/Lib/xml/dom/pulldom.pyt   startDocument¥   s    c   	      C   s<  |  i  i | | d  ƒ } | |  _ t | f d  g |  i d <|  i d |  _ |  i | ƒ xÒ |  i D]Ç } | d d t j o< | d \ } } } |  i i	 | | ƒ } t | f | d <n[ | d d t
 j o. |  i i | d d ƒ } t
 | f | d <n t d | d d ƒ ‚ | |  i d <| |  _ qa Wd  |  _ | i S(   Ni   i    s   Unknown pending event (   R   t   createDocumentR   R)   R   R   R   R   R   RG   R   RC   t   AssertionErrort
   firstChild(	   R   R#   t   tagnameR:   t   et   _RH   RI   t   n(    (    s%   scripts/common/Lib/xml/dom/pulldom.pyR+   ª   s&    	
 	c         C   s*   t  |  i f d  g |  i d <|  i ƒ  d  S(   Ni   (   R   R)   R   R   R   (   R   (    (    s%   scripts/common/Lib/xml/dom/pulldom.pyt   endDocumentÂ   s    c         C   s   d |  _ d S(   s.   clear(): Explicitly release parsing structuresN(   R   R)   (   R   (    (    s%   scripts/common/Lib/xml/dom/pulldom.pyt   clearÆ   s    N(   t   __name__t
   __module__R   R   R)   R   R   R   R$   R%   R?   R@   RA   RB   RF   RJ   RM   RN   RT   R+   R\   R]   (    (    (    s%   scripts/common/Lib/xml/dom/pulldom.pyR      s&   					9												t   ErrorHandlerc           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   s	   | GHd  S(   N(    (   R   t	   exception(    (    s%   scripts/common/Lib/xml/dom/pulldom.pyt   warningË   s    c         C   s
   | ‚ d  S(   N(    (   R   Ra   (    (    s%   scripts/common/Lib/xml/dom/pulldom.pyt   errorÍ   s    c         C   s
   | ‚ d  S(   N(    (   R   Ra   (    (    s%   scripts/common/Lib/xml/dom/pulldom.pyt
   fatalErrorÏ   s    (   R^   R_   Rb   Rc   Rd   (    (    (    s%   scripts/common/Lib/xml/dom/pulldom.pyR`   Ê   s   		t   DOMEventStreamc           B   sb   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z RS(
   c         C   sL   | |  _  | |  _ | |  _ t |  i d ƒ p |  i |  _ n |  i ƒ  d  S(   Nt   feed(   t   streamt   parsert   bufsizeR    t   _slurpt   getEventt   reset(   R   Rg   Rh   Ri   (    (    s%   scripts/common/Lib/xml/dom/pulldom.pyR   Ó   s    			c         C   s?   t  ƒ  |  _ |  i i t i i i d ƒ |  i i |  i ƒ d  S(   Ni   (	   R   t   pulldomRh   t
   setFeatureR
   t   saxt   handlert   feature_namespacest   setContentHandler(   R   (    (    s%   scripts/common/Lib/xml/dom/pulldom.pyRl   Û   s    c         C   s"   |  i  ƒ  } | o | St ‚ d  S(   N(   Rk   t
   IndexError(   R   t   post   rc(    (    s%   scripts/common/Lib/xml/dom/pulldom.pyt   __getitem__á   s    c         C   s"   |  i  ƒ  } | o | St ‚ d  S(   N(   Rk   t   StopIteration(   R   Ru   (    (    s%   scripts/common/Lib/xml/dom/pulldom.pyt   nextç   s    c         C   s   |  S(   N(    (   R   (    (    s%   scripts/common/Lib/xml/dom/pulldom.pyt   __iter__í   s    c         C   sª   |  i  ƒ  } | g } xŽ | o† | \ } } | | j o d  S| t j o | d i | ƒ n | t j o | i | ƒ n | t j o | d =n |  i  ƒ  } q Wd  S(   Niÿÿÿÿ(   Rk   R   t   appendChildR    R   (   R   R:   RE   t   parentst   tokent   cur_node(    (    s%   scripts/common/Lib/xml/dom/pulldom.pyt
   expandNodeð   s    	 c         C   s´   |  i  i d p |  i  i |  i  _ n xT |  i  i d pB |  i i |  i ƒ } | p |  i i ƒ  d  S|  i i	 | ƒ q* W|  i  i d d } |  i  i d d |  i  i d <| S(   Ni   i    (
   Rm   R   R   Rg   t   readRi   Rh   t   closeR   Rf   (   R   t   bufRu   (    (    s%   scripts/common/Lib/xml/dom/pulldom.pyRk   ÿ   s     c         C   s)   |  i  i |  i ƒ |  i |  _ |  i ƒ  S(   så    Fallback replacement for getEvent() using the
            standard SAX2 interface, which means we slurp the
            SAX events into memory (no performance gain, but
            we are compatible to all SAX parsers).
        (   Rh   t   parseRg   t   _emitRk   (   R   (    (    s%   scripts/common/Lib/xml/dom/pulldom.pyRj     s    c         C   s6   |  i  i d d } |  i  i d d |  i  i d <| S(   sn    Fallback replacement for getEvent() that emits
            the events that _slurp() read previously.
        i   i    (   Rm   R   (   R   Ru   (    (    s%   scripts/common/Lib/xml/dom/pulldom.pyRƒ     s    c         C   s)   |  i  i ƒ  |  `  d |  _ d |  _ d S(   s+   clear(): Explicitly release parsing objectsN(   Rm   R]   R   Rh   Rg   (   R   (    (    s%   scripts/common/Lib/xml/dom/pulldom.pyR]      s    	(   R^   R_   R   Rl   Rv   Rx   Ry   R~   Rk   Rj   Rƒ   R]   (    (    (    s%   scripts/common/Lib/xml/dom/pulldom.pyRe   Ò   s   								
	t   SAX2DOMc           B   s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   sA   t  i |  | | | ƒ |  i d } |  i d } | i | ƒ d  S(   Niÿÿÿÿiþÿÿÿ(   R   R?   R   Rz   (   R   R3   R4   R5   t   curNodet
   parentNode(    (    s%   scripts/common/Lib/xml/dom/pulldom.pyR?   )  s    c         C   s>   t  i |  | | ƒ |  i d } |  i d } | i | ƒ d  S(   Niÿÿÿÿiþÿÿÿ(   R   RA   R   Rz   (   R   R3   R5   R…   R†   (    (    s%   scripts/common/Lib/xml/dom/pulldom.pyRA   /  s    c         C   sB   t  i |  | | ƒ |  i d d } |  i d } | i | ƒ d  S(   Ni    i   iÿÿÿÿ(   R   RJ   R   R   Rz   (   R   RH   RI   R:   R†   (    (    s%   scripts/common/Lib/xml/dom/pulldom.pyRJ   5  s    c         C   s?   t  i |  | ƒ |  i d d } |  i d } | i | ƒ d  S(   Ni    i   iÿÿÿÿ(   R   RM   R   R   Rz   (   R   RL   R:   R†   (    (    s%   scripts/common/Lib/xml/dom/pulldom.pyRM   ;  s    c         C   s?   t  i |  | ƒ |  i d d } |  i d } | i | ƒ d  S(   Ni    i   iÿÿÿÿ(   R   RN   R   R   Rz   (   R   RL   R:   R†   (    (    s%   scripts/common/Lib/xml/dom/pulldom.pyRN   A  s    (   R^   R_   R?   RA   RJ   RM   RN   (    (    (    s%   scripts/common/Lib/xml/dom/pulldom.pyR„   '  s
   				i   i   i   c         C   sj   | d  j o
 t } n t |  ƒ t j o t |  ƒ } n |  } | p t i i ƒ  } n t | | | ƒ S(   N(	   R   t   default_bufsizet   typet   _StringTypest   openR
   Ro   t   make_parserRe   (   t   stream_or_stringRh   Ri   Rg   (    (    s%   scripts/common/Lib/xml/dom/pulldom.pyR‚   J  s    
c         C   s|   y d d k  l } Wn# t j
 o d d k l } n Xt |  ƒ } | |  ƒ } | p t i i ƒ  } n t | | | ƒ S(   Niÿÿÿÿ(   t   StringIO(   t	   cStringIOR�   t   ImportErrort   lenR
   Ro   R‹   Re   (   t   stringRh   R�   Ri   R�   (    (    s%   scripts/common/Lib/xml/dom/pulldom.pyt   parseStringU  s    (    (    i @  iì?  (   t   xml.saxR
   t   xml.sax.handlert   typest
   StringTypet   UnicodeTypeR‰   R   R    R   R   R   R   R   R   R   Ro   t   ContentHandlerR   R`   Re   R„   R‡   R   R‚   R’   (    (    (    s%   scripts/common/Lib/xml/dom/pulldom.pyt   <module>   s*   ·U!