projects
/
python_utils.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add another profanity.
[python_utils.git]
/
input_utils.py
diff --git
a/input_utils.py
b/input_utils.py
index 153641b135cfd7debb9b4e20e60ca400316c4dca..a166d7a4169e56937e8bb63c4398aff1abc52564 100644
(file)
--- a/
input_utils.py
+++ b/
input_utils.py
@@
-2,13
+2,17
@@
"""Utilities related to user input."""
"""Utilities related to user input."""
-import
readchar # type: ignore
+import
logging
import signal
import sys
from typing import List
import signal
import sys
from typing import List
+import readchar # type: ignore
+
import exceptions
import exceptions
+logger = logging.getLogger(__file__)
+
def single_keystroke_response(
valid_responses: List[str],
def single_keystroke_response(
valid_responses: List[str],
@@
-33,6
+37,7
@@
def single_keystroke_response(
try:
while True:
response = readchar.readchar()
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:
if response in valid_responses:
break
if ord(response) in os_special_keystrokes:
@@
-46,9
+51,10
@@
def single_keystroke_response(
print(prompt, end="")
sys.stdout.flush()
try:
print(prompt, end="")
sys.stdout.flush()
try:
- response = _single_keystroke_response_internal(
- valid_responses, timeout_seconds
- )
+ 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
except exceptions.TimeoutError:
if default_response is not None:
response = default_response