
                         B    d dl mZ d dlmZmZ d dlmZ  G d de      Zy)    )unicode_literals)	ValidatorValidationError)string_typesc                       e Zd ZdZddZd Zy)SentenceValidatorz
    Validate input only when it appears in this list of sentences.

    :param sentences: List of sentences.
    :param ignore_case: If True, case-insensitive comparisons.
    c                 :   t        d |D              sJ t        |t              sJ t        |t              sJ t	        |      | _        || _        || _        || _        |r7t        | j
                  D cg c]  }|j                          c}      | _        y y c c}w )Nc              3   <   K   | ]  }t        |t                y w)N)
isinstancer   ).0ss     9lib/third_party/prompt_toolkit/contrib/validators/base.py	<genexpr>z-SentenceValidator.__init__.<locals>.<genexpr>   s     B	1:a.	s   )allr   boolr   list	sentencesignore_caseerror_messagemove_cursor_to_endsetlower)selfr   r   r   r   r   s         r   __init__zSentenceValidator.__init__   s    B	BBBB+t,,,-666i&*"4 T^^!D^!'')^!DEDN !Ds   3Bc                     |j                   | j                  vr;| j                  rt        |j                         }nd}t	        || j
                        y )Nr   )cursor_positionmessage)textr   r   lenr   r   )r   documentindexs      r   validatezSentenceValidator.validate   sK    ==.&&HMM*!%*.*<*<> > /    N)FzInvalid inputF)__name__
__module____qualname____doc__r   r"    r#   r   r   r      s    F>r#   r   N)
__future__r   prompt_toolkit.validationr   r   sixr   r   r(   r#   r   <module>r,      s    ' @ >	 >r#   