A terminal-based interactive menu selector which is controlled via arrow keys.
Project description
menuchoice
menuchoice is a terminal-based menu selector with different menu styles and features.
Usage
Creating a selection menu:
import menuchoice
menu = menuchoice.MenuSelector(items=[
"Hip-hop",
"Rock",
"Pop",
"Country",
"EDM",
], title="Most Streamed Music USA", description="Select a genre of music.")
[!TIP] items can be given brief descriptions if they are type dictionary:
{"option": "brief description"}
Arrow Selection
Arrow select will display an arrow which can be moved up/down with the arrow keys:
menu.arrow_select()
Output upon selection:
[(4, "EDM")]
Additionally, multiple options can be selected:
# no less than 2, no more than 3
menu.arrow_select(max_items=(2, 3))
# Adds an option to select all items
menu.arrow_select(allow_all=True)
Output:
[(4, "EDM"), (1, "Rock")]
Highlight Selecting
Highlight menus introduce the ability to have multiple pages (this is optional):
menu.highlight_select(pages=[[0, 1, 2], [3, 4]])
The above code will create two pages, the first page contains the first three options, the second contains the last two options.
To switch between these pages, use the left/right arrow keys.
The highlight menu can also disable options:
menu.highlight_select(disabled_items=[3])
This code above will prevent the user from selecting index 3 of the menus items (the fourth option).
Modifying Options
Menu selector items can have multiple options which can be navigated through with left/right arrow keys.
menu.modify_select(options=[(0, "second option", "third option")])
This will allow the user to use left/right arrow keys to navigate through 3 different options for a single item's line.
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
Built Distribution
Hashes for menuchoice-0.11-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 443a0f30fe7b4b6f631cbbacbd821c4e27648fe5155cd144549dee6505b5c459 |
|
MD5 | 0201e221b4831a0ba22f0be950053b32 |
|
BLAKE2b-256 | fd48dd7aa7df09382ac71ffc56138f2f8c4a024c6a6e7045ffc11f2f3d5e5d75 |