feat(input): Password prompt, rename

This commit is contained in:
2026-04-10 08:58:40 +02:00
parent 6018d6256d
commit 0697bef7d5

View File

@@ -0,0 +1,46 @@
from typing import Optional
import getpass
import time
def choice(default: str, options: str, msg: str) -> str:
default = default.lower()
formatted_options = "".join(
[(opt + "/" if opt != default else default.upper() + "/") for opt in options]
)[:-1]
choice = input(msg + " [" + formatted_options + "] ")
if choice == "":
return default
else:
return choice.lower()
def confirm(is_true_default: bool, msg: Optional[str] = ""):
return (
choice(
"y" if is_true_default else "n",
"yn",
(msg if msg != "" and msg != None else "Do you really want to continue?"),
)
== "y"
)
def confirm_overwrite(msg: Optional[str] = ""):
return confirm(
False, (msg if msg != "" else "Do you really want to overwrite your changes?")
)
def password(msg: str = ""):
pw = ""
if msg != "":
pw = getpass.getpass(msg)
else:
pw = getpass.getpass()
if pw != "":
return pw
else:
time.sleep(1)
print("Error: Password cannot be empty")
return password(msg)