
    pi                     t    d dl Z d dlZd dlmc mZ d Zd Z G d de      Z	 G d de
      Z G d d	e      Zy)
    Nc                     | rd| vr| S dj                  | j                  d      D cg c]  }|j                          c}      }|d   j                         |dd  z   S c c}w )N_ r      )joinsplittitlelower)stringxresults      W/opt/services/ai/voice_agent/venv/lib/python3.12/site-packages/twilio/twiml/__init__.pylower_camelr      sZ    S&WWc):;Aaggi;<F!9??vabz)) <s   Ac                     | s| S t        j                  d|       st        d      | dd j                         dz   | dd j	                         z   S )zj
    Attempt to format language parameter as 'ww-WW'.

    :param string language: language parameter
    z^[a-zA-Z]{2}[_-][a-zA-Z]{2}$z%Invalid value for language parameter.r      -      )rematchTwiMLExceptionr
   upper)languages    r   format_languager      sU     882H=DEEAa= 3&!A)<)<)>>>    c                       e Zd Zy)r   N)__name__
__module____qualname__ r   r   r   r      s    r   r   c                   V    e Zd ZddddddZd Zd Zd	 Zd
 ZddZd Z	d Z
d ZddZy)TwiMLfromzxml:langzinterpret-asforbreak)from_xml_langinterpret_asfor_break_c           	          | j                   j                  | _        d | _        g | _        i | _        |j                         D ]:  \  }}|	|| j
                  t        | j                  j                  ||            <   < y N)
	__class__r   namevalueverbsattrsitemsr   MAPget)selfkwargskvs       r   __init__zTwiML.__init__*   sj    NN++	


LLN 	@DAq}>?

;txx||Aq'9:;	@r   c                 "    | j                         S r,   )to_xmlr5   s    r   __str__zTwiML.__str__4   s    {{}r   c                     | S r,   r    r<   s    r   	__enter__zTwiML.__enter__7   s    r   c                      y)NFr    )r5   exc_type	exc_value	tracebacks       r   __exit__zTwiML.__exit__:   s    r   c                     t        j                  | j                         d      j                  d      }|rdj	                  |      S |S )z
        Return the contents of this verb as an XML string

        :param bool xml_declaration: Include the XML declaration. Defaults to True
        zutf-8)encodingz(<?xml version="1.0" encoding="UTF-8"?>{})ETtostringxmldecodeformat)r5   xml_declarationrI   s      r   r;   zTwiML.to_xml=   sI     kk$((*w7>>wG  7==cB	
 	
r   c                 (    | j                  |       | S )z^
        Add a TwiML doc

        :param verb: TwiML Document

        :returns: self
        )nestr5   verbs     r   appendzTwiML.appendJ   s     			$r   c                     t        |t              st        |t              st        d      | j                  j                  |       |S )z
        Add a TwiML doc. Unlike `append()`, this returns the created verb.

        :param verb: TwiML Document

        :returns: the TwiML verb
        z-Only nesting of TwiML and strings are allowed)
isinstancer"   strr   r0   rQ   rO   s     r   rN   z
TwiML.nestU   s:     $&z$/D !PQQ

$r   c                    t        j                  | j                        }| j                  j	                         }t        |      }|D ]f  }| j                  |   }t        |t              r*|j                  |t        |      j                                L|j                  |t        |             h | j                  rOt        | j                  t              r$t        j                  | j                        | _        | j                  |_        d }| j                   D ]E  }t        |t              r|||_        ||_        %|j%                         }|j'                  |       G |S r,   )rG   Elementr.   r1   keyssortedrS   boolsetrT   r
   r/   dictjsondumpstextr0   tailrI   rQ   )r5   elrW   ar/   
last_childrP   s          r   rI   z	TwiML.xmlc   s
   ZZ		"zz d| 	&AJJqME%&q#e***,-q#e*%	& ::$**d+!ZZ

3
jjBG
JJ 	&D$$)&*JO"BG!XXZ
		*%	& 	r   Nc                 :    | j                  t        ||fi |      S r,   )rN   GenericNode)r5   r.   r/   r6   s       r   	add_childzTwiML.add_child   s    yyT5;F;<<r   )Tr,   )r   r   r   r3   r9   r=   r?   rD   r;   rQ   rN   rI   re   r    r   r   r"   r"   !   sG    &C@
	B=r   r"   c                        e Zd Z fdZ xZS )rd   c                 H    t        t        | 
  di | || _        || _        y )Nr    )superrd   r9   r.   r/   )r5   r.   r/   r6   r-   s       r   r9   zGenericNode.__init__   s#    k4)3F3	
r   )r   r   r   r9   __classcell__)r-   s   @r   rd   rd      s     r   rd   )r\   r   xml.etree.ElementTreeetreeElementTreerG   r   r   	Exceptionr   objectr"   rd   r    r   r   <module>ro      sB     	 " "*?	Y 	d=F d=N% r   