"""Utilities related to user input."""
+import logging
import signal
import sys
from typing import List
import exceptions
+logger = logging.getLogger(__file__)
+
+
def single_keystroke_response(
valid_responses: List[str],
*,
try:
while True:
response = readchar.readchar()
+ logger.debug(f'Keystroke: {ord(response)}')
if response in valid_responses:
break
if ord(response) in os_special_keystrokes:
response = _single_keystroke_response_internal(
valid_responses, timeout_seconds
)
+ if ord(response) == 3:
+ raise KeyboardInterrupt('User pressed ^C in input_utils.')
+
except exceptions.TimeoutError:
if default_response is not None:
response = default_response