Skip to main content

A python package that makes it easy and intuitive to create good looking CLI menus

Project description

AirBag CLI Menu

CLI menu module for python3 by AirBag65

Getting started

To use the module you should be working within a virtual environment, or venv for short. If you don't already have one set up you can run one of these commands:

Windows:

python -m venv <name-of-venv>

MacOS / Linux:

python3 -m venv <name-of-venv>

When your venv is ready, you enter it with the following command:

Windows:

<name-of-venv>\Scripts\activate

MacOS / Linux:

source <name-of-venv>/bin/activate

When you have activated the virtual environment and running from within it, you can install airbagclimenu, with one of the following commands:

Windows:

py -m pip install --index-url https://test.pypi.org/simple/ --no-deps airbagclimenu

MacOS / Linux:

python3 -m pip install --index-url https://test.pypi.org/simple/ --no-deps airbagclimenu

Usage

Make sure to use this exact import statement for the following to work:

from airbagclimenu import Menu

To create and run the menu, you do as follows:

menu = Menu.CLIMenu()
menu.run()

To add alternatives in the menu you have two options. You can add a function that will execute when that option is chosen, or you can add a submenu, which reveals more options when chosen.

add_menu_option(menu_option: MenuOption)

This method takes one parameter which should be of type MenuOption. See example usecase below:

menu = Menu.CLIMenu()
# You can add a submenu directly by creating it as a parameter like this
menu.add_menu_option(Menu.MenuOption("Submenu 1"))
# Or you can create it as a variable and use the variable as the parameter
option2 = Menu.MenuOption("Submenu 2")
menu.add_menu_opntion(option2)

The second option is recommended in order to be able to add even more submenus and functions to the submenu.

add_func(functionality, title: str)

This method takes two parameters. The first paramter is a function object, and the second is the title that will be displayed in the menu. See usecase below:

menu = Menu.CLIMenu()
def greet():
    print("Hello There!")

menu.add_func(greet, "Say Hello")

The function that is used must be parameterless, since there is no way of giving parameters as of now.

Example Program

from airbagclimenu import Menu
import random

menu = Menu.CLIMenu()

def roll_die():
    val = random.randint(1,6)
    print(f"You rolled a {val}")

def greet1():
    print("Hello There!")

def greet_all():
    print("Hello, World!")

menu_op = Menu.MenuOption("Greetings")
menu_op.add_func(greet1, "Greet person")
menu_op.add_func(greet_all, "Greet everyone")

menu.add_menu_option(menu_op)
menu.add_func(roll_die, "Roll A Die")
menu.run()

The output of this program will be the following:

[1] Greetings
[2] Roll A Die
: 1

The 1st option was chosen here so the program enters this state:

[1] Greet person
[2] Greet everyone
: 1
Hello There!

If you like my work

Feel free to send a small donation via the GitHub page if you like my work! But by all means, DO NOT feel preasured to do so!! paypal qr code

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

airbagclimenu-1.0.0.tar.gz (68.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

airbagclimenu-1.0.0-py3-none-any.whl (4.2 kB view details)

Uploaded Python 3

File details

Details for the file airbagclimenu-1.0.0.tar.gz.

File metadata

  • Download URL: airbagclimenu-1.0.0.tar.gz
  • Upload date:
  • Size: 68.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.3

File hashes

Hashes for airbagclimenu-1.0.0.tar.gz
Algorithm Hash digest
SHA256 53be97d73cea5be8b11ebede1d90d3fc57b667cb749322410eaebeab01e9ce5d
MD5 987783e741cec87d30496055872ed1d4
BLAKE2b-256 6895084d120ead7d19042e46b2b4b9b68648a03567c76a2f1ae8bf72e3b0215a

See more details on using hashes here.

File details

Details for the file airbagclimenu-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: airbagclimenu-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 4.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.3

File hashes

Hashes for airbagclimenu-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 236b2d4d2cf4f045ec3c41f03220aa00c4af704f2bec4ff36a4867e4c9d63fe9
MD5 821dea7b331db2d2a3eae53da95ba387
BLAKE2b-256 c609dd0000cb867f366756e5454d215106e021d0767ae30aa8693d13d5efb140

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page