ó
±xYc           @  s¡   d  Z  d d l m Z d d l m Z d d l m Z m Z d d l m	 Z	 d Z
 d
 e f d „  ƒ  YZ d e	 e e ƒ f d „  ƒ  YZ d e f d „  ƒ  YZ d S(   uV   
Input validation for a `Buffer`.
(Validators will be called before accepting input.)
iÿÿÿÿ(   t   unicode_literalsi   (   t   to_simple_filter(   t   ABCMetat   abstractmethod(   t   with_metaclassu   ConditionalValidatoru   ValidationErroru	   Validatort   ValidationErrorc           B  s&   e  Z d  Z d d d „ Z d „  Z RS(   uš   
    Error raised by :meth:`.Validator.validate`.

    :param cursor_position: The cursor position where the error occured.
    :param message: Text.
    i    u    c         C  s,   t  t |  ƒ j | ƒ | |  _ | |  _ d  S(   N(   t   superR   t   __init__t   cursor_positiont   message(   t   selfR   R	   (    (    s8   lib/python2.7/site-packages/prompt_toolkit/validation.pyR      s    	c         C  s   d |  j  j |  j |  j f S(   Nu"   %s(cursor_position=%r, message=%r)(   t	   __class__t   __name__R   R	   (   R
   (    (    s8   lib/python2.7/site-packages/prompt_toolkit/validation.pyt   __repr__   s    (   R   t
   __module__t   __doc__R   R   (    (    (    s8   lib/python2.7/site-packages/prompt_toolkit/validation.pyR      s   t	   Validatorc           B  s   e  Z d  Z e d „  ƒ Z RS(   u5   
    Abstract base class for an input validator.
    c         C  s   d S(   u·   
        Validate the input.
        If invalid, this should raise a :class:`.ValidationError`.

        :param document: :class:`~prompt_toolkit.document.Document` instance.
        N(    (   R
   t   document(    (    s8   lib/python2.7/site-packages/prompt_toolkit/validation.pyt   validate'   s    (   R   R   R   R   R   (    (    (    s8   lib/python2.7/site-packages/prompt_toolkit/validation.pyR   #   s   t   ConditionalValidatorc           B  s    e  Z d  Z d „  Z d „  Z RS(   uq   
    Validator that can be switched on/off according to
    a filter. (This wraps around another validator.)
    c         C  s1   t  | t ƒ s t ‚ | |  _ t | ƒ |  _ d  S(   N(   t
   isinstanceR   t   AssertionErrort	   validatorR   t   filter(   R
   R   R   (    (    s8   lib/python2.7/site-packages/prompt_toolkit/validation.pyR   7   s    	c         C  s#   |  j  ƒ  r |  j j | ƒ n  d  S(   N(   R   R   R   (   R
   R   (    (    s8   lib/python2.7/site-packages/prompt_toolkit/validation.pyR   =   s    (   R   R   R   R   R   (    (    (    s8   lib/python2.7/site-packages/prompt_toolkit/validation.pyR   2   s   	N(   u   ConditionalValidatoru   ValidationErroru	   Validator(   R   t
   __future__R    t   filtersR   t   abcR   R   t   sixR   t   __all__t	   ExceptionR   t   objectR   R   (    (    (    s8   lib/python2.7/site-packages/prompt_toolkit/validation.pyt   <module>   s     