o
    įYr
                     @   sD   d dl Z ddlmZmZ dddZdddZdd	d
ZdddZdS )    N   )string_typesinputc                 C   sJ   | |rd| pd }||  drdpd7 }	 t|}|r|S |dur$|S q)z
    Grab user input from command line.

    :param name: prompt text
    :param default: default value if no input provided.
     [%s] ? : TN)endswithr   namedefaultpromptrv r   H/opt/passgen/flask-venv/lib/python3.10/site-packages/flask_script/cli.pyr      s   r   c                 C   sL   | |rd| pd }||  drdpd7 }	 t|}|r|S |dur%|S q)z
    Grabs hidden (password) input from command line.

    :param name: prompt text
    :param default: default value if no input provided.
    r   r   r   r   r	   TN)r
   getpassr   r   r   r   prompt_pass   s   
r   Fc                 C   sV   |pd}|pd}	 t | |r|d p|d }|s|S | |v r"dS | |v r*dS q	)a+  
    Grabs user input from command line and converts to boolean
    value.

    :param name: prompt text
    :param default: default value if no input provided.
    :param yes_choices: default 'y', 'yes', '1', 'on', 'true', 't'
    :param no_choices: default 'n', 'no', '0', 'off', 'false', 'f'
    )yyes1ontruet)nno0offfalsefTr   F)r   lower)r   r   yes_choices
no_choicesr   r   r   r   prompt_bool+   s   r#   nonec                 C   s   g }g }|D ]#}t |tr|| n|d|d |d f  |d }|| q	 t| dd|  | }||v r?dS ||v sG||krI|S q+)ae  
    Grabs user input from command line from set of provided choices.

    :param name: prompt text
    :param choices: list or tuple of available choices. Choices may be
                    single strings or (key, value) tuples.
    :param default: default value if no input provided.
    :param no_choice: acceptable list of strings for "null choice"
    z%s [%s]r   r   Tz - (%s)z, N)
isinstancer   appendr   joinr    )r   choicesr   	no_choice_choicesoptionschoicer   r   r   r   prompt_choicesC   s   
r.   )N)FNN)Nr$   )r   _compatr   r   r   r   r#   r.   r   r   r   r   <module>   s   


