Skip to content

petereon/yakh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

yakh

yakh (Yet Another Keypress Handler) tries to handle keypresses from the stdin in the terminal in high-level platform indepdendent manner.

Installation

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

Usage

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 by ord 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 submodule

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.

Full list of keys can be seen here and here.