projects
/
python_utils.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Press any key to continue.
[python_utils.git]
/
input_utils.py
diff --git
a/input_utils.py
b/input_utils.py
index 77094daaa7a70cd83ebf0e2b5ba0adac311d2b01..635e349009f174c9d7a69b68b38a93c4abf5f4bc 100644
(file)
--- a/
input_utils.py
+++ b/
input_utils.py
@@
-7,7
+7,7
@@
import logging
import signal
import sys
import logging
import signal
import sys
-from typing import List
+from typing import List
, Optional
import readchar # type: ignore
import readchar # type: ignore
@@
-17,7
+17,7
@@
logger = logging.getLogger(__file__)
def single_keystroke_response(
def single_keystroke_response(
- valid_responses:
List[str],
+ valid_responses:
Optional[List[str]], # None = accept anything
*,
prompt: str = None,
default_response: str = None,
*,
prompt: str = None,
default_response: str = None,
@@
-29,7
+29,7
@@
def single_keystroke_response(
raise exceptions.TimeoutError()
def _single_keystroke_response_internal(
raise exceptions.TimeoutError()
def _single_keystroke_response_internal(
- valid_responses:
List[str], timeout_seconds=
None
+ valid_responses:
Optional[List[str]], timeout_seconds: int =
None
) -> str:
os_special_keystrokes = [3, 26] # ^C, ^Z
if timeout_seconds is not None:
) -> str:
os_special_keystrokes = [3, 26] # ^C, ^Z
if timeout_seconds is not None:
@@
-40,7
+40,7
@@
def single_keystroke_response(
while True:
response = readchar.readchar()
logger.debug('Keystroke: 0x%x', ord(response))
while True:
response = readchar.readchar()
logger.debug('Keystroke: 0x%x', ord(response))
- if response in valid_responses:
+ if
not valid_responses or
response in valid_responses:
break
if ord(response) in os_special_keystrokes:
break
break
if ord(response) in os_special_keystrokes:
break
@@
-73,6
+73,10
@@
def yn_response(prompt: str = None, *, timeout_seconds=None) -> str:
).lower()
).lower()
+def press_any_key(prompt: str = "Press any key to continue...", *, timeout_seconds=None) -> str:
+ return single_keystroke_response(None, prompt=prompt, timeout_seconds=timeout_seconds)
+
+
def keystroke_helper() -> None:
"""Misc util to watch keystrokes and report what they were."""
def keystroke_helper() -> None:
"""Misc util to watch keystrokes and report what they were."""