B
    2*\3                 @   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   <C:\ALexclude\prg\programme\Python37\Lib\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 )N)r   )r
   r   r   r   getContentHandler"   s    zXMLReader.getContentHandlerc             C   s
   || _ d S )N)r   )r
   r   r   r   r   setContentHandler&   s    zXMLReader.setContentHandlerc             C   s   | j S )N)r   )r
   r   r   r   getDTDHandler*   s    zXMLReader.getDTDHandlerc             C   s
   || _ d S )N)r   )r
   r   r   r   r   setDTDHandler.   s    zXMLReader.setDTDHandlerc             C   s   | j S )N)r   )r
   r   r   r   getEntityResolver2   s    zXMLReader.getEntityResolverc             C   s
   || _ d S )N)r   )r
   Zresolverr   r   r   setEntityResolver6   s    zXMLReader.setEntityResolverc             C   s   | j S )N)r	   )r
   r   r   r   getErrorHandler:   s    zXMLReader.getErrorHandlerc             C   s
   || _ d S )N)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 )NzFeature '%s' not recognized)r   )r
   r   stater   r   r   
setFeatureO   s    zXMLReader.setFeaturec             C   s   t d| d S )NzProperty '%s' not recognized)r   )r
   r   r   r   r   getPropertyS   s    zXMLReader.getPropertyc             C   s   t d| d S )NzProperty '%s' not recognized)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 )N)_bufsizer   r   )r
   bufsizer   r   r   r   o   s    zIncrementalParser.__init__c             C   sp   ddl m} ||}| | | }|d kr8| }|| j}x|rb| | || j}qFW | 	  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   s   t dd S )Nz This method must be implemented!)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   r   r+      s    zIncrementalParser.prepareParserc             C   s   t dd S )Nz This method must be implemented!)r   )r
   r   r   r   r0      s    zIncrementalParser.closec             C   s   t dd S )Nz This method must be implemented!)r   )r
   r   r   r   reset   s    zIncrementalParser.resetN)r&   )	r"   r#   r$   r   r   r/   r+   r0   r4   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   s   dS )Nr   )r
   r   r   r   getColumnNumber   s    zLocator.getColumnNumberc             C   s   dS )Nr6   r   )r
   r   r   r   getLineNumber   s    zLocator.getLineNumberc             C   s   d S )Nr   )r
   r   r   r   getPublicId   s    zLocator.getPublicIdc             C   s   d S )Nr   )r
   r   r   r   getSystemId   s    zLocator.getSystemIdN)r"   r#   r$   r7   r8   r9   r:   r   r   r   r   r5      s   r5   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 )N)_InputSource__system_id_InputSource__public_id_InputSource__encoding_InputSource__bytefile_InputSource__charfile)r
   	system_idr   r   r   r      s
    zInputSource.__init__c             C   s
   || _ d S )N)r=   )r
   Z	public_idr   r   r   setPublicId   s    zInputSource.setPublicIdc             C   s   | j S )N)r=   )r
   r   r   r   r9      s    zInputSource.getPublicIdc             C   s
   || _ d S )N)r<   )r
   rA   r   r   r   setSystemId   s    zInputSource.setSystemIdc             C   s   | j S )N)r<   )r
   r   r   r   r:      s    zInputSource.getSystemIdc             C   s
   || _ d S )N)r>   )r
   encodingr   r   r   setEncoding   s    zInputSource.setEncodingc             C   s   | j S )N)r>   )r
   r   r   r   getEncoding   s    zInputSource.getEncodingc             C   s
   || _ d S )N)r?   )r
   Zbytefiler   r   r   setByteStream   s    zInputSource.setByteStreamc             C   s   | j S )N)r?   )r
   r   r   r   r-      s    zInputSource.getByteStreamc             C   s
   || _ d S )N)r@   )r
   Zcharfiler   r   r   setCharacterStream  s    zInputSource.setCharacterStreamc             C   s   | j S )N)r@   )r
   r   r   r   r,     s    zInputSource.getCharacterStream)N)r"   r#   r$   r   rB   r9   rC   r:   rE   rF   rG   r-   rH   r,   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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 )N)_attrs)r
   attrsr   r   r   r     s    zAttributesImpl.__init__c             C   s
   t | jS )N)lenrJ   )r
   r   r   r   	getLength  s    zAttributesImpl.getLengthc             C   s   dS )NZCDATAr   )r
   r   r   r   r   getType!  s    zAttributesImpl.getTypec             C   s
   | j | S )N)rJ   )r
   r   r   r   r   getValue$  s    zAttributesImpl.getValuec             C   s
   | j | S )N)rJ   )r
   r   r   r   r   getValueByQName'  s    zAttributesImpl.getValueByQNamec             C   s   || j krt||S )N)rJ   KeyError)r
   r   r   r   r   getNameByQName*  s    
zAttributesImpl.getNameByQNamec             C   s   || j krt||S )N)rJ   rQ   )r
   r   r   r   r   getQNameByName/  s    
zAttributesImpl.getQNameByNamec             C   s   t | j S )N)listrJ   keys)r
   r   r   r   getNames4  s    zAttributesImpl.getNamesc             C   s   t | j S )N)rT   rJ   rU   )r
   r   r   r   	getQNames7  s    zAttributesImpl.getQNamesc             C   s
   t | jS )N)rL   rJ   )r
   r   r   r   __len__:  s    zAttributesImpl.__len__c             C   s
   | j | S )N)rJ   )r
   r   r   r   r   __getitem__=  s    zAttributesImpl.__getitem__c             C   s   t | j S )N)rT   rJ   rU   )r
   r   r   r   rU   @  s    zAttributesImpl.keysc             C   s
   || j kS )N)rJ   )r
   r   r   r   r   __contains__C  s    zAttributesImpl.__contains__Nc             C   s   | j ||S )N)rJ   get)r
   r   Zalternativer   r   r   r[   F  s    zAttributesImpl.getc             C   s   |  | jS )N)	__class__rJ   )r
   r   r   r   copyI  s    zAttributesImpl.copyc             C   s   t | j S )N)rT   rJ   items)r
   r   r   r   r^   L  s    zAttributesImpl.itemsc             C   s   t | j S )N)rT   rJ   values)r
   r   r   r   r_   O  s    zAttributesImpl.values)N)r"   r#   r$   r   rM   rN   rO   rP   rR   rS   rV   rW   rX   rY   rU   rZ   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 )N)rJ   _qnames)r
   rK   Zqnamesr   r   r   r   V  s    zAttributesNSImpl.__init__c             C   s6   x(| j  D ]\}}||kr| j| S qW t|d S )N)ra   r^   rJ   rQ   )r
   r   nsnameqnamer   r   r   rP   ^  s    z AttributesNSImpl.getValueByQNamec             C   s0   x"| j  D ]\}}||kr|S qW t|d S )N)ra   r^   rQ   )r
   r   rb   rc   r   r   r   rR   e  s    zAttributesNSImpl.getNameByQNamec             C   s
   | j | S )N)ra   )r
   r   r   r   r   rS   l  s    zAttributesNSImpl.getQNameByNamec             C   s   t | j S )N)rT   ra   r_   )r
   r   r   r   rW   o  s    zAttributesNSImpl.getQNamesc             C   s   |  | j| jS )N)r\   rJ   ra   )r
   r   r   r   r]   r  s    zAttributesNSImpl.copyN)	r"   r#   r$   r   rP   rR   rS   rW   r]   r   r   r   r   r`   T  s   r`   c               C   s   t   t  t  d S )N)r   r%   r5   r   r   r   r   _testv  s    rd   __main__N)r*   r   _exceptionsr   r   r   r%   r5   r;   rI   r`   rd   r"   r   r   r   r   <module>   s   PJY>"