"""Utility function for handling command-line yes/no input.""" def query_yes_no(question: str, default: str = "yes") -> bool: """Credit to pdumoulin/feng-shui-py. """ valid = {"yes": True, "y": True, "no": False, "n": False} if default is None: prompt = "[y/n]" elif default == "yes": prompt = "[Y/n]" elif default == "no": prompt = "[y/N]" else: raise ValueError(f'invalid default answer: "{default}"') while True: print(f"{question} {prompt}: ", end="") choice = input().lower() if default is not None and choice == "": return valid[default] elif choice in valid: return valid[choice] else: print(f'invalid voice "{choice}" from {[x for x in valid.keys()]}')