ó
è?F[c           @   sz   d  d l  Z d  d l Z d  d l m Z m Z d e j j f d „  ƒ  YZ d e f d „  ƒ  YZ	 d e f d „  ƒ  YZ
 d S(	   iÿÿÿÿN(   t   sixt   StringIOt   ResponseGroupc           B   sS   e  Z d  Z d d d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 RS(	   s„   A Generic "Response Group", which can
    be anything from the entire list of Items to
    specific response elements within an itemc         C   s4   | |  _  | |  _ g  |  _ d |  _ t ƒ  |  _ d S(   s   Initialize this ItemN(   t   _connectiont	   _nodenamet	   _nodepatht   Nonet   _curobjR   t   _xml(   t   selft
   connectiont   nodename(    (    s,   lib/python2.7/site-packages/boto/ecs/item.pyt   __init__    s
    				c         C   s   d |  j  j |  j f S(   Ns   <%s: %s>(   t	   __class__t   __name__t   __dict__(   R	   (    (    s,   lib/python2.7/site-packages/boto/ecs/item.pyt   __repr__(   s    c         C   s   |  j  j | ƒ S(   N(   R   t   get(   R	   t   name(    (    s,   lib/python2.7/site-packages/boto/ecs/item.pyR   .   s    c         C   s   | |  j  | <d  S(   N(   R   (   R	   R   t   value(    (    s,   lib/python2.7/site-packages/boto/ecs/item.pyt   set1   s    c         C   s    d |  j  |  j j ƒ  |  j  f S(   Ns   <%s>%s</%s>(   R   R   t   getvalue(   R	   (    (    s,   lib/python2.7/site-packages/boto/ecs/item.pyt   to_xml4   s    c         C   sŠ   |  j  j d | ƒ |  j j | ƒ t |  j ƒ d k rd t |  j ƒ } |  j | | ƒ | |  _ n" |  j r† |  j j	 | | | ƒ n  d  S(   Ns   <%s>i   (   R   t   writeR   t   appendt   lenR   R   R   R   t   startElementR   (   R	   R   t   attrsR
   t   obj(    (    s,   lib/python2.7/site-packages/boto/ecs/item.pyR   :   s    	c         C   sÝ   |  j  j d t j | ƒ j d d ƒ | f ƒ t |  j ƒ d k rH d  Sd  } |  j | ƒ } t |  j ƒ d k rª | s | r’ |  j	 | | ƒ n  |  j
 rÌ d  |  _
 qÌ n" |  j
 rÌ |  j
 j | | | ƒ n  |  j j ƒ  d  S(   Ns   %s</%s>s	   &amp;amp;s   &amp;i    i   (   R   R   t   cgit   escapet   replaceR   R   R   R   R   R   t
   endElementt   pop(   R	   R   R   R
   R   t   curval(    (    s,   lib/python2.7/site-packages/boto/ecs/item.pyR    E   s    /		N(   R   t
   __module__t   __doc__R   R   R   R   R   R   R   R    (    (    (    s,   lib/python2.7/site-packages/boto/ecs/item.pyR      s   					t   Itemc           B   s   e  Z d  Z d d „ Z RS(   s   A single Itemc         C   s   t  j |  | d ƒ d S(   s   Initialize this ItemR%   N(   R   R   (   R	   R
   (    (    s,   lib/python2.7/site-packages/boto/ecs/item.pyR   [   s    N(   R   R#   R$   R   R   (    (    (    s,   lib/python2.7/site-packages/boto/ecs/item.pyR%   X   s   t   ItemSetc           B   sM   e  Z d  Z d d „ Z d „  Z d „  Z d „  Z e Z d „  Z d „  Z	 RS(   sb   A special ResponseGroup that has built-in paging, and
    only creates new Items on the "Item" tagi    c         C   sq   t  j |  | d ƒ g  |  _ d  |  _ | |  _ | |  _ | |  _ d  |  _ d |  _	 d |  _
 t |  _ g  |  _ d  S(   Nt   Itemsi    (   R   R   t   objsR   t   itert   paget   actiont   paramst   curItemt   total_resultst   total_pagest   Falset   is_validt   errors(   R	   R
   R+   R,   R*   (    (    s,   lib/python2.7/site-packages/boto/ecs/item.pyR   c   s    									c         C   sM   | d k r! t  |  j ƒ |  _ n( |  j d  k	 rI |  j j | | | ƒ n  d  S(   NR%   (   R%   R   R-   R   R   (   R	   R   R   R
   (    (    s,   lib/python2.7/site-packages/boto/ecs/item.pyR   p   s
    c         C   s  | d k r | |  _  nø | d k r0 | |  _ nà | d k rW | d k rt |  _ qn¹ | d k r„ |  j j i | d 6d  d 6ƒ nŒ | d k r¤ | |  j d d <nl | d k rè |  j j |  j ƒ |  j	 j
 |  j j ƒ  ƒ d  |  _ n( |  j d  k	 r|  j j | | | ƒ n  d  S(	   Nt   TotalResultst
   TotalPagest   IsValidt   Truet   Codet   MessageiÿÿÿÿR%   (   R.   R/   R6   R1   R2   R   R   R(   R-   R   R   R   R    (   R	   R   R   R
   (    (    s,   lib/python2.7/site-packages/boto/ecs/item.pyR    w   s$    !c         C   s»   |  j  d k r$ t  |  j ƒ |  _  n  y t |  j  ƒ SWn t k
 r¶ d |  _  g  |  _ t |  j ƒ t |  j ƒ k  r° |  j d 7_ |  j j	 |  j
 |  j |  j |  ƒ t |  ƒ S‚  n Xd S(   s   Special paging functionalityi   N(   R)   R   R(   t   nextt   StopIterationt   intR*   R/   R   t   get_responseR+   R,   (   R	   (    (    s,   lib/python2.7/site-packages/boto/ecs/item.pyt   __next__‹   s    		"
c         C   s   |  S(   N(    (   R	   (    (    s,   lib/python2.7/site-packages/boto/ecs/item.pyt   __iter__   s    c         C   s   x |  D] } q Wt  j |  ƒ S(   s"   Override to first fetch everything(   R   R   (   R	   t   item(    (    s,   lib/python2.7/site-packages/boto/ecs/item.pyR       s    (
   R   R#   R$   R   R   R    R=   R9   R>   R   (    (    (    s,   lib/python2.7/site-packages/boto/ecs/item.pyR&   _   s   				(   t   xml.saxt   xmlR   t   boto.compatR    R   t   saxt   ContentHandlerR   R%   R&   (    (    (    s,   lib/python2.7/site-packages/boto/ecs/item.pyt   <module>   s
   =