£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
B
    YI~dX=                 @   s  d Z ddlT d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	 d
krxedd[yddlmZ W n ek
r   eddY nX eedseddddlmZmZmZ ejZejZyddlZW n ek
r   dd ZY nX ddlZejZ[[G dd dZG dd dejZG dd dejejZ dd Z!e"dkrddl#Z$e! Z%e%&e$j'j(  e%)e$j'*  e%+d dS )z0.20    )*)feature_validationfeature_namespaces)feature_namespace_prefixes)feature_external_gesfeature_external_pes)feature_string_interning)property_xml_stringproperty_interning_dictN   javazexpat not available in Java)expatzexpat not supportedParserCreate)	xmlreadersaxutilshandlerc             C   s   | S )N )or   r   8/opt/alt/python37/lib64/python3.7/xml/sax/expatreader.py_mkproxy'   s    r   c               @   s   e Zd ZdS )_ClosedParserN)__name__
__module____qualname__r   r   r   r   r   .   s   r   c               @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )ExpatLocatorc             C   s   t || _d S )N)r   _ref)selfparserr   r   r   __init__9   s    zExpatLocator.__init__c             C   s   | j }|jd krd S |jjS )N)r   _parserErrorColumnNumber)r   r   r   r   r   getColumnNumber<   s    
zExpatLocator.getColumnNumberc             C   s   | j }|jd krdS |jjS )N   )r   r   ErrorLineNumber)r   r   r   r   r   getLineNumberB   s    
zExpatLocator.getLineNumberc             C   s   | j }|d krd S |j S )N)r   _sourcegetPublicId)r   r   r   r   r   r&   H   s    zExpatLocator.getPublicIdc             C   s   | j }|d krd S |j S )N)r   r%   getSystemId)r   r   r   r   r   r'   N   s    zExpatLocator.getSystemIdN)r   r   r   r   r!   r$   r&   r'   r   r   r   r   r   3   s
   r   c               @   s  e Zd ZdBddZdd Zdd Zd	d
 Zdd Zdd Zdd Z	dd Z
dCddZdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Zd;d< Zd=d> Z d?d@ Z!dAS )DExpatParserr     c             C   sF   t j| | t  | _d | _|| _d | _d| _g | _	d| _
d | _d S )Nr   )r   IncrementalParserr   ZInputSourcer%   r   _namespaces_lex_handler_prop_parsing_entity_stack_external_ges
_interning)r   ZnamespaceHandlingbufsizer   r   r   r   Z   s    
zExpatParser.__init__c             C   sV   t |}|| _y*|   | jt|  tj	| | W n   | 
   Y nX d S )N)r   prepare_input_sourcer%   reset_cont_handlerZsetDocumentLocatorr   r   r*   parse_close_source)r   sourcer   r   r   r5   g   s    
zExpatParser.parsec             C   s    |  d k	r| j|   d S )N)r'   r   ZSetBase)r   r7   r   r   r   prepareParserw   s    zExpatParser.prepareParserc             C   s    t j| | | jr|   d S )N)r   r*   setContentHandlerr-   _reset_cont_handler)r   r   r   r   r   r9   }   s    zExpatParser.setContentHandlerc             C   sP   |t kr| jS |tkr | jd k	S |tttfkr2dS |tkr@| jS t	d| d S )Nr   zFeature '%s' not recognized)
r   r+   r   r0   r   r   r   r   r/   SAXNotRecognizedException)r   namer   r   r   
getFeature   s    
zExpatParser.getFeaturec             C   s   | j rtd|tkr|| _n|tkr.|| _nt|tkrT|rL| jd krRi | _qd | _nN|tkrj|rtdn8|t	kr|rtdn"|t
kr|rtdntd| d S )Nz!Cannot set features while parsingz!expat does not support validationz/expat does not read external parameter entitiesz(expat does not report namespace prefixeszFeature '%s' not recognized)r-   SAXNotSupportedExceptionr   r+   r   r/   r   r0   r   r   r   r;   )r   r<   stater   r   r   
setFeature   s2    
zExpatParser.setFeaturec             C   sd   |t jkr| jS |tkr| jS |tkrT| jrLt| jdrB| j S t	dnt
dt	d| d S )NGetInputContextz=This version of expat does not support getting the XML stringz.XML string cannot be returned when not parsingzProperty '%s' not recognized)r   property_lexical_handlerr,   r
   r0   r	   r   hasattrrA   r;   r>   )r   r<   r   r   r   getProperty   s    

zExpatParser.getPropertyc             C   sV   |t jkr || _| jrR|   n2|tkr0|| _n"|tkrFtd| nt	d| d S )NzProperty '%s' cannot be setzProperty '%s' not recognized)
r   rB   r,   r-   _reset_lex_handler_propr
   r0   r	   r>   r;   )r   r<   valuer   r   r   setProperty   s    


zExpatParser.setPropertyc          
   C   sz   | j s|   d| _ | j  y| j|| W nD tjk
rt } z$tt	|j
|| }| j| W d d }~X Y nX d S )Nr"   )r-   r3   r4   ZstartDocumentr   ZParser   errorZSAXParseExceptionZErrorStringcodeZ_err_handlerZ
fatalError)r   dataisFinaleexcr   r   r   feed   s    
zExpatParser.feedc             C   sB   | j }z| }|d k	r |  W d | }|d k	r<|  X d S )N)r%   ZgetCharacterStreamcloseZgetByteStream)r   r7   filer   r   r   r6      s    zExpatParser._close_sourcec             C   s   | j s| jd kst| jtr d S z(| jddd | j  d| _d | _W d d| _| jd k	rzt }| jj|_| jj	|_	|| _| 
  X d S )N r"   )rK   r   )r.   r   
isinstancer   rN   r4   ZendDocumentr-   r    r#   r6   )r   r   r   r   r   rO      s    




zExpatParser.closec             C   s   | j j| j_| j j| j_d S )N)r4   processingInstructionr   ZProcessingInstructionHandler
charactersZCharacterDataHandler)r   r   r   r   r:      s    zExpatParser._reset_cont_handlerc             C   s`   | j }| j}|d kr4d |_d |_d |_d |_d |_n(|j|_|j|_|j	|_| j
|_|j|_d S )N)r,   r   ZCommentHandlerZStartCdataSectionHandlerZEndCdataSectionHandlerZStartDoctypeDeclHandlerZEndDoctypeDeclHandlercommentZ
startCDATAZendCDATAstart_doctype_declZendDTD)r   Zlexr   r   r   r   rE     s    z#ExpatParser._reset_lex_handler_propc             C   s   | j r>tj| j d| jd| _d| j_| j| j_	| j
| j_n,tj| j | jd| _| j| j_	| j| j_|   | j| j_| j| j_| j| j_| j| j_d | _| jr|   | j| j_y| j| j_W n tk
r   Y nX | jtj  d| _!g | _"d S )N )internr"   r   )#r+   r   r   r%   ZgetEncodingr0   r   Znamespace_prefixesstart_element_nsZStartElementHandlerend_element_nsZEndElementHandlerstart_elementend_elementr:   unparsed_entity_declZUnparsedEntityDeclHandlernotation_declZNotationDeclHandlerstart_namespace_declZStartNamespaceDeclHandlerend_namespace_declZEndNamespaceDeclHandlerZ_decl_handler_propr,   rE   external_entity_refZExternalEntityRefHandlerskipped_entity_handlerZSkippedEntityHandlerAttributeErrorZSetParamEntityParsingZ*XML_PARAM_ENTITY_PARSING_UNLESS_STANDALONEr-   r.   )r   r   r   r   r3     s6    







zExpatParser.resetc             C   s   | j d krd S | j jS )N)r   r    )r   r   r   r   r!   ;  s    
zExpatParser.getColumnNumberc             C   s   | j d krdS | j jS )Nr"   )r   r#   )r   r   r   r   r$   @  s    
zExpatParser.getLineNumberc             C   s
   | j  S )N)r%   r&   )r   r   r   r   r&   E  s    zExpatParser.getPublicIdc             C   s
   | j  S )N)r%   r'   )r   r   r   r   r'   H  s    zExpatParser.getSystemIdc             C   s   | j |t| d S )N)r4   ZstartElementAttributesImpl)r   r<   attrsr   r   r   r[   L  s    zExpatParser.start_elementc             C   s   | j | d S )N)r4   Z
endElement)r   r<   r   r   r   r\   O  s    zExpatParser.end_elementc             C   s   |  }t|dkrd |f}n&t|dkr<|d |d f}nt|}i }i }x| D ]|\}}|  }t|}	|	dkr|}
d |f}n>|	dkrd|d |d f }
|d |d f}n|d }
t|}|||< |
||< qVW | j|d t|| d S )Nr"      r   z%s:%s   )splitlentupleitemsr4   ZstartElementNSAttributesNSImpl)r   r<   re   pairZnewattrsZqnamesZanamerF   partslengthZqnameZapairr   r   r   rY   R  s.    


zExpatParser.start_element_nsc             C   sV   |  }t|dkrd |f}n&t|dkr<|d |d f}nt|}| j|d  d S )Nr"   rf   r   )rh   ri   rj   r4   ZendElementNS)r   r<   rm   r   r   r   rZ   t  s    
zExpatParser.end_element_nsc             C   s   | j || d S )N)r4   rS   )r   targetrJ   r   r   r   processing_instruction  s    z"ExpatParser.processing_instructionc             C   s   | j | d S )N)r4   rT   )r   rJ   r   r   r   character_data  s    zExpatParser.character_datac             C   s   | j || d S )N)r4   ZstartPrefixMapping)r   prefixZurir   r   r   r_     s    z ExpatParser.start_namespace_declc             C   s   | j | d S )N)r4   ZendPrefixMapping)r   rs   r   r   r   r`     s    zExpatParser.end_namespace_declc             C   s   | j ||| d S )N)r,   ZstartDTD)r   r<   sysidpubidZhas_internal_subsetr   r   r   rV     s    zExpatParser.start_doctype_declc             C   s   | j |||| d S )N)_dtd_handlerZunparsedEntityDecl)r   r<   basert   ru   Znotation_namer   r   r   r]     s    z ExpatParser.unparsed_entity_declc             C   s   | j ||| d S )N)rv   ZnotationDecl)r   r<   rw   rt   ru   r   r   r   r^     s    zExpatParser.notation_declc             C   s   | j s
dS | j||}t|| j p*d}| j| j	| jf | j	
|| _	|| _ytj| | W n
   dS | jd \| _	| _| jd= dS )Nr"   rQ   r   )r/   Z_ent_handlerZresolveEntityr   r2   r%   r'   r.   appendr   ZExternalEntityParserCreater   r*   r5   )r   contextrw   rt   ru   r7   r   r   r   ra     s     
zExpatParser.external_entity_refc             C   s   |rd| }| j | d S )N%)r4   ZskippedEntity)r   r<   Zis_per   r   r   rb     s    z"ExpatParser.skipped_entity_handlerN)r   r)   )r   )"r   r   r   r   r5   r8   r9   r=   r@   rD   rG   rN   r6   rO   r:   rE   r3   r!   r$   r&   r'   r[   r\   rY   rZ   rq   rr   r_   r`   rV   r]   r^   ra   rb   r   r   r   r   r(   W   s>   

'"r(   c              O   s
   t | |S )N)r(   )argskwargsr   r   r   create_parser  s    r~   __main__z:http://www.ibiblio.org/xml/examples/shakespeare/hamlet.xml),versionZxml.sax._exceptionsZxml.sax.handlerr   r   r   r   r   r   r	   r
   sysplatformZSAXReaderNotAvailableZxml.parsersr   ImportErrorrC   Zxml.saxr   r   r   rd   rl   _weakrefr   weakrefproxyr   ZLocatorr   r*   r(   r~   r   Zxml.sax.saxutilsZxmlpr9   ZsaxZXMLGeneratorZsetErrorHandlerZErrorHandlerr5   r   r   r   r   <module>   sL   


$  _
