;
"Ic               @   s   d  Z  d d l Z d d l Z d d l Z d d l m Z d d l m Z y d d l m	 Z	 d Z
 [	 Wn e k
 o d Z
 Yn Xd	   Z i  d
  Z i  d  Z i  d  Z Gd   d e j  Z Gd   d e j  Z d d  Z d S(   un   A library of useful helper classes to the SAX classes, for the
convenience of application and driver writers.
i    Ni   (   u   handler(   u	   xmlreader(   u   xmlcharrefreplace_errorsu   xmlcharrefreplaceu   strictc             C   s3   x, | j    D] \ } } |  j | |  }  q W|  S(   u2   Replace substrings of a string using a dictionary.(   u   itemsu   replace(   u   su   du   keyu   value(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu   __dict_replace   s     c             C   sT   |  j  d d  }  |  j  d d  }  |  j  d d  }  | o t |  |  }  n |  S(   u   Escape &, <, and > in a string of data.

    You can escape other strings of data by passing a dictionary as
    the optional entities parameter.  The keys and values must all be
    strings; each key will be replaced with its corresponding value.
    u   &u   &amp;u   >u   &gt;u   <u   &lt;(   u   replaceu   __dict_replace(   u   datau   entities(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu   escape   s    	c             C   sN   |  j  d d  }  |  j  d d  }  | o t |  |  }  n |  j  d d  S(   u
  Unescape &amp;, &lt;, and &gt; in a string of data.

    You can unescape other strings of data by passing a dictionary as
    the optional entities parameter.  The keys and values must all be
    strings; each key will be replaced with its corresponding value.
    u   &lt;u   <u   &gt;u   >u   &amp;u   &(   u   replaceu   __dict_replace(   u   datau   entities(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu   unescape)   s
    c             C   s   | j    } | j i d d 6d d 6d d 6 t |  |  }  d |  k o5 d |  k o d	 |  j d d
  }  q d |  }  n d	 |  }  |  S(   u  Escape and quote an attribute value.

    Escape &, <, and > in a string of data, then quote it for use as
    an attribute value.  The " character will be escaped as well, if
    necessary.

    You can escape other strings of data by passing a dictionary as
    the optional entities parameter.  The keys and values must all be
    strings; each key will be replaced with its corresponding value.
    u   &#10;u   
u   &#13;u   u   &#9;u   	u   "u   'u   "%s"u   &quot;u   '%s'(   u   copyu   updateu   escapeu   replace(   u   datau   entities(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu	   quoteattr7   s    "
c             B   s   |  Ee  Z d 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 S(   u
   iso-8859-1c             C   sq   | d  k o d d  l } | j } n t j j |   | |  _ i  g |  _ |  j d |  _ g  |  _	 | |  _
 d  S(   Ni    i(   u   Noneu   sysu   stdoutu   handleru   ContentHandleru   __init__u   _outu   _ns_contextsu   _current_contextu   _undeclared_ns_mapsu	   _encoding(   u   selfu   outu   encodingu   sys(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu   __init__Q   s    		c             C   sG   t  | t  o |  j j |  n  |  j j | j |  j t   d  S(   N(   u
   isinstanceu   stru   _outu   writeu   encodeu	   _encodingu   _error_handling(   u   selfu   text(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu   _write\   s    c             C   s@   | d o- |  j  | d } | o | d | d Sn | d S(   u7   Builds a qualified name from a (ns_url, localname) pairi    u   :i   (   u   _current_context(   u   selfu   nameu   prefix(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu   _qnameb   s
    c             C   s   |  j  d |  j  d  S(   Nu$   <?xml version="1.0" encoding="%s"?>
(   u   _writeu	   _encoding(   u   self(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu   startDocumento   s    	c             C   s@   |  j  j |  j j    | |  j | <|  j j | | f  d  S(   N(   u   _ns_contextsu   appendu   _current_contextu   copyu   _undeclared_ns_maps(   u   selfu   prefixu   uri(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu   startPrefixMappings   s    c             C   s   |  j  d |  _ |  j  d =d  S(   Ni(   u   _ns_contextsu   _current_context(   u   selfu   prefix(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu   endPrefixMappingx   s    c             C   s\   |  j  d |  x7 | j   D]) \ } } |  j  d | t |  f  q W|  j  d  d  S(   Nu   <u    %s=%su   >(   u   _writeu   itemsu	   quoteattr(   u   selfu   nameu   attrsu   value(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu   startElement|   s
     !c             C   s   |  j  d |  d  S(   Nu   </%s>(   u   _write(   u   selfu   name(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu
   endElement   s    c             C   s   |  j  d |  j |   xP |  j D]E \ } } | o |  j j d | | f  q$ |  j j d |  q$ Wg  |  _ x@ | j   D]2 \ } } |  j  d |  j |  t |  f  q W|  j  d  d  S(   Nu   <u    xmlns:%s="%s"u    xmlns="%s"u    %s=%su   >(   u   _writeu   _qnameu   _undeclared_ns_mapsu   _outu   writeu   itemsu	   quoteattr(   u   selfu   nameu   qnameu   attrsu   prefixu   uriu   value(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu   startElementNS   s    
 	 *c             C   s   |  j  d |  j |   d  S(   Nu   </%s>(   u   _writeu   _qname(   u   selfu   nameu   qname(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu   endElementNS   s    c             C   s   |  j  t |   d  S(   N(   u   _writeu   escape(   u   selfu   content(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu
   characters   s    c             C   s   |  j  |  d  S(   N(   u   _write(   u   selfu   content(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu   ignorableWhitespace   s    c             C   s   |  j  d | | f  d  S(   Nu	   <?%s %s?>(   u   _write(   u   selfu   targetu   data(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu   processingInstruction   s    N(   u   __name__u
   __module__u   Noneu   __init__u   _writeu   _qnameu   startDocumentu   startPrefixMappingu   endPrefixMappingu   startElementu
   endElementu   startElementNSu   endElementNSu
   charactersu   ignorableWhitespaceu   processingInstruction(   u
   __locals__(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu   XMLGeneratorO   s   
											u   XMLGeneratorc             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(   uY  This class is designed to sit between an XMLReader and the
    client application's event handlers.  By default, it does nothing
    but pass requests up to the reader and events on to the handlers
    unmodified, but subclasses can override specific methods to modify
    the event stream or the configuration requests as they pass
    through.c             C   s   t  j j |   | |  _ d  S(   N(   u	   xmlreaderu	   XMLReaderu   __init__u   _parent(   u   selfu   parent(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu   __init__   s    c             C   s   |  j  j |  d  S(   N(   u   _err_handleru   error(   u   selfu	   exception(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu   error   s    c             C   s   |  j  j |  d  S(   N(   u   _err_handleru
   fatalError(   u   selfu	   exception(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu
   fatalError   s    c             C   s   |  j  j |  d  S(   N(   u   _err_handleru   warning(   u   selfu	   exception(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu   warning   s    c             C   s   |  j  j |  d  S(   N(   u   _cont_handleru   setDocumentLocator(   u   selfu   locator(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu   setDocumentLocator   s    c             C   s   |  j  j   d  S(   N(   u   _cont_handleru   startDocument(   u   self(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu   startDocument   s    c             C   s   |  j  j   d  S(   N(   u   _cont_handleru   endDocument(   u   self(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu   endDocument   s    c             C   s   |  j  j | |  d  S(   N(   u   _cont_handleru   startPrefixMapping(   u   selfu   prefixu   uri(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu   startPrefixMapping   s    c             C   s   |  j  j |  d  S(   N(   u   _cont_handleru   endPrefixMapping(   u   selfu   prefix(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu   endPrefixMapping   s    c             C   s   |  j  j | |  d  S(   N(   u   _cont_handleru   startElement(   u   selfu   nameu   attrs(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu   startElement   s    c             C   s   |  j  j |  d  S(   N(   u   _cont_handleru
   endElement(   u   selfu   name(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu
   endElement   s    c             C   s   |  j  j | | |  d  S(   N(   u   _cont_handleru   startElementNS(   u   selfu   nameu   qnameu   attrs(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu   startElementNS   s    c             C   s   |  j  j | |  d  S(   N(   u   _cont_handleru   endElementNS(   u   selfu   nameu   qname(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu   endElementNS   s    c             C   s   |  j  j |  d  S(   N(   u   _cont_handleru
   characters(   u   selfu   content(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu
   characters   s    c             C   s   |  j  j |  d  S(   N(   u   _cont_handleru   ignorableWhitespace(   u   selfu   chars(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu   ignorableWhitespace   s    c             C   s   |  j  j | |  d  S(   N(   u   _cont_handleru   processingInstruction(   u   selfu   targetu   data(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu   processingInstruction   s    c             C   s   |  j  j |  d  S(   N(   u   _cont_handleru   skippedEntity(   u   selfu   name(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu   skippedEntity   s    c             C   s   |  j  j | | |  d  S(   N(   u   _dtd_handleru   notationDecl(   u   selfu   nameu   publicIdu   systemId(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu   notationDecl   s    c             C   s   |  j  j | | | |  d  S(   N(   u   _dtd_handleru   unparsedEntityDecl(   u   selfu   nameu   publicIdu   systemIdu   ndata(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu   unparsedEntityDecl   s    c             C   s   |  j  j | |  S(   N(   u   _ent_handleru   resolveEntity(   u   selfu   publicIdu   systemId(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu   resolveEntity   s    c             C   sT   |  j  j |   |  j  j |   |  j  j |   |  j  j |   |  j  j |  d  S(   N(   u   _parentu   setContentHandleru   setErrorHandleru   setEntityResolveru   setDTDHandleru   parse(   u   selfu   source(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu   parse   s
    c             C   s   |  j  j |  d  S(   N(   u   _parentu	   setLocale(   u   selfu   locale(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu	   setLocale   s    c             C   s   |  j  j |  S(   N(   u   _parentu
   getFeature(   u   selfu   name(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu
   getFeature   s    c             C   s   |  j  j | |  d  S(   N(   u   _parentu
   setFeature(   u   selfu   nameu   state(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu
   setFeature   s    c             C   s   |  j  j |  S(   N(   u   _parentu   getProperty(   u   selfu   name(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu   getProperty   s    c             C   s   |  j  j | |  d  S(   N(   u   _parentu   setProperty(   u   selfu   nameu   value(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu   setProperty  s    c             C   s   |  j  S(   N(   u   _parent(   u   self(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu	   getParent  s    c             C   s   | |  _  d  S(   N(   u   _parent(   u   selfu   parent(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu	   setParent
  s    N(    u   __name__u
   __module__u   __doc__u   Noneu   __init__u   erroru
   fatalErroru   warningu   setDocumentLocatoru   startDocumentu   endDocumentu   startPrefixMappingu   endPrefixMappingu   startElementu
   endElementu   startElementNSu   endElementNSu
   charactersu   ignorableWhitespaceu   processingInstructionu   skippedEntityu   notationDeclu   unparsedEntityDeclu   resolveEntityu   parseu	   setLocaleu
   getFeatureu
   setFeatureu   getPropertyu   setPropertyu	   getParentu	   setParent(   u
   __locals__(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu   XMLFilterBase   s:   
																										u   XMLFilterBaseu    c             C   sH  t  |  t  o t j |   }  nX t |  d  oG |  } t j   }  |  j |  t | d  o |  j | j  qz n |  j   d k o |  j
   } t j j t j j |   } t j j | |  } t j j |  o  |  j |  t | d  } n5 |  j t j j | |   t j j |  j
    } |  j |  n |  S(   u   This function takes an InputSource and an optional base URL and
    returns a fully resolved InputSource object ready for reading.u   readu   nameu   rbN(   u
   isinstanceu   stru	   xmlreaderu   InputSourceu   hasattru   setByteStreamu   setSystemIdu   nameu   getByteStreamu   Noneu   getSystemIdu   osu   pathu   dirnameu   normpathu   joinu   isfileu   openu   urllibu   parseu   urljoinu   requestu   urlopen(   u   sourceu   baseu   fu   sysidu   baseheadu   sysidfilename(    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu   prepare_input_source  s&    (   u   __doc__u   osu   urllib.parseu   urllibu   urllib.requestu    u   handleru	   xmlreaderu   codecsu   xmlcharrefreplace_errorsu   _error_handlingu   ImportErroru   __dict_replaceu   escapeu   unescapeu	   quoteattru   ContentHandleru   XMLGeneratoru	   XMLReaderu   XMLFilterBaseu   prepare_input_source(    (    (    u-   /mit/python/lib/python3.0/xml/sax/saxutils.pyu   <module>   s    $	Qo