python-cli-menu is a simple cross-plateform Python module that allows you to easilly create pretty custom menus in console. Customize the title, options, every colors and initial cursor position as you wish. Use arrows keys to navigate through the menu and enter key to select an option.
Quickstart
def menu(
title: str | Sequence[str],
options: list[str] | tuple[str, ...],
cursor_color: str | tuple[int, int, int],
title_color: (
str | tuple[int, int, int] | None |
Sequence[str | tuple[int, int, int] | None]
) = None,
options_color: (
str | tuple[int, int, int] | None |
Sequence[str | tuple[int, int, int] | None]
) = None,
initial_cursor_position: str | int = 0,
) -> str:
Creates a pretty menu in console with arrow key navigation and returns the selected option. Clears console once an option is selected.
titleis the main title of the menu, can be displayed on multiple lines if a list or a tuple is passed.optionsis the list of actions or choices that can be selected.cursor_coloris the color of the cursor, available colors arered,green,yellow,blue,magenta,cyan,whiteand their lighter versions (e.g.light_red), use custom color by providing a tuple containing color RGB values.title_coloris the color of the title, available colors are the same ascursor_color, customize the color of each line by providing a list of colors, each color will be associated with the line of the corresponding index (default color is terminal text color).options_coloris the color of options, available colors are the same ascursor_color, customize every option color by providing a list of colors, each color will be associated with the option of the corresponding index (default color is terminal text color).initial_cursor_positionis the option or the index of the option where the initial cursor position is set (default position is first element).
Examples :
from pythonclimenu import menu
OPTIONS = ["Option 1", "Option 2", "Option 3", "Quit"]
# Creates a simple console menu with blue cursor
menu1 = menu(title="Amazing Console Menu", options=OPTIONS, cursor_color="blue")
menu2 = menu(
title = ["Amazing Console", "Menu"], # displays title on multiple lines
options = OPTIONS,
cursor_color = (255, 95, 46), # sets the cursor color using RGB values
title_color = [
"blue", # colors "Amazing Console"
"light_red" # colors "Menu"
],
initial_cursor_position = -1 # sets cursor default position to 'Quit'
)
menu3 = menu(
title = ["Amazing Console", "Menu"], # displays title on multiple lines
options = OPTIONS,
cursor_color = "yellow",
title_color = "light_green", # colors all lines of title
options_color = [
"magenta", # colors options[0]
"light_cyan", # colors options[1]
(192, 11, 168) # colors options[2]
# option[3] color is not specifed so it will be considered as None
],
initial_cursor_position = OPTIONS[1] # sets cursor default position to 'Option 1'
)
Metadata
Release files for python-cli-menu 1.8.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| python_cli_menu-1.8.1.tar.gz | 7.2 kB | Without provenance | Details for python_cli_menu-1.8.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| python_cli_menu-1.8.1-py3-none-any.whl | Python 3 | none | any | Details for python_cli_menu-1.8.1-py3-none-any.whl |
Total release size: 15.0 kB
Security for python-cli-menu 1.8.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.