o
    +ke\                     @   sd   d dl Z d dlZd dlZd dlZd dlZdZdZdZdddddddeeeddddeddfdd	Z	dS )
    N)ZNoZNOnoNn0)ZYesYESyesYy1)ZDefaultDEFAULTdefaultDd z{} (from {})FTc                    s>  d fdd	} p| du rt j|
dvrtd| r$|| ddd	 	 d}|r@tj|}|dur@|r@||||d
|d |du ra|sH|
S z| }W n ty`   |
rZ|d n|d }Y nw ||	v rn|rl||d |
S ||v r{|ry||d dS ||v r|r||d dS |r||d |s|
S |r||ddd	 d}q%)ab  Output <msg> (usually a question) and let user input an answer.
    Qualifies the answer according to falsish, truish and defaultish as True, False or <default>.
    If it didn't qualify and retry is False (no retries wanted), return the default [which
    defaults to False]. If retry is True let user retry answering until answer is qualified.

    If env_var_override is given and this var is present in the environment, do not ask
    the user, but just use the env var contents as answer as if it was typed in.
    Otherwise read input from stdin and proceed as normal.
    If EOF is received instead an input or an invalid input without retry possibility,
    return default.

    :param msg: introducing message to output on ofile, no 
 is added [None]
    :param retry_msg: retry message to output on ofile, no 
 is added [None]
    :param false_msg: message to output before returning False [None]
    :param true_msg: message to output before returning True [None]
    :param default_msg: message to output before returning a <default> [None]
    :param invalid_msg: message to output after a invalid answer was given [None]
    :param env_msg: message to output when using input from env_var_override ['{} (from {})'],
           needs to have 2 placeholders for answer and env var name
    :param falsish: sequence of answers qualifying as False
    :param truish: sequence of answers qualifying as True
    :param defaultish: sequence of answers qualifying as <default>
    :param default: default return value (defaultish answer was given or no-answer condition) [False]
    :param retry: if True and input is incorrect, retry. Otherwise return default. [True]
    :param env_var_override: environment variable name [None]
    :param ofile: output stream [sys.stderr]
    :param input: input function [input from builtins]
    :return: boolean answer value, True or False
    Fc                    sn   t tddd}|r#|td|  | d tt|tj	d d S |r/t| ddd	 d S t| d d S )
NborgjsonFzquestion_%s)typemsgidmessage)filer   T)r   endflush)
getattrlogging	getLoggerupdatedictprintr   dumpssysstderr)msgZmsg_type	is_promptkwargsZjson_outputr   ofile 4usr/lib/python3.10/site-packages/borg/helpers/yes.pyoutput.   s   zyes.<locals>.outputN)TFz,invalid default value, must be True or FalsepromptT)r"   Z
env_answer)Zenv_varr   Zaccepted_defaultZaccepted_trueZaccepted_falseZinvalid_answerZprompt_retry)F)r   r    
ValueErrorosenvirongetformatEOFError)r!   Z	false_msgZtrue_msgZdefault_msgZ	retry_msgZinvalid_msgZenv_msgZfalsishZtruishZ
defaultishr   retryZenv_var_overrider%   inputr)   r   r(   Zanswerr&   r$   r'   r      sT   "




r   )
r   r   r+   os.pathr   ZFALSISHZTRUISHZ
DEFAULTISHr1   r   r&   r&   r&   r'   <module>   s    