B
    ?F[                 @   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 0lib/python3.7/site-packages/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   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 )N)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   s    z*ResponseElement.__repr__.<locals>.<lambda>c             S   s   | d  d S )Nr   _)
startswith)r    r   r   r   r!   4   s    z{0}({1})z, )r   __dict__itemsr   r   r   joinr   )r	   ZrenderZdo_showattrsr   r   r   __repr__2   s
    
zResponseElement.__repr__c             C   s   d S )Nr   )r	   r
   r'   r   r   r   r   startElement9   s    zResponseElement.startElementc             C   s   || j krt| || d S )N)r   setattr)r	   r
   r   r   r   r   r   r   =   s    
zResponseElement.endElement)NN)	r   r   r   r   propertyr   r(   r)   r   r   r   r   r   r   (   s
   
r   c                   s    e Zd ZdZ fddZ  ZS )r   Z	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   )r*   r   r   r   r   r   r)   getattr)r	   r
   r'   r   )r   r   r   r)   E   s    zResponse.startElement)r   r   r   r   r)   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Value)r	   r   r   r   r(   P   s    zComplexAmount.__repr__c             C   s
   t | jS )N)floatr/   )r	   r   r   r   	__float__S   s    zComplexAmount.__float__c             C   s
   t | jS )N)strr/   )r	   r   r   r   __str__V   s    zComplexAmount.__str__c                s.   |dkrd |}t|tt| |||S )N)r.   r/   z%Unrecognized tag {0} in ComplexAmount)r   AssertionErrorr   r-   r)   )r	   r
   r'   r   message)r   r   r   r)   Y   s    
zComplexAmount.startElementc                s(   |dkrt |}tt| ||| d S )Nr/   )r   r   r-   r   )r	   r
   r   r   )r   r   r   r   _   s    zComplexAmount.endElement)	r   r   r   r(   r1   r3   r)   r   r   r   r   )r   r   r-   O   s
   r-   c               @   s   e Zd Zdd ZdS )AmountCollectionc             C   s   t | |t|d t| |S )N)r
   )r*   r-   r,   )r	   r
   r'   r   r   r   r   r)   f   s    zAmountCollection.startElementN)r   r   r   r)   r   r   r   r   r6   e   s   r6   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AvailableBalances)r
   )r*   r6   r,   r   r7   r)   )r	   r
   r'   r   )r   r   r   r)   l   s    
zAccountBalance.startElement)r   r   r   r)   r   r   r   )r   r   r7   k   s   r7   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 )Nr7   )r
   )r*   r7   r,   r   r8   r)   )r	   r
   r'   r   )r   r   r   r)   t   s
    
z$GetAccountBalanceResult.startElement)r   r   r   r)   r   r   r   )r   r   r8   s   s   r8   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OutstandingPrepaidLiability)r
   )r*   r6   r,   r   r9   r)   )r	   r
   r'   r   )r   r   r   r)   }   s
    
z+GetTotalPrepaidLiabilityResult.startElement)r   r   r   r)   r   r   r   )r   r   r9   |   s   r9   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PrepaidBalance)r
   )r*   r6   r,   r   r:   r)   )r	   r
   r'   r   )r   r   r   r)      s
    
z$GetPrepaidBalanceResult.startElement)r   r   r   r)   r   r   r   )r   r   r:      s   r:   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OutstandingDebt)r
   )r*   r6   r,   r   r;   r)   )r	   r
   r'   r   )r   r   r   r)      s
    
z,GetOutstandingDebtBalanceResult.startElement)r   r   r   r)   r   r   r   )r   r   r;      s   r;   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FeesPaid)r
   )r*   r-   r,   r   r<   r)   )r	   r
   r'   r   )r   r   r   r)      s
    
zTransactionPart.startElement)r   r   r   r)   r   r   r   )r   r   r<      s   r<   c                   s(   e Zd Z fddZ fddZ  ZS )Transactionc                s   g | _ tt| j|| d S )N)r<   r   r=   r   )r	   argskw)r   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 )Nr<   )r
   )ZTransactionAmountZFPSFeesZBalance)r,   appendr<   r*   r-   r   r=   r)   )r	   r
   r'   r   )r   r   r   r)      s    
zTransaction.startElement)r   r   r   r   r)   r   r   r   )r   r   r=      s   r=   c                   s(   e Zd Z fddZ fddZ  ZS )GetAccountActivityResultc                s   g | _ tt| j|| d S )N)r=   r   rB   r   )r	   r>   r?   )r   r   r   r      s    z!GetAccountActivityResult.__init__c                s@   |dkr,t | |t|d t | |d S tt| |||S )Nr=   )r
   r@   )r,   rA   r=   r   rB   r)   )r	   r
   r'   r   )r   r   r   r)      s
    z%GetAccountActivityResult.startElement)r   r   r   r   r)   r   r   r   )r   r   rB      s   rB   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 )Nr=   )r
   )r*   r=   r,   r   rC   r)   )r	   r
   r'   r   )r   r   r   r)      s
    
z!GetTransactionResult.startElement)r   r   r   r)   r   r   r   )r   r   rC      s   rC   c                   s(   e Zd Z fddZ fddZ  ZS )GetTokensResultc                s   g | _ tt| j|| d S )N)Tokenr   rD   r   )r	   r>   r?   )r   r   r   r      s    zGetTokensResult.__init__c                s@   |dkr,t | |t|d t | |d S tt| |||S )NrE   )r
   r@   )r,   rA   r   r   rD   r)   )r	   r
   r'   r   )r   r   r   r)      s
    zGetTokensResult.startElement)r   r   r   r   r)   r   r   r   )r   r   rD      s   rD   N)Zdecimalr   Zboto.compatr   r   r   objectr   r   r-   r6   r7   r8   r9   r:   r;   r<   r=   rB   rC   rD   r   r   r   r   <module>   s    						