o ŒS¿ašã@sdddlZddlZddlmZddlmZmZGdd„dejj ƒZ Gdd„de ƒZ Gdd „d e ƒZ dS) éN)Úescape)ÚsixÚStringIOc@sJeZdZdZddd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dS)Ú ResponseGroupz„A Generic "Response Group", which can be anything from the entire list of Items to specific response elements within an itemNcCs$||_||_g|_d|_tƒ|_dS)úInitialize this ItemN)Ú _connectionÚ _nodenameÚ _nodepathÚ_curobjrÚ_xml)ÚselfÚ connectionÚnodename©rú//usr/lib/python3/dist-packages/boto/ecs/item.pyÚ__init__!s  zResponseGroup.__init__cCsd|jj|jfS)Nz<%s: %s>)Ú __class__Ú__name__Ú__dict__©r rrrÚ__repr__)szResponseGroup.__repr__cCs |j |¡S©N)rÚget)r Únamerrrr/s zResponseGroup.getcCs||j|<dSr)r)r rÚvaluerrrÚset2szResponseGroup.setcCsd|j|j ¡|jfS)Nz <%s>%s)rr ÚgetvaluerrrrÚto_xml5szResponseGroup.to_xmlcCsd|j d|¡|j |¡t|jƒdkr%t|jƒ}| ||¡||_dS|jr0|j  |||¡dS)Nz<%s>é) r Úwriter ÚappendÚlenrrrr Ú startElement)r rÚattrsr Úobjrrrr";s   þzResponseGroup.startElementcCs”|j dt|ƒ dd¡|f¡t|jƒdkrdSd}| |¡}t|jƒdkr8|s+|s1| ||¡|jr7d|_n |jrC|j  |||¡|j  ¡dS)Nz%sz &amp;z&rr) r rrÚreplacer!r rrr Ú endElementÚpop)r rrr r$Úcurvalrrrr&Fs   € zResponseGroup.endElement)NN) rÚ __module__Ú __qualname__Ú__doc__rrrrrr"r&rrrrrs  rc@seZdZdZddd„ZdS)ÚItemz A single ItemNcCst ||d¡dS)rr,N)rr)r r rrrr\sz Item.__init__r)rr)r*r+rrrrrr,Ysr,c@sFeZdZdZddd„Zdd„Zdd„Zd d „ZeZd d „Z d d„Z dS)ÚItemSetzbA special ResponseGroup that has built-in paging, and only creates new Items on the "Item" tagrcCsNt ||d¡g|_d|_||_||_||_d|_d|_d|_ d|_ g|_ dS)NÚItemsrF) rrÚobjsÚiterÚpageÚactionÚparamsÚcurItemÚ total_resultsÚ total_pagesÚis_validÚerrors)r r r2r3r1rrrrds zItemSet.__init__cCs6|dkr t|jƒ|_dS|jdur|j |||¡dS)Nr,)r,rr4r")r rr#r rrrr"qs   þzItemSet.startElementcCsÆ|dkr ||_dS|dkr||_dS|dkr|dkrd|_dS|dkr.|j |ddœ¡dS|dkr;||jd d<dS|d krT|j |j¡|j |j  ¡¡d|_dS|jdura|j  |||¡dS) NÚ TotalResultsÚ TotalPagesÚIsValidÚTrueTÚCode)r=ÚMessager>éÿÿÿÿr,) r5r6r7r8r r/r4r rrr&)r rrr rrrr&xs0ñó ö øú þzItemSet.endElementc Cs†|jdur t|jƒ|_zt|jƒWStyBd|_g|_t|jƒt|jƒkrA|jd7_|j |j |j |j|¡t|ƒYS‚w)zSpecial paging functionalityNr) r0r/ÚnextÚ StopIterationÚintr1r6rÚ get_responser2r3rrrrÚ__next__Œs     øzItemSet.__next__cCs|SrrrrrrÚ__iter__žszItemSet.__iter__cCs|D]}qt |¡S)z"Override to first fetch everything)rr)r Úitemrrrr¡s zItemSet.to_xmlN)r) rr)r*r+rr"r&rDr@rErrrrrr-`s   r-) Úxml.saxÚxmlÚcgiÚhtmlrÚ boto.compatrrÚsaxÚContentHandlerrr,r-rrrrÚs =