yakh (Yet Another Keypress Handler) tries to handle keypresses from the stdin in the terminal in high-level platform indepdendent manner.
Yakh can be installed from PyPI using,
pip install python-yakh
or GitHub itself using poetry,
poetry add git+https://github.com/petereon/yakh.git
from yakh import get_key
from yakh.key import Keys
key = ''
while key not in ['q', Keys.ENTER]:
key = get_key()
if key.is_printable:
print(key)
yakh is dead-simple, there is only one function get_key()
which takes no arguments and blocks until a key is pressed.
For each keypress it creates an instance of Key
which holds:
.key
: characters representing the keypress.key_codes
: collection of Unicode code point encodings for all the characters (given byord
function).is_printable
: printability of the characters in the keypress
Additionally Key
instances
- are comparable with another
Key
instances,str
instances and Unicode code point representations (tuples of integers) - come with string representation for purposes of printing and string concatenation, which returns the content of
.key
attribute
yakh.key
sub-module contains platform dependent representations of certain keys under Keys
class. These are available namely for CTRL
key combinations and some other common keys.