£Á°è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>
a
    XC?hS?                     @   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[zddlmZ W n ey   eddY n0 eedseddddlmZmZmZ ejZejZzddlZW n ey   dd ZY n0 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/python39/lib64/python3.9/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 r   )r   _refselfparserr   r   r   __init__9   s    zExpatLocator.__init__c                 C   s   | j }|jd u rd S |jjS r   )r   _parserErrorColumnNumberr   r   r   r   getColumnNumber<   s    
zExpatLocator.getColumnNumberc                 C   s   | j }|jd u rdS |jjS N   )r   r!   ErrorLineNumberr   r   r   r   getLineNumberB   s    
zExpatLocator.getLineNumberc                 C   s   | j }|d u rd S |j S r   )r   _sourcegetPublicIdr   r   r   r   r)   H   s    zExpatLocator.getPublicIdc                 C   s   | j }|d u rd S |j S r   )r   r(   getSystemIdr   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dEddZdd Zdd Zd	d
 Zdd Zdd Zdd Z	dd Z
dFd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d0d1 Zd2d3 Zd4d5 Zd6d7 Zd8d9 Zd:d; Zd<d= Zd>d? Z d@dA Z!dBdC Z"dDS )GExpatParserr     c                 C   sF   t j| | t  | _d | _|| _d | _d| _g | _	d| _
d | _d S )NFr   )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 |}|| _z*|   | jt|  tj	| | W n   | 
   Y n0 d S r   )r   prepare_input_sourcer(   reset_cont_handlerZsetDocumentLocatorr   r   r-   parse_close_sourcer   sourcer   r   r   r8   g   s    
zExpatParser.parsec                 C   s    |  d ur| j|   d S r   )r*   r!   ZSetBaser:   r   r   r   prepareParserw   s    zExpatParser.prepareParserc                 C   s    t j| | | jr|   d S r   )r   r-   setContentHandlerr0   _reset_cont_handler)r   r   r   r   r   r=   }   s    zExpatParser.setContentHandlerc                 C   sP   |t kr| jS |tkr | jd uS |tttfv r2dS |tkr@| jS t	d| d S )Nr   Feature '%s' not recognized)
r   r.   r   r3   r   r   r   r   r2   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 u 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 prefixesr?   )r0   SAXNotSupportedExceptionr   r.   r   r2   r   r3   r   r   r   r@   )r   rB   stater   r   r   
setFeature   s:    
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 parsingProperty '%s' not recognized)r   property_lexical_handlerr/   r
   r3   r	   r!   hasattrrG   r@   rD   rA   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 setrH   )
r   rI   r/   r0   _reset_lex_handler_propr
   r3   r	   rD   r@   )r   rB   valuer   r   r   setProperty   s    

zExpatParser.setPropertyFc              
   C   s|   | j s|   d| _ | j  z| j|| W nF tjyv } z,tt	|j
|| }| j| W Y d }~n
d }~0 0 d S )NT)r0   r6   r7   ZstartDocumentr!   Parser   errorSAXParseExceptionErrorStringcode_err_handler
fatalError)r   dataisFinaleexcr   r   r   feed   s    
zExpatParser.feedc              
   C   s   | j d u rd S | j  }zvz| j d | j dd W nF tjy~ } z,tt|j|| }| j	
| W Y d }~n
d }~0 0 W | j | n| j | 0 d S )NF    )r!   ZGetReparseDeferralEnabledZSetReparseDeferralEnabledrO   r   rP   rQ   rR   rS   rT   rU   )r   Zwas_enabledrX   rY   r   r   r   flush   s    

$zExpatParser.flushc                 C   sZ   | j }z4| }|d ur |  W | }|d urV|  n| }|d urT|  0 d S r   )r(   ZgetCharacterStreamcloseZgetByteStream)r   r;   filer   r   r   r9      s    

zExpatParser._close_sourcec                 C   s   | j s| jd u st| jtr d S z`| jddd | j  d| _d | _W d| _| jd urxt }| jj|_| jj	|_	|| _| 
  n:d| _| jd urt }| jj|_| jj	|_	|| _| 
  0 d S )Nr[   T)rW   F)r1   r!   
isinstancer   rZ   r7   ZendDocumentr0   r"   r&   r9   r   r   r   r   r]      s.    








zExpatParser.closec                 C   s   | j j| j_| j j| j_d S r   )r7   processingInstructionr!   ZProcessingInstructionHandler
charactersZCharacterDataHandlerr   r   r   r   r>     s    zExpatParser._reset_cont_handlerc                 C   s`   | j }| j}|d u r4d |_d |_d |_d |_d |_n(|j|_|j|_|j	|_| j
|_|j|_d S r   )r/   r!   ZCommentHandlerZStartCdataSectionHandlerZEndCdataSectionHandlerZStartDoctypeDeclHandlerZEndDoctypeDeclHandlerZcommentZ
startCDATAZendCDATAstart_doctype_declZendDTD)r   Zlexr   r   r   r   rL     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_z| j| j_W n ty   Y n0 | jtj  d| _!g | _"d S )N )internr%   F)#r.   r   r   r(   ZgetEncodingr3   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/   rL   external_entity_refZExternalEntityRefHandlerskipped_entity_handlerZSkippedEntityHandlerAttributeErrorZSetParamEntityParsingZ*XML_PARAM_ENTITY_PARSING_UNLESS_STANDALONEr0   r1   rb   r   r   r   r6   "  s<    







zExpatParser.resetc                 C   s   | j d u rd S | j jS r   )r!   r"   rb   r   r   r   r#   I  s    
zExpatParser.getColumnNumberc                 C   s   | j d u rdS | j jS r$   )r!   r&   rb   r   r   r   r'   N  s    
zExpatParser.getLineNumberc                 C   s
   | j  S r   )r(   r)   rb   r   r   r   r)   S  s    zExpatParser.getPublicIdc                 C   s
   | j  S r   )r(   r*   rb   r   r   r   r*   V  s    zExpatParser.getSystemIdc                 C   s   | j |t| d S r   )r7   ZstartElementAttributesImpl)r   rB   attrsr   r   r   rh   Z  s    zExpatParser.start_elementc                 C   s   | j | d S r   )r7   Z
endElementrA   r   r   r   ri   ]  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 }| D ]|\}}|  }t|}	|	dkr|}
d |f}n>|	dkrd|d |d f }
|d |d f}n|d }
t|}|||< |
||< qT| j|d t|| d S )Nr%      r   z%s:%s   )splitlentupleitemsr7   ZstartElementNSAttributesNSImpl)r   rB   rr   pairZnewattrsZqnamesZanamerM   partsZlengthZqnameZapairr   r   r   rf   `  s0    



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%   rs   r   )ru   rv   rw   r7   ZendElementNS)r   rB   rz   r   r   r   rg     s    
zExpatParser.end_element_nsc                 C   s   | j || d S r   )r7   r`   )r   targetrV   r   r   r   processing_instruction  s    z"ExpatParser.processing_instructionc                 C   s   | j | d S r   )r7   ra   )r   rV   r   r   r   character_data  s    zExpatParser.character_datac                 C   s   | j || d S r   )r7   ZstartPrefixMapping)r   prefixZurir   r   r   rl     s    z ExpatParser.start_namespace_declc                 C   s   | j | d S r   )r7   ZendPrefixMapping)r   r   r   r   r   rm     s    zExpatParser.end_namespace_declc                 C   s   | j ||| d S r   )r/   ZstartDTD)r   rB   sysidpubidZhas_internal_subsetr   r   r   rc     s    zExpatParser.start_doctype_declc                 C   s   | j |||| d S r   )_dtd_handlerZunparsedEntityDecl)r   rB   baser   r   Znotation_namer   r   r   rj     s    z ExpatParser.unparsed_entity_declc                 C   s   | j ||| d S r   )r   ZnotationDecl)r   rB   r   r   r   r   r   r   rk     s    zExpatParser.notation_declc                 C   s   | j s
dS | j||}t|| j p*d}| j| j	| jf | j	
|| _	|| _ztj| | W n   Y dS 0 | jd \| _	| _| jd= dS )Nr%    r   )r2   Z_ent_handlerZresolveEntityr   r5   r(   r*   r1   appendr!   ZExternalEntityParserCreater   r-   r8   )r   contextr   r   r   r;   r   r   r   rn     s"    
zExpatParser.external_entity_refc                 C   s   |rd| }| j | d S )N%)r7   ZskippedEntity)r   rB   Zis_per   r   r   ro     s    z"ExpatParser.skipped_entity_handlerN)r   r,   )F)#r   r   r   r    r8   r<   r=   rC   rF   rK   rN   rZ   r\   r9   r]   r>   rL   r6   r#   r'   r)   r*   rh   ri   rf   rg   r}   r~   rl   rm   rc   rj   rk   rn   ro   r   r   r   r   r+   W   s@   

'"r+   c                  O   s   t | i |S r   )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   ImportErrorrJ   Zxml.saxr   r   r   rq   ry   _weakrefr   weakrefproxyr   ZLocatorr   r-   r+   r   r   Zxml.sax.saxutilsZxmlpr=   ZsaxZXMLGeneratorZsetErrorHandlerZErrorHandlerr8   r   r   r   r   <module>   sL   


$  m
