o
    JAf1                     @   s   	 d dl mZ d dlmZmZ G dd dZG dd deZG dd dZG d	d
 d
ZG dd dZ	G dd de	Z
dd ZedkrHe  dS dS )   )handler)SAXNotSupportedExceptionSAXNotRecognizedExceptionc                   @   s   e Z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d Zdd ZdS ) 	XMLReaderc                 C   s,   t  | _t  | _t  | _t  | _d S N)	r   ZContentHandler_cont_handlerZ
DTDHandler_dtd_handlerZEntityResolver_ent_handlerZErrorHandler_err_handlerself r   (/usr/lib/python3.10/xml/sax/xmlreader.py__init__   s   


zXMLReader.__init__c                 C   
   	 t dNz This method must be implemented!NotImplementedErrorr   sourcer   r   r   parse   s   zXMLReader.parsec                 C      	 | j S r   r   r   r   r   r   getContentHandler"      zXMLReader.getContentHandlerc                 C      	 || _ d S r   r   r   r   r   r   r   setContentHandler&      
zXMLReader.setContentHandlerc                 C   r   r   r   r   r   r   r   getDTDHandler*   r   zXMLReader.getDTDHandlerc                 C   r   r   r   r   r   r   r   setDTDHandler.   r   zXMLReader.setDTDHandlerc                 C   r   r   r	   r   r   r   r   getEntityResolver2   r   zXMLReader.getEntityResolverc                 C   r   r   r"   )r   Zresolverr   r   r   setEntityResolver6   r   zXMLReader.setEntityResolverc                 C   r   r   r
   r   r   r   r   getErrorHandler:   r   zXMLReader.getErrorHandlerc                 C   r   r   r%   r   r   r   r   setErrorHandler>   r   zXMLReader.setErrorHandlerc                 C   r   )NzLocale support not implemented)r   )r   localer   r   r   	setLocaleB      zXMLReader.setLocalec                 C      	 t d| NzFeature '%s' not recognizedr   r   namer   r   r   
getFeatureK      zXMLReader.getFeaturec                 C   r+   r,   r-   )r   r/   stater   r   r   
setFeatureO   r1   zXMLReader.setFeaturec                 C   r+   NzProperty '%s' not recognizedr-   r.   r   r   r   getPropertyS   r1   zXMLReader.getPropertyc                 C   r+   r4   r-   )r   r/   valuer   r   r   setPropertyW   r1   zXMLReader.setPropertyN)__name__
__module____qualname__r   r   r   r   r    r!   r#   r$   r&   r'   r)   r0   r3   r5   r7   r   r   r   r   r      s"    	r   c                   @   s@   e Zd Z	 dddZdd Zdd Zdd	 Zd
d Zdd ZdS )IncrementalParser   c                 C   s   || _ t|  d S r   )_bufsizer   r   )r   bufsizer   r   r   r   o   s   zIncrementalParser.__init__c                 C   sn   ddl m} ||}| | | }|d u r| }|| j}|r1| | || j}|s$| 	  d S )Nr   )saxutils)
 r?   Zprepare_input_sourceprepareParsergetCharacterStreamgetByteStreamreadr=   feedclose)r   r   r?   filebufferr   r   r   r   s   s   


zIncrementalParser.parsec                 C   r   r   r   )r   datar   r   r   rE      r*   zIncrementalParser.feedc                 C   r   )Nz!prepareParser must be overridden!r   r   r   r   r   rA      s   zIncrementalParser.prepareParserc                 C   r   r   r   r   r   r   r   rF      s   
zIncrementalParser.closec                 C   r   r   r   r   r   r   r   reset   s   zIncrementalParser.resetN)r<   )	r8   r9   r:   r   r   rE   rA   rF   rJ   r   r   r   r   r;   [   s    
	r;   c                   @   s.   e Zd Z	 dd Zdd Zdd Zdd Zd	S )
Locatorc                 C      	 dS Nr   r   r   r   r   getColumnNumber      zLocator.getColumnNumberc                 C   rL   rM   r   r   r   r   r   getLineNumber   rP   zLocator.getLineNumberc                 C      	 d S r   r   r   r   r   r   getPublicId   rP   zLocator.getPublicIdc                 C   rR   r   r   r   r   r   r   getSystemId   rP   zLocator.getSystemIdN)r8   r9   r:   rO   rQ   rS   rT   r   r   r   r   rK      s    rK   c                   @   sh   e Zd Z	 d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S )InputSourceNc                 C   s"   || _ d | _d | _d | _d | _d S r   )_InputSource__system_id_InputSource__public_id_InputSource__encoding_InputSource__bytefile_InputSource__charfiler   Z	system_idr   r   r   r      s
   
zInputSource.__init__c                 C   r   r   rW   )r   Z	public_idr   r   r   setPublicId   r   zInputSource.setPublicIdc                 C   r   r   r\   r   r   r   r   rS      r   zInputSource.getPublicIdc                 C   r   r   rV   r[   r   r   r   setSystemId   r   zInputSource.setSystemIdc                 C   r   r   r^   r   r   r   r   rT      r   zInputSource.getSystemIdc                 C   r   r   rX   )r   encodingr   r   r   setEncoding      
zInputSource.setEncodingc                 C   r   r   r`   r   r   r   r   getEncoding   r   zInputSource.getEncodingc                 C   r   r   rY   )r   Zbytefiler   r   r   setByteStream   s   

zInputSource.setByteStreamc                 C   r   r   re   r   r   r   r   rC      s   zInputSource.getByteStreamc                 C   r   r   rZ   )r   Zcharfiler   r   r   setCharacterStream  rc   zInputSource.setCharacterStreamc                 C   r   r   rg   r   r   r   r   rB     r   zInputSource.getCharacterStreamr   )r8   r9   r:   r   r]   rS   r_   rT   rb   rd   rf   rC   rh   rB   r   r   r   r   rU      s    


rU   c                   @   s   e Z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$ddZdd Zd d! Zd"d# ZdS )%AttributesImplc                 C   r   r   _attrs)r   attrsr   r   r   r     s   
zAttributesImpl.__init__c                 C   
   t | jS r   lenrk   r   r   r   r   	getLength     
zAttributesImpl.getLengthc                 C   s   dS )NZCDATAr   r.   r   r   r   getType!  s   zAttributesImpl.getTypec                 C   
   | j | S r   rj   r.   r   r   r   getValue$  rq   zAttributesImpl.getValuec                 C   rs   r   rj   r.   r   r   r   getValueByQName'  rq   zAttributesImpl.getValueByQNamec                 C      || j vr	t||S r   rk   KeyErrorr.   r   r   r   getNameByQName*     
zAttributesImpl.getNameByQNamec                 C   rv   r   rw   r.   r   r   r   getQNameByName/  rz   zAttributesImpl.getQNameByNamec                 C      t | j S r   listrk   keysr   r   r   r   getNames4     zAttributesImpl.getNamesc                 C   r|   r   r}   r   r   r   r   	getQNames7  r   zAttributesImpl.getQNamesc                 C   rm   r   rn   r   r   r   r   __len__:  rq   zAttributesImpl.__len__c                 C   rs   r   rj   r.   r   r   r   __getitem__=  rq   zAttributesImpl.__getitem__c                 C   r|   r   r}   r   r   r   r   r   @  r   zAttributesImpl.keysc                 C   s
   || j v S r   rj   r.   r   r   r   __contains__C  rq   zAttributesImpl.__contains__Nc                 C   s   | j ||S r   )rk   get)r   r/   Zalternativer   r   r   r   F  r   zAttributesImpl.getc                 C   s   |  | jS r   )	__class__rk   r   r   r   r   copyI  s   zAttributesImpl.copyc                 C   r|   r   )r~   rk   itemsr   r   r   r   r   L  r   zAttributesImpl.itemsc                 C   r|   r   )r~   rk   valuesr   r   r   r   r   O  r   zAttributesImpl.valuesr   )r8   r9   r:   r   rp   rr   rt   ru   ry   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ri     s$    
ri   c                   @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )AttributesNSImplc                 C   s   	 || _ || _d S r   )rk   _qnames)r   rl   Zqnamesr   r   r   r   V  s   
zAttributesNSImpl.__init__c                 C   s2   | j  D ]\}}||kr| j|   S qt|r   )r   r   rk   rx   r   r/   ZnsnameZqnamer   r   r   ru   ^  s
   z AttributesNSImpl.getValueByQNamec                 C   s,   | j  D ]\}}||kr|  S qt|r   )r   r   rx   r   r   r   r   ry   e  s
   zAttributesNSImpl.getNameByQNamec                 C   rs   r   )r   r.   r   r   r   r{   l  rq   zAttributesNSImpl.getQNameByNamec                 C   r|   r   )r~   r   r   r   r   r   r   r   o  r   zAttributesNSImpl.getQNamesc                 C   s   |  | j| jS r   )r   rk   r   r   r   r   r   r   r  s   zAttributesNSImpl.copyN)	r8   r9   r:   r   ru   ry   r{   r   r   r   r   r   r   r   T  s    r   c                   C   s   t   t  t  d S r   )r   r;   rK   r   r   r   r   _testv  s   
r   __main__N)r@   r   _exceptionsr   r   r   r;   rK   rU   ri   r   r   r8   r   r   r   r   <module>   s    PJY>"
