def default_prompt(msg: str, default: t.Optional = None, **kwargs):
"""
Wrapper around prompt that shows a nicer prompt with a default value that isn't editable.
Interpretes the empty string as "use default value".
:param msg: message
:param default: default value
:param kwargs: arguments passed directly to the prompt function
:return: user input
"""
msg = message(msg, default)
if default is not None and "validator" in kwargs:
vali = kwargs["validator"]
if isinstance(vali, TypeValidator):
vali.allow_empty = True
if isinstance(vali, WordValidator):
vali.allow_empty = True
res = prompt(msg, **kwargs)
if res == "" and default is not None:
return default
return res
评论列表
文章目录