o ckF[@sLddlZddlmZGdddejjZGdddeZGddde Z dS) N)utilsc@s4eZdZddZddZddZddZd d Zd S) XmlHandlercCs||_d|fg|_d|_dS)Nroot) connectionnodes current_text)self root_noderr 3/usr/lib/python3/dist-packages/boto/jsonresponse.py__init__s  zXmlHandler.__init__cCsZd|_|jdd|||j}|dur+t|tr!|j|dS|j||fdSdS)Nr)rr startElementr isinstancetupleappend)r nameattrstr r r r"s zXmlHandler.startElementcCsB|jdd||j|j|jdd|kr|jd|_dS)Nrrrr)r endElementrrpopr rr r r r+s  zXmlHandler.endElementcCs|j|7_dSN)r)r contentr r r characters1szXmlHandler.characterscCs&t|ts |d}tj||dS)Nzutf-8)rbytesencodexmlsax parseString)r sr r r parse4s  zXmlHandler.parseN)__name__ __module__ __qualname__r rrrr#r r r r rs   rc@s>eZdZ    dddZddZd d Zd d Zd dZdS)ElementNSetmemberitemFcCsTt|||_||_t||_t||_|durg|_n||_||_ ||_ dSr) dictr r element_namermklist list_marker item_markerstackpythonize_nameparent)r rr.r2r4r0r1r3r r r r <s    zElement.__init__c CsT||vr||S|D]}||}t|tr'zt||WSty&Yq wq tr)rr'getattrAttributeError)r keyker r r __getattr__Ls  zElement.__getattr__cC|jrt|}|Srr3rrr r r get_nameX zElement.get_namecCs|j||jD]}||r't|j||j|j|j}||||<|Sq t |jdkrN|jd}t |j||j||j|j|j}||||<||fSdS)Nrr) r2rr0endswith ListElementrr1r3r=lenr')r rrrlmlr.r9r r r r]s$     zElement.startElementcCsht|jdkr |j|}|r0t|jtr"||j||<dSt|jtr2|j |dSdSdSNr) rAr2rstriprr4r'r=r@r)r rvaluerr r r ros   zElement.endElement)NNNNr(r*F)r$r%r&r r:r=rrr r r r r':s   r'c@s:eZdZdddgddfddZddZd d Zd d ZdS) r@Nr)r*FcCs,t|||_||_||_||_||_dSr)listr rr.r0r1r3)r rr.r0r1r3r r r r |s  zListElement.__init__cCr;rr<rr r r r=r>zListElement.get_namecCs|jD] }||r#t|j||j|j|j}t|||||Sq||jvr>t|j|||j|j|jd}| ||SdS)N)r4r0r1r3) r0r?r@rr1r3setattrr=r'r)r rrrrBrCr9r r r rs$     zListElement.startElementcCsv||jkr0t|dkr,g}|D]}t|tr!t|dkr!||q|D] }||q$dSdSt||||dSrD)r.rArr'rremoverHr=)r rrFremptyr9r r r rs      zListElement.endElement)r$r%r&r r=rrr r r r r@zs   r@) xml.saxrbotorr ContentHandlerrr-r'rGr@r r r r s  @