Skip to main content

PyConsoleMenu2

An extreamly easy to use Python console menu. (fork ver.)

Features:

  • Cross platform, interactive selection
  • Flexible Builder pattern
  • Multi selection and Callback selection support

Preview

Selector

See other

Installation 💾

pip install PyConsoleMenu2

Usage example 👨‍💻

from PyConsoleMenu2 import BaseMenu, ItemMenu, MultiMenu

# basic usage, get the index
ret = BaseMenu("title: BaseMenu").add_options(["a", "b", "c"]).run()
print(ret)  # 0 / 1 / 2

# get the name, and more options
ret = (
    BaseMenu("title: BaseMenu")
    .add_options(["a", "b", "c"])
    .add_option("d")
    .default_index(1)
    .prefix("[")
    .suffix("]")
    .raise_when_too_small()
    .on_user_cancel(lambda: print("cancel"))
    .run_get_item()
)
print(ret)  # a / b / c / d

# multi selection (use space to select)
ret = MultiMenu("title: MultiMenu").max_count(2).add_options(["a", "b", "c"]).run()
print(ret)

# each option related to an item. could be used as callback function.
func = (
    ItemMenu("title: ItemMenu")
    .add_option("a", lambda: print("a"))
    .add_options([("b", lambda: print("b")), ("c", lambda: print("c"))])
    .run_get_item()
)
func()

See more examples

Document

  • Three types of menus: BaseMenu (only strings), MultiMenu (multi selections), ItemMenu (binds items to each option)
  • Keybindings: See code
  • methods:
    • run: get index of selected option.
    • run_get_item: get the related item of selected option. Option string for BaseMenu, a set of string for MultiMenu, and user given item for ItemMenu.
    • raise_when_too_small: when set to True, raise a error.RenderException, otherwise ignore drawing.
    • on_user_cancel: exec a function when user cancel the input. If not set, raise KeyboardInterrupt by default.
    • ...

Additional

There's problem when displaying CJK string on windows terminal, caused by upstream dependency windows-curses. But still usable.

Release files for PyConsoleMenu2 1.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for PyConsoleMenu2 1.2.0
File Size Uploaded
pyconsolemenu2-1.2.0.tar.gz 8.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for PyConsoleMenu2 1.2.0
File Interpreter ABI Platform
pyconsolemenu2-1.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 14.7 kB

Release files / pyconsolemenu2-1.2.0.tar.gz

Download URL pyconsolemenu2-1.2.0.tar.gz
Size 8.0 kB
Tags Source
SHA-256 checksum
How to use checksums
1934cbaacb2d00bac955db85f88a1c77757613fd17b9c7ca6f8d017aac08113e
BLAKE2b-256 checksum
How to use checksums
3319fe54fbf648847f8b73f067f59fcba06cc164665c3933d82edb49c4d56f3e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.5

Release files / pyconsolemenu2-1.2.0-py3-none-any.whl

Download URL pyconsolemenu2-1.2.0-py3-none-any.whl
Size 6.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a199a11e4f34ad75168a4590911de59f7f10fb87eb8974f766c9bdd7f5e2eef8
BLAKE2b-256 checksum
How to use checksums
579431f9d8892fddd0cbb9646d3c7858b98ed951108ca2eb6780132348afea49
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.5

Release history Release notifications | RSS feed

This release

1.2.0 This release

2 release files

1.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page