X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=input_utils.py;h=e0b457d5a0e73ffc43d3d83ff09228328e6a641e;hb=822454f580c1ff9eb207b8da46cdfae24e30cde1;hp=153641b135cfd7debb9b4e20e60ca400316c4dca;hpb=4c315e387f18010ba0b5661744ad3c792f21d2d1;p=python_utils.git diff --git a/input_utils.py b/input_utils.py index 153641b..e0b457d 100644 --- a/input_utils.py +++ b/input_utils.py @@ -2,14 +2,19 @@ """Utilities related to user input.""" -import readchar # type: ignore +import logging import signal import sys from typing import List +import readchar # type: ignore + import exceptions +logger = logging.getLogger(__file__) + + def single_keystroke_response( valid_responses: List[str], *, @@ -33,6 +38,7 @@ def single_keystroke_response( 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: @@ -49,6 +55,9 @@ def single_keystroke_response( 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