B
    è?F[_  ã               @   s$   d dl Z dd„ ZG dd„ deƒZdS )é    Nc             C   s   yt | ƒ dS    dS d S )NTF)Úint)Úv© r   ú3lib/python3.7/site-packages/boto/mashups/iobject.pyÚ
int_val_fn   s
    r   c               @   s0   e Zd Zddd„Zddd„Zdd	„ Zd
d„ ZdS )ÚIObjectÚ úEnter Selectionc             C   s  |st dƒ d S d }xt|sŠd}g }x¬|D ]¤}t|tƒr^t d||f ƒ | |¡ |d7 }q,|\}}	}
|
r |
 |¡dkrÐt d||	|
f ƒ | |¡ |d7 }q,|	 |¡dkr,t d||	f ƒ | |¡ |d7 }q,W |r|td|t|ƒf ƒ}| d¡r|dd … }nry&t|ƒ}|dkr d S ||d  }W nJ t	k
rP   t d| ƒ Y n* t
k
rx   t d	|t|ƒf ƒ Y nX qt d
ƒ d}qW |S )NzNo Choices Availableé   z[%d] %sr   z[%d] %s - %sz
%s[1-%d]: ú/z%s is not a valid choicez %s is not within the range[1-%d]zNo objects matched your patternr   )ÚprintÚ
isinstanceZ
basestringÚappendÚfindÚ	raw_inputÚlenÚ
startswithr   Ú
ValueErrorÚ
IndexError)ÚselfZ	item_listZ
search_strÚpromptZchoiceÚnÚchoicesÚitemÚobjÚidZdescÚvalZint_valr   r   r   Úchoose_from_list    sN    









zIObject.choose_from_listNc             C   s@   d}x6|s:t d| ƒ}|r4||ƒ}|s8td| ƒ qd}qW |S )NFz%s: zInvalid value: %sT)r   r   )r   r   Zvalidation_fnÚokayr   r   r   r   Ú
get_stringN   s    zIObject.get_stringc             C   s’   d}d}x„|sŒt d||f ƒ}tj |¡}tj |¡r<d}q
tj |¡rz|}|  t |¡¡}|rttj ||¡}d}qŠd}q
t	d| ƒ d}q
W |S )NFr   z%s: %sTzInvalid value: %s)
r   ÚosÚpathÚ
expanduserÚisfileÚisdirr   ÚlistdirÚjoinr   )r   r   r   r   r!   r   r   r   Úget_filenameZ   s"    zIObject.get_filenamec             C   s   |   |t¡}t|ƒS )N)r   r   r   )r   r   Úsr   r   r   Úget_into   s    zIObject.get_int)r   r	   )N)Ú__name__Ú
__module__Ú__qualname__r   r   r'   r)   r   r   r   r   r      s
    
-
r   )r    r   Úobjectr   r   r   r   r   Ú<module>   s   