o
    e{                     @   s4   d dl mZ d dlZd dlmZ G dd deZdS )    )etreeN)PlivoXMLErrorc                   @   s:   e Zd Zdd Zdd ZdddZdd	d
ZdddZdS )PlivoXMLElementc                 C   s   d| _ g | _d S )N )contentchildren)self r	   L/var/www/html/venv/lib/python3.10/site-packages/plivo/xml/PlivoXMLElement.py__init__   s   
zPlivoXMLElement.__init__c                 C   sF   t |ts	td|j| jvrtd|j| j| j| j| | S )Nz!element must be a PlivoXMLElementz&{} is not nestable in {} (allowed: {}))
isinstancer   r   _name	_nestableformatr   append)r   elementr	   r	   r
   add   s   
zPlivoXMLElement.addNc                 C   s   | dd ddS )Nz<cont> z</cont>)replace)r   bodyr	   r	   r
   continue_speak   s   zPlivoXMLElement.continue_speakTc                 C   s2   |  tj|  |dd}t|ts|d}|S )Nunicode)pretty_printencodingzutf-8)r   r   tostring_to_elementr   strencode)r   prettysr	   r	   r
   	to_string   s   

zPlivoXMLElement.to_stringc                 C   s   |d urt j|| jfi |  nt j| jfi |  }| jrOz&tjr1t| jt	r1| j
 |_ntjrAt| jtrA| j
 |_n| j|_W n   | j|_Y | jD ]}|j|d qR|S )N)parent)r   
SubElementr   to_dictElementr   sixPY2r   r   decodetextPY3bytesr   r   )r   r!   echildr	   r	   r
   r       s2   

zPlivoXMLElement._to_element)N)T)__name__
__module____qualname__r   r   r   r    r   r	   r	   r	   r
   r      s    

r   )lxmlr   r%   plivo.exceptionsr   objectr   r	   r	   r	   r
   <module>   s    