ó
Ì	g]c           @   sA   d  Z  d d l m Z d „  Z d d „ Z d „  Z d „  Z d S(	   s   
Common validation functions
iÿÿÿÿ(   t
   basestringc         C   s,   t  |  t ƒ s( t d | |  f ƒ ‚ n  d S(   s<   Require that value is a string

    :raises: TypeError

    s+   %s must be a str or unicode str, but got %rN(   t
   isinstanceR    t	   TypeError(   t   valuet
   value_name(    (    s4   /srv/kernel/kteam-tools/dashboard/pika/validators.pyt   require_string   s    t   callbackc         C   s)   t  |  ƒ s% t d | |  f ƒ ‚ n  d S(   sO   Require that callback is callable and is not None

    :raises: TypeError

    s(   callback %s must be callable, but got %rN(   t   callableR   (   R   t   callback_name(    (    s4   /srv/kernel/kteam-tools/dashboard/pika/validators.pyt   require_callback   s    c         C   s0   |  d k r t St |  ƒ r  t St d ƒ ‚ d S(   s~   Verify callback is callable if not None

    :returns: boolean indicating nowait
    :rtype: bool
    :raises: TypeError

    s0   completion callback must be callable if not NoneN(   t   Nonet   TrueR   t   FalseR   (   R   (    (    s4   /srv/kernel/kteam-tools/dashboard/pika/validators.pyt   rpc_completion_callback"   s
    c         C   s7   t  | ƒ d k  r3 d j |  | ƒ } t | ƒ ‚ n  d S(   su   Verify that value is zero or greater. If not, 'name'
    will be used in error message

    :raises: ValueError

    i    s   {} must be >= 0, but got {}N(   t   intt   formatt
   ValueError(   t   nameR   t   errmsg(    (    s4   /srv/kernel/kteam-tools/dashboard/pika/validators.pyt   zero_or_greater6   s    N(   t   __doc__t   pika.compatR    R   R	   R   R   (    (    (    s4   /srv/kernel/kteam-tools/dashboard/pika/validators.pyt   <module>   s
   		