a
    ze1                     @   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re  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.9/xml/sax/xmlreader.py__init__   s    


zXMLReader.__init__c                 C   s   t dd S Nz This method must be implemented!NotImplementedErrorr   sourcer   r   r   parse   s    zXMLReader.parsec                 C   s   | j S r   r   r   r   r   r   getContentHandler"   s    zXMLReader.getContentHandlerc                 C   s
   || _ d S r   r   r   r   r   r   r   setContentHandler&   s    zXMLReader.setContentHandlerc                 C   s   | j S r   r   r   r   r   r   getDTDHandler*   s    zXMLReader.getDTDHandlerc                 C   s
   || _ d S r   r   r   r   r   r   setDTDHandler.   s    zXMLReader.setDTDHandlerc                 C   s   | j S r   r	   r   r   r   r   getEntityResolver2   s    zXMLReader.getEntityResolverc                 C   s
   || _ d S r   r   )r   Zresolverr   r   r   setEntityResolver6   s    zXMLReader.setEntityResolverc                 C   s   | j S r   r
   r   r   r   r   getErrorHandler:   s    zXMLReader.getErrorHandlerc                 C   s
   || _ d S r   r    r   r   r   r   setErrorHandler>   s    zXMLReader.setErrorHandlerc                 C   s   t dd S )NzLocale support not implemented)r   )r   localer   r   r   	setLocaleB   s    zXMLReader.setLocalec                 C   s   t d| d S NzFeature '%s' not recognizedr   r   namer   r   r   
getFeatureK   s    zXMLReader.getFeaturec                 C   s   t d| d S r%   r&   )r   r(   stater   r   r   
setFeatureO   s    zXMLReader.setFeaturec                 C   s   t d| d S NzProperty '%s' not recognizedr&   r'   r   r   r   getPropertyS   s    zXMLReader.getPropertyc                 C   s   t d| d S r,   r&   )r   r(   valuer   r   r   setPropertyW   s    zXMLReader.setPropertyN)__name__
__module____qualname__r   r   r   r   r   r   r   r   r!   r"   r$   r)   r+   r-   r/   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   sl   ddl m} ||}| | | }|d u r8| }|| j}|r`| | || j}qD| 	  d S )Nr   )saxutils)
 r7   Zprepare_input_sourceprepareParsergetCharacterStreamgetByteStreamreadr5   feedclose)r   r   r7   filebufferr   r   r   r   s   s    


zIncrementalParser.parsec                 C   s   t dd S r   r   )r   datar   r   r   r=      s    zIncrementalParser.feedc                 C   s   t dd S )Nz!prepareParser must be overridden!r   r   r   r   r   r9      s    zIncrementalParser.prepareParserc                 C   s   t dd S r   r   r   r   r   r   r>      s    zIncrementalParser.closec                 C   s   t dd S r   r   r   r   r   r   reset   s    zIncrementalParser.resetN)r4   )	r0   r1   r2   r   r   r=   r9   r>   rB   r   r   r   r   r3   [   s   
	r3   c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
Locatorc                 C   s   dS Nr   r   r   r   r   getColumnNumber   s    zLocator.getColumnNumberc                 C   s   dS rD   r   r   r   r   r   getLineNumber   s    zLocator.getLineNumberc                 C   s   d S r   r   r   r   r   r   getPublicId   s    zLocator.getPublicIdc                 C   s   d S r   r   r   r   r   r   getSystemId   s    zLocator.getSystemIdN)r0   r1   r2   rF   rG   rH   rI   r   r   r   r   rC      s   rC   c                   @   sf   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   s
   || _ d S r   rL   )r   Z	public_idr   r   r   setPublicId   s    zInputSource.setPublicIdc                 C   s   | j S r   rQ   r   r   r   r   rH      s    zInputSource.getPublicIdc                 C   s
   || _ d S r   rK   rP   r   r   r   setSystemId   s    zInputSource.setSystemIdc                 C   s   | j S r   rS   r   r   r   r   rI      s    zInputSource.getSystemIdc                 C   s
   || _ d S r   rM   )r   encodingr   r   r   setEncoding   s    zInputSource.setEncodingc                 C   s   | j S r   rU   r   r   r   r   getEncoding   s    zInputSource.getEncodingc                 C   s
   || _ d S r   rN   )r   Zbytefiler   r   r   setByteStream   s    zInputSource.setByteStreamc                 C   s   | j S r   rY   r   r   r   r   r;      s    zInputSource.getByteStreamc                 C   s
   || _ d S r   rO   )r   Zcharfiler   r   r   setCharacterStream  s    zInputSource.setCharacterStreamc                 C   s   | j S r   r[   r   r   r   r   r:     s    zInputSource.getCharacterStream)N)r0   r1   r2   r   rR   rH   rT   rI   rW   rX   rZ   r;   r\   r:   r   r   r   r   rJ      s   


rJ   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   s
   || _ d S r   _attrs)r   attrsr   r   r   r     s    zAttributesImpl.__init__c                 C   s
   t | jS r   lenr_   r   r   r   r   	getLength  s    zAttributesImpl.getLengthc                 C   s   dS )NZCDATAr   r'   r   r   r   getType!  s    zAttributesImpl.getTypec                 C   s
   | j | S r   r^   r'   r   r   r   getValue$  s    zAttributesImpl.getValuec                 C   s
   | j | S r   r^   r'   r   r   r   getValueByQName'  s    zAttributesImpl.getValueByQNamec                 C   s   || j vrt||S r   r_   KeyErrorr'   r   r   r   getNameByQName*  s    
zAttributesImpl.getNameByQNamec                 C   s   || j vrt||S r   rg   r'   r   r   r   getQNameByName/  s    
zAttributesImpl.getQNameByNamec                 C   s   t | j S r   listr_   keysr   r   r   r   getNames4  s    zAttributesImpl.getNamesc                 C   s   t | j S r   rk   r   r   r   r   	getQNames7  s    zAttributesImpl.getQNamesc                 C   s
   t | jS r   ra   r   r   r   r   __len__:  s    zAttributesImpl.__len__c                 C   s
   | j | S r   r^   r'   r   r   r   __getitem__=  s    zAttributesImpl.__getitem__c                 C   s   t | j S r   rk   r   r   r   r   rm   @  s    zAttributesImpl.keysc                 C   s
   || j v S r   r^   r'   r   r   r   __contains__C  s    zAttributesImpl.__contains__Nc                 C   s   | j ||S r   )r_   get)r   r(   Zalternativer   r   r   rs   F  s    zAttributesImpl.getc                 C   s   |  | jS r   )	__class__r_   r   r   r   r   copyI  s    zAttributesImpl.copyc                 C   s   t | j S r   )rl   r_   itemsr   r   r   r   rv   L  s    zAttributesImpl.itemsc                 C   s   t | j S r   )rl   r_   valuesr   r   r   r   rw   O  s    zAttributesImpl.values)N)r0   r1   r2   r   rc   rd   re   rf   ri   rj   rn   ro   rp   rq   rm   rr   rs   ru   rv   rw   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	d
 Zdd ZdS )AttributesNSImplc                 C   s   || _ || _d S r   )r_   _qnames)r   r`   Zqnamesr   r   r   r   V  s    zAttributesNSImpl.__init__c                 C   s6   | j  D ]\}}||kr
| j|   S q
t|d S r   )ry   rv   r_   rh   r   r(   ZnsnameZqnamer   r   r   rf   ^  s    z AttributesNSImpl.getValueByQNamec                 C   s0   | j  D ]\}}||kr
|  S q
t|d S r   )ry   rv   rh   rz   r   r   r   ri   e  s    
zAttributesNSImpl.getNameByQNamec                 C   s
   | j | S r   )ry   r'   r   r   r   rj   l  s    zAttributesNSImpl.getQNameByNamec                 C   s   t | j S r   )rl   ry   rw   r   r   r   r   ro   o  s    zAttributesNSImpl.getQNamesc                 C   s   |  | j| jS r   )rt   r_   ry   r   r   r   r   ru   r  s    zAttributesNSImpl.copyN)	r0   r1   r2   r   rf   ri   rj   ro   ru   r   r   r   r   rx   T  s   rx   c                   C   s   t   t  t  d S r   )r   r3   rC   r   r   r   r   _testv  s    r{   __main__N)r8   r   _exceptionsr   r   r   r3   rC   rJ   r]   rx   r{   r0   r   r   r   r   <module>   s   PJY>"