
    ړi9                    `    d dl mZ d dlmZ d dlmZ d dlmZmZ ddl	m
Z
 dgZ G d de      Zy	)
    )annotations)Callable)Document)ValidationError	Validator   )unindent_codePythonValidatorc                  "    e Zd ZdZdddZddZy)r
   z
    Validation of Python input.

    :param get_compiler_flags: Callable that returns the currently
        active compiler flags.
    Nc                    || _         y N)get_compiler_flags)selfr   s     9/tmp/pip-target-20744g9h/lib/python/ptpython/validator.py__init__zPythonValidator.__init__   s
    "4    c                   t        |j                        }|j                  d      ry|j                         j                  d      ry	 | j                  r| j	                         }nd}t        |dd|d       y# t        $ rH}|j                  |j                  xs d	d	z
  |j                  xs d	d	z
        }t        |d
|       d}~wt        $ r}t        dt        |            d}~wt        $ r}t        dd
|       d}~ww xY w)z7
        Check input for Python syntax errors.
        N!r   z<input>execT)flagsdont_inheritr   zSyntax Error: )r	   text
startswithlstripr   compileSyntaxErrortranslate_row_col_to_indexlinenooffsetr   	TypeErrorstr
ValueError)r   documentr   r   eindexs         r   validatezPythonValidator.validate   s     X]]+ ??6" ;;=##C(	;&&//1D)V5tL 	?
 77Q!#ahhm!q%8E "%>!)=>> 	-!!SV,, 	; "!~aS%9::	;s1   	/A9 9	DACDC&&D2DDr   )r   zCallable[[], int] | NonereturnNone)r$   r   r(   r)   )__name__
__module____qualname____doc__r   r'    r   r   r
   r
      s    5&;r   N)
__future__r   typingr   prompt_toolkit.documentr   prompt_toolkit.validationr   r   utilsr	   __all__r
   r.   r   r   <module>r5      s(    "  , @  
1;i 1;r   