diff options
Diffstat (limited to 'tools/debug_input_cross_platform.py')
-rwxr-xr-x | tools/debug_input_cross_platform.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/tools/debug_input_cross_platform.py b/tools/debug_input_cross_platform.py new file mode 100755 index 0000000..55f6190 --- /dev/null +++ b/tools/debug_input_cross_platform.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python +""" +Read input and print keys. +For testing terminal input. + +Works on both Windows and Posix. +""" +import asyncio + +from prompt_toolkit.input import create_input +from prompt_toolkit.keys import Keys + + +async def main() -> None: + done = asyncio.Event() + input = create_input() + + def keys_ready(): + for key_press in input.read_keys(): + print(key_press) + + if key_press.key == Keys.ControlC: + done.set() + + with input.raw_mode(): + with input.attach(keys_ready): + await done.wait() + + +if __name__ == "__main__": + asyncio.run(main()) |