Skip to content

Commit

Permalink
docs: switch from rst to markdown
Browse files Browse the repository at this point in the history
  • Loading branch information
Cube707 committed Aug 15, 2022
1 parent 3d89fdf commit 33ae2e8
Show file tree
Hide file tree
Showing 3 changed files with 118 additions and 159 deletions.
116 changes: 116 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
[![GitHub Repository](https://badges.aleen42.com/src/github.svg)](https://github.com/magmax/python-readchar)
[![Latest PyPI version](https://img.shields.io/pypi/v/readchar.svg)](https://pypi.python.org/pypi/readchar)
[![supported Python versions](https://img.shields.io/pypi/pyversions/readchar)](https://pypi.python.org/pypi/readchar)
[![Project licence](https://img.shields.io/pypi/l/readchar?color=blue)](LICENCE) \
[![Automated testing results](https://github.com/magmax/python-readchar/actions/workflows/run-tests.yaml/badge.svg?branch=master)](https://github.com/magmax/python-readchar/actions/workflows/run-tests.yaml?query=branch%3Amaster)
[![Coveralls results](https://coveralls.io/repos/github/magmax/python-readchar/badge.svg?branch=master)](https://coveralls.io/github/magmax/python-readchar?branch=master)
[![Number of PyPI downloads](https://img.shields.io/pypi/dd/readchar.svg)](https://pypi.python.org/pypi/readchar)

# python-readchar

Library to easily read single chars and keystrokes.

Born as a [python-inquirer](https://github.com/magmax/python-inquirer) requirement.


## Installation

simply install it via `pip`:

```bash
pip install readchar
```

Or download the source code from [PyPi](https://pypi.python.org/pypi/readchar).


## Usage

Simply read a character or keystroke:

```python
import readchar

key = readchar.readkey()
```

React to different kinds of keypresses:

```python
from readchar import readkey, key

while True:
k = readkey()
if k == "a":
# do stuff
if k == key.DOWN:
# do stuff
if k == key.ENTER:
break
```


## API

There are just two methods:

### `readchar() -> str`

Reads one character from `stdin`, returning it as a string with length 1. Waits until a character is available.

As only ASCII characters are actually a single character, you usually want to use the next function, that also handles longer keys.

### `readkey() -> str`

Reads the next keystroke from `stdin`, returning it as a string. Waits
until a keystroke is available.

A keystroke can be:

- single characters as returned by `readchar()`. These include:
- character for normal keys: 'a', 'Z', '9',...
- special characters like 'ENTER', 'BACKSPACE', 'TAB',...
- combinations with 'CTRL': 'CTRL'+'A',...
- keys that are made up of multiple characters:
- characters for cursors/arrows: 🡩, 🡪, 🡫, 🡨
- navigation keys: 'INSERT', 'HOME',...
- function keys: 'F1' to 'F12'
- combinations with 'ALT': 'ALT'+'A',...
- combinations with 'CTRL' and 'ALT': 'CTRL'+'ALT'+'SUPR',...

> **Note**
> 'CTRL'+'C' will not be returned by `readkey()`, but instead raise a `KeyboardInterupt`. If you what to handle it yourself, use `readchar()`.
### `readchar.key` module

This submodule contains a list of available keys to compare against. The constants are defined depending on your operating system, so it should be
fully portable. If a key is listed here for your platform, `readkey()` can read it, and you can compare against it.


## OS Support

This library actively supports these operating systems:

- Linux
- Windows

Some operating systems are enabled, but not actively tested or supported:

- macOS
- FreeBSD

Theoretically every Unix based system should work, but they will not be actively tested. It is also required that somebody provides initial test
results before the OS is enabled and added to the list. Feel free to open a PR for that.

Thank you!


## How to contribute

You have an issue problem or found a bug? You have a great new idea or just want to fix a typo? Great :+1:. We are happy to accept your issue or pull
request, but first, please read our [contribution guidelines](https://github.com/magmax/python-readchar/blob/master/CONTRIBUTING.md). They will also
tell you how to write code for this repo and how to properly prepare an issue or a pull request.

-----

*Copyright (c) 2014-2022 Miguel Ángel García*
157 changes: 0 additions & 157 deletions README.rst

This file was deleted.

4 changes: 2 additions & 2 deletions setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
name = readchar
version = attr: readchar.__version__
description = Library to easily read single chars and key strokes
long_description = file: README.rst
long_description_content_type = text/x-rst
long_description = file: README.md
long_description_content_type = text/markdown
url = https://github.com/magmax/python-readchar
author_email = [email protected]
license = MIT
Expand Down

0 comments on commit 33ae2e8

Please sign in to comment.