U
    3d                     @   s  d dl mZ d dlmZmZ dd ZG dd deZG dd deZG d	d
 d
eZ	G dd deZ
G dd de
ZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd  d eZd!S )"    )Decimal)filtermapc                    s   G  fdddt   S )Nc                       s6   e Zd ZZe d eZ fddZ  Z	S )z$ResponseFactory.<locals>.FPSResponseResultc                    s$   |d kr t  | ||| d S )NResponse)super
endElementselfnamevalue
connection)FPSResponse	__class__action 5/tmp/pip-unpacked-wheel-d7dsrkjd/boto/fps/response.pyr   "   s    z/ResponseFactory.<locals>.FPSResponse.endElement)
__name__
__module____qualname___actionglobalsgetResponseElement_Resultr   __classcell__r   r   r   r   r   r      s   r   )r   )r   r   r   r   ResponseFactory   s    r   c                   @   s:   e Zd ZdddZedd Zdd Zdd	 Zd
d ZdS )r   Nc                 C   s    |d k	r|| _ |p| jj| _d S N)_connectionr   r   _name)r
   r   r   r   r   r   __init__)   s    zResponseElement.__init__c                 C   s   | j S r   )r    r
   r   r   r   r   .   s    zResponseElement.connectionc                 C   s<   dd }dd }t || j }d| jjdt||S )Nc                 S   s
   dj |  S )Nz
{!s}: {!r})formatpairr   r   r   <lambda>3       z*ResponseElement.__repr__.<locals>.<lambda>c                 S   s   | d  d S )Nr   _)
startswithr%   r   r   r   r'   4   r(   z{0}({1})z, )r   __dict__itemsr$   r   r   joinr   )r
   renderZdo_showattrsr   r   r   __repr__2   s    
zResponseElement.__repr__c                 C   s   d S r   r   r
   r   r/   r   r   r   r   startElement9   s    zResponseElement.startElementc                 C   s   || j krt| || d S r   )r!   setattrr	   r   r   r   r   =   s    
zResponseElement.endElement)NN)	r   r   r   r"   propertyr   r0   r2   r   r   r   r   r   r   (   s   

r   c                       s    e Zd ZdZ fddZ  ZS )r   	Undefinedc                    s^   |dkrt | |t|d n8|| jd kr@t | || j|d ntt| |||S t| |S )NZResponseMetadatar   r   )r3   r   r   r   r   r   r2   getattrr1   r   r   r   r2   E   s    zResponse.startElement)r   r   r   r   r2   r   r   r   r   r   r   B   s   r   c                       s@   e Zd Zdd Zdd Zdd Z fddZ fd	d
Z  ZS )ComplexAmountc                 C   s   d | j| jS )Nz{0} {1})r$   CurrencyCodeValuer#   r   r   r   r0   P   s    zComplexAmount.__repr__c                 C   s
   t | jS r   )floatr:   r#   r   r   r   	__float__S   s    zComplexAmount.__float__c                 C   s
   t | jS r   )strr:   r#   r   r   r   __str__V   s    zComplexAmount.__str__c                    s.   |dkrd |}t|tt| |||S )N)r9   r:   z%Unrecognized tag {0} in ComplexAmount)r$   AssertionErrorr   r8   r2   )r
   r   r/   r   messager   r   r   r2   Y   s    
zComplexAmount.startElementc                    s(   |dkrt |}tt| ||| d S )Nr:   )r   r   r8   r   r	   r   r   r   r   _   s    zComplexAmount.endElement)	r   r   r   r0   r<   r>   r2   r   r   r   r   r   r   r8   O   s
   r8   c                   @   s   e Zd Zdd ZdS )AmountCollectionc                 C   s   t | |t|d t| |S )Nr6   )r3   r8   r7   r1   r   r   r   r2   f   s    zAmountCollection.startElementN)r   r   r   r2   r   r   r   r   rA   e   s   rA   c                       s   e Zd Z fddZ  ZS )AccountBalancec                    s8   |dkr$t | |t|d t| |S tt| |||S )NZAvailableBalancesr6   )r3   rA   r7   r   rB   r2   r1   r   r   r   r2   l   s    
zAccountBalance.startElementr   r   r   r2   r   r   r   r   r   rB   k   s   rB   c                       s   e Zd Z fddZ  ZS )GetAccountBalanceResultc                    s8   |dkr$t | |t|d t| |S tt| |||S )NrB   r6   )r3   rB   r7   r   rD   r2   r1   r   r   r   r2   t   s    
z$GetAccountBalanceResult.startElementrC   r   r   r   r   rD   s   s   rD   c                       s   e Zd Z fddZ  ZS )GetTotalPrepaidLiabilityResultc                    s8   |dkr$t | |t|d t| |S tt| |||S )NZOutstandingPrepaidLiabilityr6   )r3   rA   r7   r   rE   r2   r1   r   r   r   r2   }   s    
 z+GetTotalPrepaidLiabilityResult.startElementrC   r   r   r   r   rE   |   s   rE   c                       s   e Zd Z fddZ  ZS )GetPrepaidBalanceResultc                    s8   |dkr$t | |t|d t| |S tt| |||S )NZPrepaidBalancer6   )r3   rA   r7   r   rF   r2   r1   r   r   r   r2      s    
z$GetPrepaidBalanceResult.startElementrC   r   r   r   r   rF      s   rF   c                       s   e Zd Z fddZ  ZS )GetOutstandingDebtBalanceResultc                    s8   |dkr$t | |t|d t| |S tt| |||S )NZOutstandingDebtr6   )r3   rA   r7   r   rG   r2   r1   r   r   r   r2      s    
 z,GetOutstandingDebtBalanceResult.startElementrC   r   r   r   r   rG      s   rG   c                       s   e Zd Z fddZ  ZS )TransactionPartc                    s8   |dkr$t | |t|d t| |S tt| |||S )NZFeesPaidr6   )r3   r8   r7   r   rH   r2   r1   r   r   r   r2      s    
zTransactionPart.startElementrC   r   r   r   r   rH      s   rH   c                       s(   e Zd Z fddZ fddZ  ZS )Transactionc                    s   g | _ tt| j|| d S r   )rH   r   rI   r"   r
   argskwr   r   r   r"      s    zTransaction.__init__c                    sd   |dkr,t | |t|d t | |d S |dkrPt| |t|d t | |S tt| |||S )NrH   r6   )ZTransactionAmountZFPSFeesZBalance)r7   appendrH   r3   r8   r   rI   r2   r1   r   r   r   r2      s    
zTransaction.startElementr   r   r   r"   r2   r   r   r   r   r   rI      s   rI   c                       s(   e Zd Z fddZ fddZ  ZS )GetAccountActivityResultc                    s   g | _ tt| j|| d S r   )rI   r   rP   r"   rJ   r   r   r   r"      s    z!GetAccountActivityResult.__init__c                    s@   |dkr,t | |t|d t | |d S tt| |||S )NrI   r6   rM   )r7   rN   rI   r   rP   r2   r1   r   r   r   r2      s    z%GetAccountActivityResult.startElementrO   r   r   r   r   rP      s   rP   c                       s   e Zd Z fddZ  ZS )GetTransactionResultc                    s8   |dkr$t | |t|d t| |S tt| |||S )NrI   r6   )r3   rI   r7   r   rQ   r2   r1   r   r   r   r2      s    
z!GetTransactionResult.startElementrC   r   r   r   r   rQ      s   rQ   c                       s(   e Zd Z fddZ fddZ  ZS )GetTokensResultc                    s   g | _ tt| j|| d S r   )Tokenr   rR   r"   rJ   r   r   r   r"      s    zGetTokensResult.__init__c                    s@   |dkr,t | |t|d t | |d S tt| |||S )NrS   r6   rM   )r7   rN   r   r   rR   r2   r1   r   r   r   r2      s    zGetTokensResult.startElementrO   r   r   r   r   rR      s   rR   N)decimalr   Zboto.compatr   r   r   objectr   r   r8   rA   rB   rD   rE   rF   rG   rH   rI   rP   rQ   rR   r   r   r   r   <module>   s    						