U
    W¨+dN	  ã                   @   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©ÚselfZ	root_noder   © r   ú0/tmp/pip-unpacked-wheel-dlxw5sjy/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
   ÚnameÚ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   ÚhandlerÚxmlÚsaxÚmake_parserÚparserÚsetContentHandlerÚ
setFeatureÚfeature_external_gesr	   r   r   r   r   5   s    zXmlHandlerWrapper.__init__c                 C   s   | j  t|ƒ¡S r   )r$   Úparser   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"   ÚContentHandlerr   Úobjectr   r   r   r   r   Ú<module>   s   