Menu
Easily create command-line menus.
Install
pip install Menu
Note: Use with Python 2 requires the future package to be installed.
Create the Menu
The Menu constructor arguments are all optional. The arguments are options, title, message, prompt, and refresh. Options is a list of tuples consisting of a name and a handler. Refresh is a handler called before showing the menu.
Menu() # empty menu, will close upon opening
Menu(options=[("Option Name", optionHandler)]) # customize the options
Menu(options=[("Option Name", optionHandler, {'key': val})]) # add kwargs to option handlers
Menu(title="Menu title") # customize the title
Menu(message="Message text") # customize the message, disabled by default
Menu(prompt=">") # customize the user input prompt
Menu(refresh=refreshHandler) # customize the refresh handler
Open the Menu
menu = Menu()
menu.open()
Close the Menu
from the instance after creating the menu
menu = Menu()
menu.close()
or use the static method before creating the menu
Menu(options = [("Close", Menu.CLOSE)])
Edit the menu
menu = Menu()
menu.set_options([("new option name", newOptionHandler)])
menu.set_title("new title")
menu.set_message("new message")
menu.set_prompt("new prompt")
Create a Submenu
main = Menu(title = "Main Menu")
sub = Menu(title = "Submenu")
main.set_options([
("Open submenu", sub.open),
("Close main menu", main.close)
])
sub.set_options([
("Return to main menu", sub.close)
])
main.open()
Example
Development
Symlink package to immediately see changes locally
$ pip install -e .
Run the tests
$ python test/tests.py
Build
$ python setup.py sdist
Note: Might need to login first with python setup.py register
Publish to PyPI
$ twine upload dist/*
Release files for Menu 3.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| Menu-3.2.2.tar.gz | 3.6 kB | Details |
Release files / Menu-3.2.2.tar.gz
| Download URL | Menu-3.2.2.tar.gz |
|---|---|
| Size | 3.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8143eeec772937d4adc80b5a451f827da3dcdc9b2a1f850b4734e5d5e50d3dc4
|
|
BLAKE2b-256 checksum How to use checksums |
a15766755041c5fa34386869bb4dda9d79938ef1b06b57360c2e0ccbb81d5b27
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/2.7.16
|