Skip to main content

Yet Another Keypress Handler

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python_yakh-0.3.1.tar.gz (4.6 kB view hashes)

Uploaded Source

Built Distribution

python_yakh-0.3.1-py3-none-any.whl (5.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page