U
    3d_                     @   s$   d dl Z dd ZG dd deZdS )    Nc                 C   s"   zt |  W dS    Y dS X d S )NTF)int)v r   8/tmp/pip-unpacked-wheel-d7dsrkjd/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 }|sd}g }|D ]}t|trXt d||f  || |d7 }q&|\}}	}
|
r|
|dkrt d||	|
f  || |d7 }q&|	|dkr&t d||	f  || |d7 }q&|rttd|t|f }|dr|dd  }ntz(t|}|dkrW d S ||d  }W nJ t	k
rH   t d|  Y n* t
k
rp   t d	|t|f  Y nX qt d
 d}q|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
isinstance
basestringappendfind	raw_inputlen
startswithr   
ValueError
IndexError)selfZ	item_listZ
search_strpromptchoicenchoicesitemobjiddescvalZint_valr   r   r   choose_from_list    sP    









zIObject.choose_from_listNc                 C   s<   d}|s8t d| }|r2||}|s6td|  qd}q|S )NFz%s: 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}|st d||f }tj|}tj|r:d}qtj|rx|}| t|}|rrtj||}d}qd}qt	d|  d}q|S )NFr   z%s: %sTr!   )
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   