ó
xFWgc           @   s3  d  Z  d Z d d l Td d l m Z m Z d d l m Z d d l m Z m Z d d l m	 Z	 d d l m
 Z
 m Z d d	 l Z e j d
  d k r© e d e ƒ ‚ n  [ y d d l m Z Wn  e k
 râ e d e ƒ ‚ n# Xe e d ƒ re d e ƒ ‚ n  d d l m Z m Z m Z e j Z e j Z y d d	 l Z Wn e k
 r_d „  Z n Xd d	 l Z e j Z [ [ d f  d „  ƒ  YZ d e j f d „  ƒ  YZ  d e j! e j f d „  ƒ  YZ" d „  Z# e$ d k r/d d	 l% Z& e# ƒ  Z' e' j( e& j) j j* ƒ  ƒ e' j+ e& j) j, ƒ  ƒ e' j- d ƒ n  d	 S(   s]   
SAX driver for the pyexpat C module.  This driver works with
pyexpat.__version__ == '2.22'.
s   0.20iÿÿÿÿ(   t   *(   t   feature_validationt   feature_namespaces(   t   feature_namespace_prefixes(   t   feature_external_gest   feature_external_pes(   t   feature_string_interning(   t   property_xml_stringt   property_interning_dictNi   t   javas   expat not available in Java(   t   expats   expat not supportedt   ParserCreate(   t	   xmlreadert   saxutilst   handlerc         C   s   |  S(   N(    (   t   o(    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyt   _mkproxy'   s    t   _ClosedParserc           B   s   e  Z RS(    (   t   __name__t
   __module__(    (    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyR   .   s   t   ExpatLocatorc           B   s;   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   s¼   Locator for use with the ExpatParser class.

    This uses a weak reference to the parser object to avoid creating
    a circular reference between the parser and the content handler.
    c         C   s   t  | ƒ |  _ d  S(   N(   R   t   _ref(   t   selft   parser(    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyt   __init__9   s    c         C   s&   |  j  } | j d  k r d  S| j j S(   N(   R   t   _parsert   Nonet   ErrorColumnNumber(   R   R   (    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyt   getColumnNumber<   s    	c         C   s&   |  j  } | j d  k r d S| j j S(   Ni   (   R   R   R   t   ErrorLineNumber(   R   R   (    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyt   getLineNumberB   s    	c         C   s&   |  j  } | d  k r d  S| j j ƒ  S(   N(   R   R   t   _sourcet   getPublicId(   R   R   (    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyR    H   s    	c         C   s&   |  j  } | d  k r d  S| j j ƒ  S(   N(   R   R   R   t   getSystemId(   R   R   (    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyR!   N   s    	(   R   R   t   __doc__R   R   R   R    R!   (    (    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyR   3   s   				t   ExpatParserc           B   s.  e  Z d  Z d d% d „ Z d „  Z d „  Z d „  Z d	 „  Z d
 „  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 d „  Z d „  Z d  „  Z d! „  Z d" „  Z  d# „  Z! RS(&   s$   SAX driver for the pyexpat C module.i    i   i   i   c         C   se   t  j j |  | ƒ t  j ƒ  |  _ d  |  _ | |  _ d  |  _ d |  _	 g  |  _
 d |  _ d  |  _ d  S(   Ni    i   (   R   t   IncrementalParserR   t   InputSourceR   R   R   t   _namespacest   _lex_handler_propt   _parsingt   _entity_stackt   _external_gest
   _interning(   R   t   namespaceHandlingt   bufsize(    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyR   Z   s    						c         C   sj   t  j | ƒ } | |  _ y7 |  j ƒ  |  j j t |  ƒ ƒ t j j	 |  | ƒ Wn |  j
 ƒ  ‚  n Xd S(   s3   Parse an XML document from a URL or an InputSource.N(   R   t   prepare_input_sourceR   t   resett   _cont_handlert   setDocumentLocatorR   R   R$   t   parset   _close_source(   R   t   source(    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyR2   g   s    	

c         C   sV   | j  ƒ  d  k	 rR | j  ƒ  } t | t ƒ r? | j d ƒ } n  |  j j | ƒ n  d  S(   Ns   utf-8(   R!   R   t
   isinstancet   unicodet   encodeR   t   SetBase(   R   R4   t   base(    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyt   prepareParserw   s
    c         C   s-   t  j j |  | ƒ |  j r) |  j ƒ  n  d  S(   N(   R   R$   t   setContentHandlerR(   t   _reset_cont_handler(   R   R   (    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyR;   €   s    	c         C   sl   | t  k r |  j S| t k r, |  j d  k	 S| t t t f k rE d S| t k rX |  j	 St
 d | ƒ ‚ d  S(   Ni    s   Feature '%s' not recognized(   R   R&   R   R+   R   R   R   R   R   R*   t   SAXNotRecognizedException(   R   t   name(    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyt
   getFeature…   s    	c         C   s  |  j  r t d ƒ ‚ n  | t k r0 | |  _ nÐ | t k rH | |  _ n¸ | t k r„ | rx |  j d  k r i  |  _ q q d  |  _ n| | t	 k r¨ | r t d ƒ ‚ q nX | t
 k rÌ | r t d ƒ ‚ q n4 | t k rð | r t d ƒ ‚ q n t d | ƒ ‚ d  S(   Ns!   Cannot set features while parsings!   expat does not support validations/   expat does not read external parameter entitiess(   expat does not report namespace prefixess   Feature '%s' not recognized(   R(   t   SAXNotSupportedExceptionR   R&   R   R*   R   R+   R   R   R   R   R=   (   R   R>   t   state(    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyt
   setFeature‘   s2    	c         C   s   | t  j k r |  j S| t k r) |  j S| t k r{ |  j rl t |  j d ƒ r] |  j j ƒ  St	 d ƒ ‚ q{ t
 d ƒ ‚ n  t	 d | ƒ ‚ d  S(   Nt   GetInputContexts=   This version of expat does not support getting the XML strings.   XML string cannot be returned when not parsings   Property '%s' not recognized(   R   t   property_lexical_handlerR'   R   R+   R   R   t   hasattrRC   R=   R@   (   R   R>   (    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyt   getProperty¯   s    	c         C   s|   | t  j k r1 | |  _ |  j rx |  j ƒ  qx nG | t k rI | |  _ n/ | t k rh t d | ƒ ‚ n t	 d | ƒ ‚ d  S(   Ns   Property '%s' cannot be sets   Property '%s' not recognized(
   R   RD   R'   R(   t   _reset_lex_handler_propR   R+   R   R@   R=   (   R   R>   t   value(    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyt   setPropertyÁ   s    		c         C   sŽ   |  j  s, |  j ƒ  d |  _  |  j j ƒ  n  y |  j j | | ƒ WnD t j k
 r‰ } t t j	 | j
 ƒ | |  ƒ } |  j j | ƒ n Xd  S(   Ni   (   R(   R/   R0   t   startDocumentR   t   ParseR
   t   errort   SAXParseExceptiont   ErrorStringt   codet   _err_handlert
   fatalError(   R   t   datat   isFinalt   et   exc(    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyt   feedÑ   s    	
	c         C   s_   |  j  } z) | j ƒ  } | d  k	 r1 | j ƒ  n  Wd  | j ƒ  } | d  k	 rZ | j ƒ  n  Xd  S(   N(   R   t   getCharacterStreamR   t   closet   getByteStream(   R   R4   t   file(    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyR3   â   s    	c         C   sÁ   |  j  s* |  j d  k s* t |  j t ƒ r. d  Sz6 |  j d d d ƒ|  j j ƒ  d |  _ d  |  _ Wd  d |  _ |  j d  k	 r² t ƒ  } |  j j	 | _	 |  j j
 | _
 | |  _ n  |  j ƒ  Xd  S(   Nt    RS   i   i    (   R)   R   R   R5   R   RV   R0   t   endDocumentR(   R   R   R3   (   R   R   (    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyRX   í   s    			c         C   s(   |  j  j |  j _ |  j  j |  j _ d  S(   N(   R0   t   processingInstructionR   t   ProcessingInstructionHandlert
   characterst   CharacterDataHandler(   R   (    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyR<     s    c         C   sŽ   |  j  } |  j } | d  k rN d  | _ d  | _ d  | _ d  | _ d  | _ n< | j | _ | j	 | _ | j
 | _ |  j | _ | j | _ d  S(   N(   R'   R   R   t   CommentHandlert   StartCdataSectionHandlert   EndCdataSectionHandlert   StartDoctypeDeclHandlert   EndDoctypeDeclHandlert   commentt
   startCDATAt   endCDATAt   start_doctype_declt   endDTD(   R   t   lexR   (    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyRG     s    						c         C   sc  |  j  r] t j |  j j ƒ  d d |  j ƒ|  _ d |  j _ |  j |  j _	 |  j
 |  j _ nB t j |  j j ƒ  d |  j ƒ|  _ |  j |  j _	 |  j |  j _ |  j ƒ  |  j |  j _ |  j |  j _ |  j |  j _ |  j |  j _ d  |  _ |  j r|  j ƒ  n  |  j |  j _ y |  j |  j _ Wn t k
 r9n X|  j j  t j! ƒ d |  _" g  |  _# d  S(   Nt    t   interni   i    ($   R&   R
   R   R   t   getEncodingR+   R   t   namespace_prefixest   start_element_nst   StartElementHandlert   end_element_nst   EndElementHandlert   start_elementt   end_elementR<   t   unparsed_entity_declt   UnparsedEntityDeclHandlert   notation_declt   NotationDeclHandlert   start_namespace_declt   StartNamespaceDeclHandlert   end_namespace_declt   EndNamespaceDeclHandlerR   t   _decl_handler_propR'   RG   t   external_entity_reft   ExternalEntityRefHandlert   skipped_entity_handlert   SkippedEntityHandlert   AttributeErrort   SetParamEntityParsingt*   XML_PARAM_ENTITY_PARSING_UNLESS_STANDALONER(   R)   (   R   (    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyR/     s6    	
			
	c         C   s   |  j  d  k r d  S|  j  j S(   N(   R   R   R   (   R   (    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyR   >  s    c         C   s   |  j  d  k r d S|  j  j S(   Ni   (   R   R   R   (   R   (    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyR   C  s    c         C   s   |  j  j ƒ  S(   N(   R   R    (   R   (    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyR    H  s    c         C   s   |  j  j ƒ  S(   N(   R   R!   (   R   (    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyR!   K  s    c         C   s   |  j  j | t | ƒ ƒ d  S(   N(   R0   t   startElementt   AttributesImpl(   R   R>   t   attrs(    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyRt   O  s    c         C   s   |  j  j | ƒ d  S(   N(   R0   t
   endElement(   R   R>   (    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyRu   R  s    c         C   sL  | j  ƒ  } t | ƒ d k r- d  | f } n5 t | ƒ d k rV | d | d f } n t | ƒ } i  } i  } x¸ | j ƒ  D]ª \ } } | j  ƒ  } t | ƒ }	 |	 d k rÀ | }
 d  | f } nQ |	 d k rû d | d | d f }
 | d | d f } n | d }
 t | ƒ } | | | <|
 | | <q{ W|  j j | d  t | | ƒ ƒ d  S(   Ni   i   i    s   %s:%si   (   t   splitt   lenR   t   tuplet   itemsR0   t   startElementNSt   AttributesNSImpl(   R   R>   Rˆ   t   pairt   newattrst   qnamest   anameRH   t   partst   lengtht   qnamet   apair(    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyRp   U  s.    

c         C   sy   | j  ƒ  } t | ƒ d k r- d  | f } n5 t | ƒ d k rV | d | d f } n t | ƒ } |  j j | d  ƒ d  S(   Ni   i   i    (   RŠ   R‹   R   RŒ   R0   t   endElementNS(   R   R>   R   (    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyRr   w  s    c         C   s   |  j  j | | ƒ d  S(   N(   R0   R]   (   R   t   targetRR   (    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyt   processing_instructionƒ  s    c         C   s   |  j  j | ƒ d  S(   N(   R0   R_   (   R   RR   (    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyt   character_data‡  s    c         C   s   |  j  j | | ƒ d  S(   N(   R0   t   startPrefixMapping(   R   t   prefixt   uri(    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyRz   Š  s    c         C   s   |  j  j | ƒ d  S(   N(   R0   t   endPrefixMapping(   R   R   (    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyR|     s    c         C   s   |  j  j | | | ƒ d  S(   N(   R'   t   startDTD(   R   R>   t   sysidt   pubidt   has_internal_subset(    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyRi     s    c         C   s   |  j  j | | | | ƒ d  S(   N(   t   _dtd_handlert   unparsedEntityDecl(   R   R>   R9   R¡   R¢   t   notation_name(    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyRv   “  s    c         C   s   |  j  j | | | ƒ d  S(   N(   R¤   t   notationDecl(   R   R>   R9   R¡   R¢   (    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyRx   –  s    c         C   sÆ   |  j  s d S|  j j | | ƒ } t j | |  j j ƒ  p= d ƒ } |  j j |  j	 |  j f ƒ |  j	 j
 | ƒ |  _	 | |  _ y t j j |  | ƒ Wn d SX|  j d \ |  _	 |  _ |  j d =d S(   Ni   R[   i    iÿÿÿÿ(   R*   t   _ent_handlert   resolveEntityR   R.   R   R!   R)   t   appendR   t   ExternalEntityParserCreateR   R$   R2   (   R   t   contextR9   R¡   R¢   R4   (    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyR   ™  s     				
c         C   s'   | r d | } n  |  j  j | ƒ d  S(   Nt   %(   R0   t   skippedEntity(   R   R>   t   is_pe(    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyR   ¯  s    i   iìÿ  ("   R   R   R"   R   R2   R:   R;   R?   RB   RF   RI   RV   R3   RX   R<   RG   R/   R   R   R    R!   Rt   Ru   Rp   Rr   Rš   R›   Rz   R|   Ri   Rv   Rx   R   R   (    (    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyR#   W   s@   													'							"									c          O   s   t  |  | Ž  S(   N(   R#   (   t   argst   kwargs(    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyt   create_parser·  s    t   __main__s:   http://www.ibiblio.org/xml/examples/shakespeare/hamlet.xml(.   R"   t   versiont   xml.sax._exceptionst   xml.sax.handlerR   R   R   R   R   R   R   R   t   syst   platformt   SAXReaderNotAvailableR   t   xml.parsersR
   t   ImportErrorRE   t   xml.saxR   R   R   R‡   R   t   _weakrefR   t   weakreft   proxyR   t   LocatorR   R$   R#   R²   R   t   xml.sax.saxutilst   xmlt   pR;   t   saxt   XMLGeneratort   setErrorHandlert   ErrorHandlerR2   (    (    (    s)   /usr/lib/python2.7/xml/sax/expatreader.pyt   <module>   sL   
			$ÿ a		