kbdebugger-demo / src /kbdebugger /utils /terminal_interface.py
faris-abuali's picture
Upload 227 files
399944f verified
Raw
History Blame Contribute Delete
977 Bytes
import os
def print_message(message: str, options: list[str]):
print(f"Q: {message}")
print("A: Choose an option:")
for i, option in enumerate(options, 1):
print(f"\t{i}. {option}")
print(f"\t{len(options) + 1}. Exit")
def interface(message: str, options: list[str]) -> str | None:
print_message(message, options)
options_length = len(options) + 1 # +1 for `Exit` option
while True:
try:
choice = int(input(f"Enter your choice (1, .., or {options_length}): "))
if choice > 0 and choice < options_length:
print()
return options[choice - 1]
elif choice == options_length:
print("Exiting the program.\n")
os._exit(0)
else:
print(f"Invalid choice. Please choose (1, .., or {options_length})\n")
except ValueError:
print(f"Invalid choice. Please choose (1, .., or {options_length})\n")