TinyMenu is a simple yet effective utility to simplify and speed up the creation of customizable command-line menus in Python. It is marked by its plain and basic functionality, leaving implementation details up to the developer.
In order to use TinyMenu functionality the following import statement is required:
import tinymenu
The code snippet below will create a basic command-line menu containg one command. An explanation and other available attributes and functions are documented below.
def handle_help_command(cmd, *args):
"""
Function that is called when user enters 'help' command
"""
print('You entered the help command!')
menu = tinymenu.TinyMenu()
menu.prompt = '$> '
command = tinymenu.Command('help', handle_help_command)
command.arg_limit = [0] # Don't allow any command arguments
menu.add_command(command)
menu.run()
Output:
$> help
You entered the help command!
prompt
(expects string) - Stores prompt to be displayed (e.g.:$>
or~/home>
)interrupt_handler
(expects method/function) - Stores method/function to be called onKeyboardInterrupt
- e.g.:
def handle_interrupt()
- e.g.:
unknown_command_handler
(expects method/function) - Stores method/function to be called when an unknown command was entered- 1st argument: entered command [
string
] - 2nd argument: command arguments [
*string
] - e.g.:
def handle_unknown_command(cmd, *cmd_arguments)
- 1st argument: entered command [
invalid_args_handler
(expects method/function) - Stores method/function to be called when a command with invalid command arguments was entered- 1st argument: entered command [
Command
(see below)] - 2nd argument command arguments [
string
] - e.g.:
def handle_invalid_args(cmd, *cmd_arguments)
- 1st argument: entered command [
add_command(command)
- Adds a command to the menu- command -
Command
(see below) to be added
- command -
remove_command(command)
- Removes a command from the menu- command -
Command
(see below) to be added
- command -
run()
- Starts the menu and listens for input
__init__(command, handler)
- Initialization ofCommand
instancecommand
(expects string) - Stores name of the command (string to be entered in menu)handler
(expects method/function) - Stores method/function to be called when command entered- 1st argument: entered command [
Command
] - 2nd argument: command arguments [
*string
]
- 1st argument: entered command [
arg_limit
(expects list of integers) - Stores possible amounts of arguments (None
= no limit)
TinyMenu does not have any dependencies and is compatible with Python 2 & Python 3