B
    è?F[N	  ã               @   s<   d dl Zd dlmZ G dd„ dejjƒZG dd„ deƒZdS )é    N)ÚStringIOc               @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
Ú
XmlHandlerc             C   s   || _ d|fg| _d| _d S )NÚrootÚ )Ú
connectionÚnodesÚcurrent_text)ÚselfÚ	root_noder   © r   ú+lib/python3.7/site-packages/boto/handler.pyÚ__init__   s    zXmlHandler.__init__c             C   s<   d| _ | jd d  ||| j¡}|d k	r8| j ||f¡ d S )Nr   éÿÿÿÿé   )r   r   ÚstartElementr   Úappend)r	   ÚnameZattrsZnew_noder   r   r   r   "   s    zXmlHandler.startElementc             C   sl   | j d d  || j| j¡ | j d d |krbt| j d d dƒrX| j d d  | j¡ | j  ¡  d| _d S )Nr   r   r   ÚendNoder   )r   Ú
endElementr   r   Úhasattrr   Úpop)r	   r   r   r   r   r   (   s    
zXmlHandler.endElementc             C   s   |  j |7  _ d S )N)r   )r	   Úcontentr   r   r   Ú
characters0   s    zXmlHandler.charactersN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r   r      s   r   c               @   s   e Zd Zdd„ Zdd„ ZdS )ÚXmlHandlerWrapperc             C   s>   t ||ƒ| _tj ¡ | _| j | j¡ | j tjjjd¡ d S )Nr   )	r   ZhandlerÚxmlÚsaxZmake_parserÚparserZsetContentHandlerZ
setFeatureZfeature_external_ges)r	   r
   r   r   r   r   r   5   s    zXmlHandlerWrapper.__init__c             C   s   | j  t|ƒ¡S )N)r   Úparser   )r	   r   r   r   r   ÚparseString;   s    zXmlHandlerWrapper.parseStringN)r   r   r   r   r!   r   r   r   r   r   4   s   r   )	Zxml.saxr   Zboto.compatr   r   ZContentHandlerr   Úobjectr   r   r   r   r   Ú<module>   s   