ó
è?F[c           @   s<   d  d l  Z  d e f d „  ƒ  YZ d e f d „  ƒ  YZ d S(   iÿÿÿÿNt	   Converterc           B   sb   e  Z e d  „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z RS(   c         C   s   t  | t ƒ s t ‚ n  | S(   N(   t
   isinstancet
   basestringt
   ValueError(   t   clst   paramt   value(    (    s0   lib/python2.7/site-packages/boto/roboto/param.pyt   convert_string   s    	c         C   s
   t  | ƒ S(   N(   t   int(   R   R   R   (    (    s0   lib/python2.7/site-packages/boto/roboto/param.pyt   convert_integer"   s    c         C   s   t  S(   st   
        For command line arguments, just the presence
        of the option means True so just return True
        (   t   True(   R   R   R   (    (    s0   lib/python2.7/site-packages/boto/roboto/param.pyt   convert_boolean'   s    c         C   s3   t  j j | ƒ r) t  j j | ƒ r) | St ‚ d  S(   N(   t   ost   patht   existst   isdirR   (   R   R   R   (    (    s0   lib/python2.7/site-packages/boto/roboto/param.pyt   convert_file/   s    %c         C   s    t  j j | ƒ r | St ‚ d  S(   N(   R   R   R   R   (   R   R   R   (    (    s0   lib/python2.7/site-packages/boto/roboto/param.pyt   convert_dir5   s    c         C   sf   yI t  |  d | j ƒ r2 t |  d | j ƒ } n	 |  j } | | | ƒ SWn t | d ƒ ‚ n Xd  S(   Nt   convert_t    (   t   hasattrt   ptypet   getattrR   t   ValidationException(   R   R   R   t   mthd(    (    s0   lib/python2.7/site-packages/boto/roboto/param.pyt   convert;   s    	(	   t   __name__t
   __module__t   classmethodR   R	   R   R   R   R   (    (    (    s0   lib/python2.7/site-packages/boto/roboto/param.pyR       s   t   Paramc           B   s˜   e  Z d d  e d d d d d d d d e d „ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z	 e d „  ƒ Z
 e d	 „  ƒ Z d
 „  Z RS(   t   stringR   i   c         C   sp   | |  _  | |  _ | |  _ | |  _ | |  _ | |  _ | |  _ | |  _ |	 |  _ |
 |  _	 | |  _
 | |  _ d  S(   N(   t   nameR   t   optionalt
   short_namet	   long_namet   doct   metavart   cardinalityt   defaultt   choicest   encodert   request_param(   t   selfR   R   R    R!   R"   R#   R$   R%   R&   R'   R(   R)   (    (    s0   lib/python2.7/site-packages/boto/roboto/param.pyt   __init__H   s    											c         C   s#   d  } |  j r d |  j } n  | S(   Ns   --%s(   t   NoneR"   (   R*   t   ln(    (    s0   lib/python2.7/site-packages/boto/roboto/param.pyt   optparse_long_nameY   s    	c         C   s#   d  } |  j r d |  j } n  | S(   Ns   --%s(   R,   R"   (   R*   R-   (    (    s0   lib/python2.7/site-packages/boto/roboto/param.pyt   synopsis_long_name`   s    	c         C   s?   d  } |  j r; d |  j } |  j d k r; | d 7} q; n  | S(   Ns   %st   booleant   =(   R,   R"   R   (   R*   R-   (    (    s0   lib/python2.7/site-packages/boto/roboto/param.pyt   getopt_long_nameg   s    	c         C   s#   d  } |  j r d |  j } n  | S(   Ns   -%s(   R,   R!   (   R*   t   sn(    (    s0   lib/python2.7/site-packages/boto/roboto/param.pyt   optparse_short_namep   s    	c         C   s#   d  } |  j r d |  j } n  | S(   Ns   -%s(   R,   R!   (   R*   R3   (    (    s0   lib/python2.7/site-packages/boto/roboto/param.pyt   synopsis_short_namew   s    	c         C   s?   d  } |  j r; d |  j } |  j d k r; | d 7} q; n  | S(   Ns   %sR0   t   :(   R,   R!   R   (   R*   R3   (    (    s0   lib/python2.7/site-packages/boto/roboto/param.pyt   getopt_short_name~   s    	c         C   s   t  t |  ƒ j |  | ƒ S(   sB  
        Convert a string value as received in the command line
        tools and convert to the appropriate type of value.
        Raise a ValidationError if the value can't be converted.

        :type value: str
        :param value: The value to convert.  This should always
                      be a string.
        (   t   superR   R   (   R*   R   (    (    s0   lib/python2.7/site-packages/boto/roboto/param.pyR   ‡   s    
N(   R   R   R,   R
   R+   t   propertyR.   R/   R2   R4   R5   R7   R   (    (    (    s0   lib/python2.7/site-packages/boto/roboto/param.pyR   F   s   					(   R   t   objectR    R   (    (    (    s0   lib/python2.7/site-packages/boto/roboto/param.pyt   <module>   s   -