;
"Ic               @   s  d  Z  d d l m Z m Z m Z d d l m Z m Z m Z d d l m	 Z	 d d l
 m Z m Z d d l m Z d d l Te j Z e j Z e j Z e j j Z e j j Z e j j Z e j j Z e j   Z i	 e j e d  d	 6e j e d
  d 6e j e d  d 6e j e d  d 6e j e d  d 6e j e d  d 6e j e d  d 6e j e d  d 6e j e d  d 6Z Gd   d e  Z d   Z d   Z  Gd   d  Z! e e e f Z" Gd    d! e  Z# Gd"   d# e  Z$ Gd$   d% e$  Z% Gd&   d' e$  Z& d( Z' d) e' Z( Gd*   d+ e!  Z) Gd,   d-  Z* Gd.   d/ e* e!  Z+ Gd0   d1 e* e)  Z, Gd2   d3 e-  Z. Gd4   d5 e!  Z/ e0 d6  Z1 e0 d7  Z2 e0 d8  Z3 e0 d9  Z4 d:   Z5 d; S(<   u   Facility to use the Expat parser to load a minidom instance
from a string or file.

This avoids all the overhead of SAX and pulldom to gain performance.
i    (   u
   xmlbuilderu   minidomu   Node(   u   EMPTY_NAMESPACEu   EMPTY_PREFIXu   XMLNS_NAMESPACE(   u   expat(   u   _append_childu   _set_attribute_node(   u
   NodeFilter(   u   *u   cdatau   CDATAu   enumerationu   ENUMu   entityu   ENTITYu   entitiesu   ENTITIESu   idu   IDu   idrefu   IDREFu   idrefsu   IDREFSu   nmtokenu   NMTOKENu   nmtokensu   NMTOKENSc             B   sh   |  Ee  Z d Z d d  Z d   Z d   Z d   Z d   Z d   Z	 d	   Z
 d
   Z d   Z d S(   u
   _attr_infou   _modelu   tagNamec             C   s   | |  _  g  |  _ | |  _ d  S(   N(   u   tagNameu
   _attr_infou   _model(   u   selfu   tagNameu   model(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   __init__A   s    		c             C   s   |  j  |  j |  j f S(   N(   u
   _attr_infou   _modelu   tagName(   u   self(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   __getstate__F   s    c             C   s   | \ |  _  |  _ |  _ d  S(   N(   u
   _attr_infou   _modelu   tagName(   u   selfu   state(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   __setstate__I   s    c             C   s`   xV |  j  D]K } | d | k o4 | d } | d d k o	 t d St | d Sq
 q
 Wt j S(   Ni   ii    u   (u   ENUM(   u
   _attr_infou   _typeinfo_mapu   minidomu   _no_type(   u   selfu   anameu   infou   t(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   getAttributeTypeL   s    
 
	c             C   s   t  j S(   N(   u   minidomu   _no_type(   u   selfu   namespaceURIu	   localName(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   getAttributeTypeNSV   s    c             C   s<   |  j  o* |  j  d } | t j j t j j f k Sd Sd  S(   Ni    F(   u   _modelu   expatu   modelu   XML_CTYPE_ANYu   XML_CTYPE_MIXEDu   False(   u   selfu   type(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   isElementContentY   s
    
c             C   s*   |  j  o |  j  d t j j k Sd Sd  S(   Ni    F(   u   _modelu   expatu   modelu   XML_CTYPE_EMPTYu   False(   u   self(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   isEmptya   s    
c             C   s8   x1 |  j  D]& } | d | k o | d d k Sq
 Wd S(   Ni   iu   IDF(   u
   _attr_infou   False(   u   selfu   anameu   info(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   isIdg   s
    
 c             C   s   |  j  | | f  S(   N(   u   isId(   u   selfu   euriu   enameu   auriu   aname(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   isIdNSm   s    N(   u
   _attr_infou   _modelu   tagName(   u   __name__u
   __module__u	   __slots__u   Noneu   __init__u   __getstate__u   __setstate__u   getAttributeTypeu   getAttributeTypeNSu   isElementContentu   isEmptyu   isIdu   isIdNS(   u
   __locals__(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   ElementInfo>   s   
			
				u   ElementInfoc             C   s   |  j  | |  S(   N(   u   _intern_setdefault(   u   builderu   s(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   _internq   s    c             C   s   d | k p t   | j d  } |  j } t |  d k oP | \ } } } | | |  } d | | f } | | |  } | | |  } n& | \ } } t } | | |  } } | | |  | | | f S(   Nu    i   u   %s:%s(   u   AssertionErroru   splitu   _intern_setdefaultu   lenu   EMPTY_PREFIX(   u   builderu   nameu   partsu   internu   uriu	   localnameu   prefixu   qname(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   _parse_ns_namet   s    	c             B   s  |  Ee  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 d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d S(   uP   Document builder that uses Expat to build a ParsedXML.DOM document
    instance.c             C   s{   | d  k o t j   } n | |  _ |  j j d  k	 o t |  j j  |  _ n d  |  _ t |  _ d  |  _	 |  j
   d  S(   N(   u   Noneu
   xmlbuilderu   Optionsu   _optionsu   filteru   FilterVisibilityControlleru   _filteru   idu   _finish_start_elementu   _parseru   reset(   u   selfu   options(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   __init__   s    				c             C   s
   t  j   S(   u   Create a new parser object.(   u   expatu   ParserCreate(   u   self(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   createParser   s    c             C   sj   |  j  pY |  j   |  _  |  j  j j |  _ d |  j  _ d |  j  _ d |  j  _ |  j	 |  j   n |  j  S(   u7   Return the parser object, creating a new one if needed.T(
   u   _parseru   createParseru   internu
   setdefaultu   _intern_setdefaultu   Trueu   buffer_textu   ordered_attributesu   specified_attributesu   install(   u   self(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu	   getParser   s    
c             C   s@   t  j t d d  |  _ |  j |  _ |  j j |  _ d |  _ d S(   u6   Free all data structures used during DOM construction.NF(	   u   theDOMImplementationu   createDocumentu   EMPTY_NAMESPACEu   Noneu   documentu   curNodeu
   _elem_infou   Falseu   _cdata(   u   self(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   reset   s
    c             C   s   |  j  | _ |  j | _ |  j | _ |  j | _ |  j j	 o |  j
 | _ n |  j | _ |  j j o |  j | _ n |  j j o( |  j | _ |  j | _ |  j | _ n |  j | _ |  j | _ |  j | _ |  j | _ |  j | _  d S(   u>   Install the callbacks needed to build the DOM into the parser.N(!   u   start_doctype_decl_handleru   StartDoctypeDeclHandleru   first_element_handleru   StartElementHandleru   end_element_handleru   EndElementHandleru
   pi_handleru   ProcessingInstructionHandleru   _optionsu   entitiesu   entity_decl_handleru   EntityDeclHandleru   notation_decl_handleru   NotationDeclHandleru   commentsu   comment_handleru   CommentHandleru   cdata_sectionsu   start_cdata_section_handleru   StartCdataSectionHandleru   end_cdata_section_handleru   EndCdataSectionHandleru   character_data_handler_cdatau   CharacterDataHandleru   character_data_handleru   external_entity_ref_handleru   ExternalEntityRefHandleru   xml_decl_handleru   XmlDeclHandleru   element_decl_handleru   ElementDeclHandleru   attlist_decl_handleru   AttlistDeclHandler(   u   selfu   parser(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   install   s$    c          	   C   s   |  j    } d } yp xY | j d  } | p Pn | j | d  | o |  j j o |  j |  n d } q | j d d  Wn t k
 o Yn X|  j } |  j	   d |  _ | S(	   uI   Parse a document from a file object, returning the document
        node.i   i   i    u    Ti @  FN(   u	   getParseru   Trueu   readu   Parseu   documentu   documentElementu   _setup_subsetu   Falseu   ParseEscapeu   resetu   Noneu   _parser(   u   selfu   fileu   parseru   first_bufferu   bufferu   doc(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu	   parseFile   s$    		
	c          	   C   sd   |  j    } y! | j | d  |  j |  Wn t k
 o Yn X|  j } |  j   d |  _ | S(   u<   Parse a document from a string, returning the document node.TN(	   u	   getParseru   Parseu   Trueu   _setup_subsetu   ParseEscapeu   documentu   resetu   Noneu   _parser(   u   selfu   stringu   parseru   doc(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   parseString   s    	
	c             C   sF   |  j  j o5 t   } | j |  | j   } | |  j  j _ n d S(   u/   Load the internal subset if there might be one.N(   u   documentu   doctypeu   InternalSubsetExtractoru   parseStringu	   getSubsetu   internalSubset(   u   selfu   bufferu	   extractoru   subset(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   _setup_subset   s
    	c             C   s  |  j  j j | | |  } |  j  | _ |  j  j j |  | |  j  _ |  j oT |  j j |  t	 k o; d  |  j  _ |  j  j d =d  } d  |  j _ d  |  j _ n | oT | d  k	 o g  | j _ g  | j _ n d  |  j _ d  |  j _ |  j |  j _ n d  S(   Ni(   u   documentu   implementationu   createDocumentTypeu   ownerDocumentu
   childNodesu   appendu   doctypeu   _filteru
   acceptNodeu   FILTER_REJECTu   Noneu   _parseru   EntityDeclHandleru   NotationDeclHandleru   entitiesu   _sequ	   notationsu   CommentHandleru   ProcessingInstructionHandleru   end_doctype_decl_handleru   EndDoctypeDeclHandler(   u   selfu   doctypeNameu   systemIdu   publicIdu   has_internal_subsetu   doctype(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   start_doctype_decl_handler   s$    #c             C   sT   |  j  j o |  j |  j _ n |  j |  j _ |  j p |  j p t	 |  _
 n d  S(   N(   u   _optionsu   commentsu   comment_handleru   _parseru   CommentHandleru
   pi_handleru   ProcessingInstructionHandleru
   _elem_infou   _filteru   idu   _finish_end_element(   u   self(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   end_doctype_decl_handler  s
    c             C   s`   |  j  j | |  } t |  j |  |  j o- |  j j |  t k o |  j j |  n d  S(   N(   u   documentu   createProcessingInstructionu   _append_childu   curNodeu   _filteru
   acceptNodeu   FILTER_REJECTu   removeChild(   u   selfu   targetu   datau   node(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu
   pi_handler  s    #c             C   s  |  j  j } |  j oS |  j o* | d j t k o | d j |  d  S|  j j |  } d |  _ n | oK | d j t
 k o7 | d } | j | } | j } | | d <| d <d  St j   } | j } | | d <| d <|  j | d <t |  j  |  d  S(   Niu   datau	   nodeValueu   ownerDocumentT(   u   curNodeu
   childNodesu   _cdatau   _cdata_continueu   nodeTypeu   CDATA_SECTION_NODEu
   appendDatau   documentu   createCDATASectionu   Trueu	   TEXT_NODEu   datau   __dict__u   minidomu   Textu   _append_child(   u   selfu   datau
   childNodesu   nodeu   valueu   d(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   character_data_handler_cdata  s&    


		c             C   s   |  j  j } | oE | d j t k o1 | d } | j } | j | | d <| d <d  St j   } | j } | j | | d <| d <|  j | d <t	 |  j  |  d  S(   Niu   datau	   nodeValueu   ownerDocument(
   u   curNodeu
   childNodesu   nodeTypeu	   TEXT_NODEu   __dict__u   datau   minidomu   Textu   documentu   _append_child(   u   selfu   datau
   childNodesu   nodeu   d(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   character_data_handler(  s    
		c       
      C   s   | o d  S|  j  j p d  S|  j j | | | |  } | d  k	 o& |  j j |  }	 | j j |	  n |  j j j j	 j |  |  j
 o0 |  j
 j |  t k o |  j j j j	 d =n d  S(   Ni(   u   _optionsu   entitiesu   documentu   _create_entityu   Noneu   createTextNodeu
   childNodesu   appendu   doctypeu   _sequ   _filteru
   acceptNodeu   FILTER_REJECT(
   u   selfu
   entityNameu   is_parameter_entityu   valueu   baseu   systemIdu   publicIdu   notationNameu   nodeu   child(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   entity_decl_handler5  s    #c             C   so   |  j  j | | |  } |  j  j j j j |  |  j o0 |  j j |  t k o |  j  j j j d =n d  S(   Ni(	   u   documentu   _create_notationu   doctypeu	   notationsu   _sequ   appendu   _filteru
   acceptNodeu   FILTER_ACCEPT(   u   selfu   notationNameu   baseu   systemIdu   publicIdu   node(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   notation_decl_handlerG  s    #c             C   s]   |  j  j |  } t |  j |  |  j o- |  j j |  t k o |  j j |  n d  S(   N(   u   documentu   createCommentu   _append_childu   curNodeu   _filteru
   acceptNodeu   FILTER_REJECTu   removeChild(   u   selfu   datau   node(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   comment_handlerM  s    #c             C   s   d |  _ d |  _ d  S(   NTF(   u   Trueu   _cdatau   Falseu   _cdata_continue(   u   self(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   start_cdata_section_handlerS  s    	c             C   s   d |  _ d |  _ d  S(   NF(   u   Falseu   _cdatau   _cdata_continue(   u   self(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   end_cdata_section_handlerW  s    	c             C   s   d S(   Ni   (    (   u   selfu   contextu   baseu   systemIdu   publicId(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   external_entity_ref_handler[  s    c             C   sN   |  j  d  k o |  j o t |  _ n |  j |  j   _ |  j | |  d  S(   N(   u   _filteru   Noneu
   _elem_infou   idu   _finish_end_elementu   start_element_handleru	   getParseru   StartElementHandler(   u   selfu   nameu
   attributes(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   first_element_handler^  s    c             C   s  |  j  j |  } t |  j |  | |  _ | o x t d t |  d  D] } t j | | t d  t
  } | | d } | j d j } | | d <| d <| j } | | d <| d <|  j  | d <t | |  qK Wn | |  j  j k	 o |  j |  n d  S(   Ni    i   i   u   datau	   nodeValueu   valueu   ownerDocument(   u   documentu   createElementu   _append_childu   curNodeu   rangeu   lenu   minidomu   Attru   EMPTY_NAMESPACEu   Noneu   EMPTY_PREFIXu
   childNodesu   __dict__u   _set_attribute_nodeu   documentElementu   _finish_start_element(   u   selfu   nameu
   attributesu   nodeu   iu   au   valueu   d(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   start_element_handlerd  s"    	 	c             C   s   |  j  o | |  j j k o d  S|  j  j |  } | t k o t |   n  | t k o t |   n d  S| j |  _	 | j j
 |  | j   n d  S(   N(   u   _filteru   documentu   documentElementu   startContaineru   FILTER_REJECTu   Rejecteru   FILTER_SKIPu   Skipperu
   parentNodeu   curNodeu   removeChildu   unlink(   u   selfu   nodeu   filt(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   _finish_start_elementx  s    
c             C   s&   |  j  } | j |  _  |  j |  d  S(   N(   u   curNodeu
   parentNodeu   _finish_end_element(   u   selfu   nameu   curNode(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   end_element_handler  s    	c             C   s   |  j  j | j  } | o |  j | |  n |  j oS | |  j j k o d  S|  j j |  t k o |  j	 j
 |  | j   q n d  S(   N(   u
   _elem_infou   getu   tagNameu   _handle_white_text_nodesu   _filteru   documentu   documentElementu
   acceptNodeu   FILTER_REJECTu   curNodeu   removeChildu   unlink(   u   selfu   curNodeu   info(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   _finish_end_element  s    
c             C   s   |  j  j p | j   o d  Sg  } xC | j D]8 } | j t k o" | j j   o | j |  q0 q0 Wx | D] } | j	 |  qs Wd  S(   N(
   u   _optionsu   whitespace_in_element_contentu   isElementContentu
   childNodesu   nodeTypeu	   TEXT_NODEu   datau   stripu   appendu   removeChild(   u   selfu   nodeu   infou   Lu   child(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   _handle_white_text_nodes  s    
 ! c             C   s]   |  j  j |  } | d  k o t | |  |  j  | <n! | j d  k p t  | | _ d  S(   N(   u
   _elem_infou   getu   Noneu   ElementInfou   _modelu   AssertionError(   u   selfu   nameu   modelu   info(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   element_decl_handler  s
    c          	   C   sh   |  j  j |  } | d  k o t |  } | |  j  | <n | j j d  | d  d  | d | | g  d  S(   Ni    (   u
   _elem_infou   getu   Noneu   ElementInfou
   _attr_infou   append(   u   selfu   elemu   nameu   typeu   defaultu   requiredu   info(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   attlist_decl_handler  s    	c             C   sP   | |  j  _ | |  j  _ | d k o' | o d |  j  _ qL d |  j  _ n d  S(   Ni    TF(   u   documentu   versionu   encodingu   Trueu
   standaloneu   False(   u   selfu   versionu   encodingu
   standalone(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   xml_decl_handler  s    N(    u   __name__u
   __module__u   __doc__u   Noneu   __init__u   createParseru	   getParseru   resetu   installu	   parseFileu   parseStringu   _setup_subsetu   start_doctype_decl_handleru   end_doctype_decl_handleru
   pi_handleru   character_data_handler_cdatau   character_data_handleru   entity_decl_handleru   notation_decl_handleru   comment_handleru   start_cdata_section_handleru   end_cdata_section_handleru   external_entity_ref_handleru   first_element_handleru   start_element_handleru   _finish_start_elementu   end_element_handleru   _finish_end_elementu   _handle_white_text_nodesu   element_decl_handleru   attlist_decl_handleru   xml_decl_handler(   u
   __locals__(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   ExpatBuilder   s:   
																										u   ExpatBuilderc             B   s   |  Ee  Z d  Z d Z d   Z d   Z d   Z i e j e	 j
 6e j e	 j 6e j e	 j 6e j e	 j 6e j e	 j 6e j e	 j 6e j e	 j 6e j e	 j 6e j e	 j 6e j e	 j 6e j e	 j 6e j e	 j  6Z! d S(   uo   Wrapper around a DOMBuilderFilter which implements the checks
    to make the whatToShow filter attribute work.u   filterc             C   s   | |  _  d  S(   N(   u   filter(   u   selfu   filter(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   __init__  s    c             C   s~   |  j  | j } |  j j | @oU |  j j |  } | t k o
 t  n | t k o t d t	 |    n | St
 Sd  S(   Nu)   startContainer() returned illegal value: (   u   _nodetype_masku   nodeTypeu   filteru
   whatToShowu   startContaineru   FILTER_INTERRUPTu   ParseEscapeu   _ALLOWED_FILTER_RETURNSu
   ValueErroru   repru   FILTER_ACCEPT(   u   selfu   nodeu   masku   val(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   startContainer  s    
c             C   s   |  j  | j } |  j j | @o |  j j |  } | t k o
 t  n | t k o9 | j } x( | j	 d  d   D] } | j
 |  qt Wt S| t k o t d t |    n | St Sd  S(   Nu%   acceptNode() returned illegal value: (   u   _nodetype_masku   nodeTypeu   filteru
   whatToShowu
   acceptNodeu   FILTER_INTERRUPTu   ParseEscapeu   FILTER_SKIPu
   parentNodeu
   childNodesu   appendChildu   FILTER_REJECTu   _ALLOWED_FILTER_RETURNSu
   ValueErroru   repru   FILTER_ACCEPT(   u   selfu   nodeu   masku   valu   parentu   child(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu
   acceptNode  s     
	 N(   u   filter("   u   __name__u
   __module__u   __doc__u	   __slots__u   __init__u   startContaineru
   acceptNodeu
   NodeFilteru   SHOW_ELEMENTu   Nodeu   ELEMENT_NODEu   SHOW_ATTRIBUTEu   ATTRIBUTE_NODEu	   SHOW_TEXTu	   TEXT_NODEu   SHOW_CDATA_SECTIONu   CDATA_SECTION_NODEu   SHOW_ENTITY_REFERENCEu   ENTITY_REFERENCE_NODEu   SHOW_ENTITYu   ENTITY_NODEu   SHOW_PROCESSING_INSTRUCTIONu   PROCESSING_INSTRUCTION_NODEu   SHOW_COMMENTu   COMMENT_NODEu   SHOW_DOCUMENTu   DOCUMENT_NODEu   SHOW_DOCUMENT_TYPEu   DOCUMENT_TYPE_NODEu   SHOW_DOCUMENT_FRAGMENTu   DOCUMENT_FRAGMENT_NODEu   SHOW_NOTATIONu   NOTATION_NODEu   _nodetype_mask(   u
   __locals__(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   FilterVisibilityController  s$   
			u   FilterVisibilityControllerc             B   s   |  Ee  Z d Z d   Z d S(   u   _builderu   _levelu
   _old_startu   _old_endc             C   sO   d |  _  | |  _ | j } | j |  _ | j |  _ |  j | _ |  j | _ d  S(   Ni    (	   u   _levelu   _builderu   _parseru   StartElementHandleru
   _old_startu   EndElementHandleru   _old_endu   start_element_handleru   end_element_handler(   u   selfu   builderu   parser(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   __init__  s    			N(   u   _builderu   _levelu
   _old_startu   _old_end(   u   __name__u
   __module__u	   __slots__u   __init__(   u
   __locals__(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   FilterCrutch	  s   
u   FilterCrutchc             B   s/   |  Ee  Z d Z d    Z d   Z d   Z d S(   c             C   s>   t  j |  |  | j } x d D] } t | | d   q  Wd  S(   Nu   ProcessingInstructionHandleru   CommentHandleru   CharacterDataHandleru   StartCdataSectionHandleru   EndCdataSectionHandleru   ExternalEntityRefHandler(   u   ProcessingInstructionHandleru   CommentHandleru   CharacterDataHandleru   StartCdataSectionHandleru   EndCdataSectionHandleru   ExternalEntityRefHandler(   u   FilterCrutchu   __init__u   _parseru   setattru   None(   u   selfu   builderu   parseru   name(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   __init__  s    	     c             G   s   |  j  d |  _  d  S(   Ni   (   u   _level(   u   selfu   args(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   start_element_handler$  s    c             G   s\   |  j  d k o8 |  j j } |  j j |  |  j | _ |  j | _ n |  j  d |  _  d  S(   Ni    i   (   u   _levelu   _builderu   _parseru   installu
   _old_startu   StartElementHandleru   _old_endu   EndElementHandler(   u   selfu   argsu   parser(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   end_element_handler'  s    N(    (   u   __name__u
   __module__u	   __slots__u   __init__u   start_element_handleru   end_element_handler(   u
   __locals__(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   Rejecter  s   
		u   Rejecterc             B   s&   |  Ee  Z d Z d    Z d   Z d S(   c             G   sD   |  j  j } |  j |   |  j  j | k	 o |  j d |  _ n d  S(   Ni   (   u   _builderu   curNodeu
   _old_startu   _level(   u   selfu   argsu   node(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   start_element_handler4  s    c             G   sb   |  j  d k o1 |  j |  j j _ |  j |  j j _ d  |  _ n |  j  d |  _  |  j |   d  S(   Ni    i   (   u   _levelu
   _old_startu   _builderu   _parseru   StartElementHandleru   _old_endu   EndElementHandleru   None(   u   selfu   args(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   end_element_handler:  s    N(    (   u   __name__u
   __module__u	   __slots__u   start_element_handleru   end_element_handler(   u
   __locals__(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   Skipper1  s   
	u   Skipperu8   http://xml.python.org/entities/fragment-builder/internalu   <!DOCTYPE wrapper
  %%s [
  <!ENTITY fragment-builder-internal
    SYSTEM "%s">
%%s
]>
<wrapper %%s
>&fragment-builder-internal;</wrapper>c             B   sV   |  Ee  Z d  Z d d  Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d S(	   u   Builder which constructs document fragments given XML source
    text and a context node.

    The context node is expected to provide information about the
    namespace declarations which are in scope at the start of the
    fragment.
    c             C   sO   | j  t k o | |  _ | |  _ n | j |  _ | |  _ t j |  |  d  S(   N(   u   nodeTypeu   DOCUMENT_NODEu   originalDocumentu   contextu   ownerDocumentu   ExpatBuilderu   __init__(   u   selfu   contextu   options(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   __init__b  s    		c             C   s   t  j |   d  |  _ d  S(   N(   u   ExpatBuilderu   resetu   Noneu   fragment(   u   self(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   resetk  s    c             C   s   |  j  | j    S(   uR   Parse a document fragment from a file object, returning the
        fragment node.(   u   parseStringu   read(   u   selfu   file(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu	   parseFileo  s    c       	   	   C   s   | |  _  |  j   } |  j j } d } | oY | j p
 |  j   } | j o d | j | j f } q | j o d | j } q n d } |  j   } t	 | | | f } y | j
 | d  Wn |  j     Yn X|  j } |  j   | S(   uM   Parse a document fragment from a string, returning the
        fragment node.u    u   PUBLIC "%s" "%s"u   SYSTEM "%s"i   (   u   _sourceu	   getParseru   originalDocumentu   doctypeu   internalSubsetu   _getDeclarationsu   publicIdu   systemIdu   _getNSattrsu   _FRAGMENT_BUILDER_TEMPLATEu   Parseu   resetu   fragment(	   u   selfu   stringu   parseru   doctypeu   identu   subsetu   nsattrsu   documentu   fragment(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   parseStringt  s,    	


	
c             C   s  |  j  j j } d } | oux t | j j  D]z } | j j |  } | o | d } n d | | j f } | j o d | | j | j	 f } q/ d | | j	 f } q/ Wx t | j
 j  D] } | j
 j |  } | o | d } n d | | j f } | j o d | | j | j	 f } n8 | j	 o d | | j	 f } n d	 | | j j f } | j o d
 | | j f } n | d } q Wn | S(   u   Re-create the internal subset from the DocumentType node.

        This is only needed if we don't already have the
        internalSubset as a string.
        u    u   
  u   %s<!NOTATION %su!   %s PUBLIC "%s"
             "%s">u   %s SYSTEM "%s">u   %s<!ENTITY %su    %s PUBLIC "%s"
             "%s"u   %s SYSTEM "%s"u   %s "%s"u   %s NOTATION %su   >(   u   contextu   ownerDocumentu   doctypeu   rangeu	   notationsu   lengthu   itemu   nodeNameu   publicIdu   systemIdu   entitiesu
   firstChildu   datau   notationName(   u   selfu   doctypeu   su   iu   notationu   entity(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   _getDeclarations  s:     
 


c             C   s   d S(   Nu    (    (   u   self(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   _getNSattrs  s    c          	   C   s   | t  k o |  j } |  j } |  j j |  } |  j |  _ |  j j   |  _ |  j |  _ z | j |  j	 d  Wd  | |  _ | |  _ d  |  _	 Xd St j |  | | | |  Sd  S(   Ni   i(   u$   _FRAGMENT_BUILDER_INTERNAL_SYSTEM_IDu   documentu   curNodeu   _parseru   ExternalEntityParserCreateu   originalDocumentu   createDocumentFragmentu   fragmentu   Parseu   _sourceu   Noneu   ExpatBuilderu   external_entity_ref_handler(   u   selfu   contextu   baseu   systemIdu   publicIdu   old_documentu   old_cur_nodeu   parser(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   external_entity_ref_handler  s    				
N(   u   __name__u
   __module__u   __doc__u   Noneu   __init__u   resetu	   parseFileu   parseStringu   _getDeclarationsu   _getNSattrsu   external_entity_ref_handler(   u
   __locals__(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   FragmentBuilderY  s   
					$	u   FragmentBuilderc             B   sJ   |  Ee  Z d  Z d   Z d   Z d   Z d   Z d   Z d   Z d S(   u7   Mix-in class for builders; adds support for namespaces.c             C   s   g  |  _  d  S(   N(   u   _ns_ordered_prefixes(   u   self(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   _initNamespaces  s    c             C   s   t  j d d  } d | _ | S(   u'   Create a new namespace-handling parser.u   namespace_separatoru    T(   u   expatu   ParserCreateu   Trueu   namespace_prefixes(   u   selfu   parser(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   createParser  s    	c             C   s1   t  j |  |  |  j j o |  j | _ n d S(   u.   Insert the namespace-handlers onto the parser.N(   u   ExpatBuilderu   installu   _optionsu   namespace_declarationsu   start_namespace_decl_handleru   StartNamespaceDeclHandler(   u   selfu   parser(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   install  s    c             C   s   |  j  j | | f  d S(   u/   Push this namespace declaration on our storage.N(   u   _ns_ordered_prefixesu   append(   u   selfu   prefixu   uri(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   start_namespace_decl_handler  s    c             C   s  d | k o t  |  |  \ } } } } n t } | } d  } t } t j | | | |  } |  j | _ t |  j	 |  | |  _	 |  j
 o x |  j
 D] \ } } | o) t j t |  d |  t | d  } n t j d t d t  } | j d j }	 | |	 d <|	 d <| j }	 | |	 d <|	 d <|  j |	 d <t | |  q W|  j
 d  d   =n | o5| j }
 | j } x t d t |  d	  D]} | | } | | d
 } d | k oQ t  |  |  \ } } } } t j | | | |  } | |
 | <| | | | f <n3 t j | t | t  } | |
 | <| | t | f <| j d j }	 | |	 d <|	 d <| j }	 |  j |	 d <| |	 d <|	 d <| |	 d <qWn d  S(   Nu    u   xmlns:u   xmlnsi    u   datau	   nodeValueu   valueu   ownerDocumenti   i   u   ownerElement(   u   _parse_ns_nameu   EMPTY_NAMESPACEu   Noneu   EMPTY_PREFIXu   minidomu   Elementu   documentu   ownerDocumentu   _append_childu   curNodeu   _ns_ordered_prefixesu   Attru   _internu   XMLNS_NAMESPACEu
   childNodesu   __dict__u   _set_attribute_nodeu   _attrsu   _attrsNSu   rangeu   len(   u   selfu   nameu
   attributesu   uriu	   localnameu   prefixu   qnameu   nodeu   au   du   _attrsu   _attrsNSu   iu   anameu   value(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   start_element_handler  s^    	

 			 


	c             C   s   |  j  } d | k o\ t |  |  \ } } } } | j | k o  | j | k o | j | k p t d   n; | j | k p t d   | j t k p t d   | j |  _  |  j	 |  d  S(   Nu    u$   element stack messed up! (namespace)u&   element stack messed up - bad nodeNameu*   element stack messed up - bad namespaceURI(
   u   curNodeu   _parse_ns_nameu   namespaceURIu	   localNameu   prefixu   AssertionErroru   nodeNameu   EMPTY_NAMESPACEu
   parentNodeu   _finish_end_element(   u   selfu   nameu   curNodeu   uriu	   localnameu   prefixu   qname(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   end_element_handler!  s    	

N(	   u   __name__u
   __module__u   __doc__u   _initNamespacesu   createParseru   installu   start_namespace_decl_handleru   start_element_handleru   end_element_handler(   u
   __locals__(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu
   Namespaces  s   
					:u
   Namespacesc             B   s   |  Ee  Z d  Z d   Z d S(   u*   Document builder that supports namespaces.c             C   s   t  j |   |  j   d  S(   N(   u   ExpatBuilderu   resetu   _initNamespaces(   u   self(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   reset5  s    N(   u   __name__u
   __module__u   __doc__u   reset(   u
   __locals__(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   ExpatBuilderNS2  s   
u   ExpatBuilderNSc             B   s&   |  Ee  Z d  Z d   Z d   Z d S(   u*   Fragment builder that supports namespaces.c             C   s   t  j |   |  j   d  S(   N(   u   FragmentBuilderu   resetu   _initNamespaces(   u   self(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   reset=  s    c             C   s   d } |  j  } g  } x | o t | d  o x | j j   D]v \ } } | | k o q? n | j |  | o d | } n d } | o d | | | f } q? d | | f } q? Wn | j } q W| S(   uN   Return string of namespace attributes from this element and
        ancestors.u    u   _ns_prefix_uriu   xmlns:u   xmlnsu   %s
    %s='%s'u    %s='%s'(   u   contextu   hasattru   _ns_prefix_uriu   itemsu   appendu
   parentNode(   u   selfu   attrsu   contextu   Lu   prefixu   uriu   declname(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   _getNSattrsA  s&    	  N(   u   __name__u
   __module__u   __doc__u   resetu   _getNSattrs(   u
   __locals__(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   FragmentBuilderNS:  s   
	u   FragmentBuilderNSc             B   s   |  Ee  Z d  Z d S(   uE   Exception raised to short-circuit parsing in InternalSubsetExtractor.N(   u   __name__u
   __module__u   __doc__(   u
   __locals__(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   ParseEscape_  s   
u   ParseEscapec             B   sY   |  Ee  Z d  Z d Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d S(	   uB   XML processor which can rip out the internal document type subset.c             C   s   |  j  S(   u'   Return the internal subset as a string.(   u   subset(   u   self(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu	   getSubseth  s    c          	   C   s/   y t  j |  |  Wn t k
 o Yn Xd  S(   N(   u   ExpatBuilderu	   parseFileu   ParseEscape(   u   selfu   file(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu	   parseFilel  s    c          	   C   s/   y t  j |  |  Wn t k
 o Yn Xd  S(   N(   u   ExpatBuilderu   parseStringu   ParseEscape(   u   selfu   string(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   parseStringr  s    c             C   s   |  j  | _ |  j | _ d  S(   N(   u   start_doctype_decl_handleru   StartDoctypeDeclHandleru   start_element_handleru   StartElementHandler(   u   selfu   parser(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   installx  s    c             C   sH   | o4 |  j    } g  |  _ |  j j | _ |  j | _ n
 t    d  S(   N(   u	   getParseru   subsetu   appendu   DefaultHandleru   end_doctype_decl_handleru   EndDoctypeDeclHandleru   ParseEscape(   u   selfu   nameu   publicIdu   systemIdu   has_internal_subsetu   parser(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   start_doctype_decl_handler|  s    	c             C   s@   d j  |  j  j d d  j d d  } | |  _ t    d  S(   Nu    u   
u   
u   (   u   joinu   subsetu   replaceu   ParseEscape(   u   selfu   s(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   end_doctype_decl_handler  s    *	c             C   s   t     d  S(   N(   u   ParseEscape(   u   selfu   nameu   attrs(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   start_element_handler  s    N(   u   __name__u
   __module__u   __doc__u   Noneu   subsetu	   getSubsetu	   parseFileu   parseStringu   installu   start_doctype_decl_handleru   end_doctype_decl_handleru   start_element_handler(   u
   __locals__(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   InternalSubsetExtractorc  s   
					
	u   InternalSubsetExtractorc             C   st   | o t    } n
 t   } t |  t  o4 t |  d  } z | j |  } Wd | j   Xn | j |   } | S(   u{   Parse a document, returning the resulting Document node.

    'file' may be either a file name or an open file object.
    u   rbN(   u   ExpatBuilderNSu   ExpatBuilderu
   isinstanceu   stru   openu	   parseFileu   close(   u   fileu
   namespacesu   builderu   fpu   result(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   parse  s    	c             C   s*   | o t    } n
 t   } | j |   S(   uO   Parse a document from a string, returning the resulting
    Document node.
    (   u   ExpatBuilderNSu   ExpatBuilderu   parseString(   u   stringu
   namespacesu   builder(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   parseString  s    	c             C   sz   | o t  |  } n t |  } t |  t  o4 t |  d  } z | j |  } Wd | j   Xn | j |   } | S(   u   Parse a fragment of a document, given the context from which it
    was originally extracted.  context should be the parent of the
    node(s) which are in the fragment.

    'file' may be either a file name or an open file object.
    u   rbN(   u   FragmentBuilderNSu   FragmentBuilderu
   isinstanceu   stru   openu	   parseFileu   close(   u   fileu   contextu
   namespacesu   builderu   fpu   result(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   parseFragment  s    c             C   s0   | o t  |  } n t |  } | j |   S(   u   Parse a fragment of a document from a string, given the context
    from which it was originally extracted.  context should be the
    parent of the node(s) which are in the fragment.
    (   u   FragmentBuilderNSu   FragmentBuilderu   parseString(   u   stringu   contextu
   namespacesu   builder(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   parseFragmentString  s    c             C   s#   |  j  o t |   St |   Sd S(   u,   Create a builder based on an Options object.N(   u
   namespacesu   ExpatBuilderNSu   ExpatBuilder(   u   options(    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   makeBuilder  s    
N(6   u   __doc__u   xml.domu
   xmlbuilderu   minidomu   Nodeu   EMPTY_NAMESPACEu   EMPTY_PREFIXu   XMLNS_NAMESPACEu   xml.parsersu   expatu   xml.dom.minidomu   _append_childu   _set_attribute_nodeu   xml.dom.NodeFilteru
   NodeFilteru   xml.dom.minicompatu	   TEXT_NODEu   CDATA_SECTION_NODEu   DOCUMENT_NODEu   DOMBuilderFilteru   FILTER_ACCEPTu   FILTER_REJECTu   FILTER_SKIPu   FILTER_INTERRUPTu   getDOMImplementationu   theDOMImplementationu   TypeInfou   Noneu   _typeinfo_mapu   objectu   ElementInfou   _internu   _parse_ns_nameu   ExpatBuilderu   _ALLOWED_FILTER_RETURNSu   FilterVisibilityControlleru   FilterCrutchu   Rejecteru   Skipperu$   _FRAGMENT_BUILDER_INTERNAL_SYSTEM_IDu   _FRAGMENT_BUILDER_TEMPLATEu   FragmentBuilderu
   Namespacesu   ExpatBuilderNSu   FragmentBuilderNSu	   Exceptionu   ParseEscapeu   InternalSubsetExtractoru   Trueu   parseu   parseStringu   parseFragmentu   parseFragmentStringu   makeBuilder(    (    (    u1   /mit/python/lib/python3.0/xml/dom/expatbuilder.pyu   <module>   s`   
			3		 I:ud%,