Skip to main content

A terminal-based menu system using blessed.

Project description

Starri

Starri is a simple Python library for creating terminal-based menus. It supports navigation with the arrow keys and submenus for a dynamic user experience.

Installation

You can install Starri with pip:

pip install starri

Usage

Here’s how to use Starri:

# Comments unnecessary, just for explanation

from starri import *

def main():
    starri(
        title = "Main Menu", # Shown at the top of the screen
        content = {
            spacer() # Blank line, cannot be selected
            text("Please Select an Option Below.") # Text, cannot be selected
            spacer() # Blank line, cannot be selected
            option("Option 1", option1()) # Basic option, can be selected. first arg is the text for the option, second arg is what it does if selected
            option("Option 2", option2()) # Basic option, can be selected. first arg is the text for the option, second arg is what it does if selected
            option("Option 3", option3()) # Basic option, can be selected. first arg is the text for the option, second arg is what it does if selected
            option("Option 4", option4()) # Basic option, can be selected. first arg is the text for the option, second arg is what it does if selected
            option("Option 5", option5()) # Basic option, can be selected. first arg is the text for the option, second arg is what it does if selected
            option("Exit", exit()) # Basic option, can be selected. first arg is the text for the option, second arg is what it does if selected
        }
    )

def option1():
    starri(
        title = "You Pressed Option 1!" # Shown at the top of the screen
        content = {
            option("Go Back", main()) # Basic option, can be selected. first arg is the text for the option, second arg is what it does if selected
        }
    )

def option2():
    starri(
        title = "You Pressed Option 2!" # Shown at the top of the screen
        content = {
            spacer() # Blank line, cannot be selected
            text("Example Confirmation?") # Text, cannot be selected
            spacer() # Blank line, cannot be selected
            sidebyside("Yes", dosomething(), "No", cancel()) # Two options, side by side. navigate betweeen the two by using the left and right arrow keys. horizontally centered by default, and spaced evenly.
        }
    )

def option3():
    starri(
        title = "You Pressed Option 3!" # Shown at the top of the screen
        content = {
            spacer() # Blank line, cannot be selected
            text("Checkboxes Example")  # Text, cannot be selected
            spacer() # Blank line, cannot be selected
            checkbox(
                "Checkbox 1", False, # First arg is the text for the checkbox, second arg is whether it is checked by default
                "Checkbox 2", False, # First arg is the text for the checkbox, second arg is whether it is checked by default
                "Checkbox 3", False, # First arg is the text for the checkbox, second arg is whether it is checked by default
                "Checkbox 4", False, # First arg is the text for the checkbox, second arg is whether it is checked by default
                "Checkbox 5", False, # First arg is the text for the checkbox, second arg is whether it is checked by default

                submitbutton("Submit", exampleactionaftercheckboxes()) # Text for the submit button

            )

        }
    )

def exampleactionaftercheckboxes():
    if box1:
        print("Checkbox 1 is checked!")
    if box2:
        print("Checkbox 2 is checked!")
    if box3:
        print("Checkbox 3 is checked!")
    if box4:
        print("Checkbox 4 is checked!")
    if box5:
        print("Checkbox 5 is checked!")

def option4():
    starri(
        title = "You Pressed Option 4!" # Shown at the top of the screen
        content = {
            spacer() # Blank line, cannot be selected
            text("Text Input Example") # Text, cannot be selected
            spacer() # Blank line, cannot be selected
            textinput("Enter some text:", exampleactionaftertextinput()) # Text input, first arg is the prompt, second arg is what to do with the input. second arg is called on enter when selected
        }
    )
    
if __name__ == "__main__":
    main()

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

starri-1.4.7.tar.gz (3.8 kB view details)

Uploaded Source

Built Distribution

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

starri-1.4.7-py3-none-any.whl (4.0 kB view details)

Uploaded Python 3

File details

Details for the file starri-1.4.7.tar.gz.

File metadata

  • Download URL: starri-1.4.7.tar.gz
  • Upload date:
  • Size: 3.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for starri-1.4.7.tar.gz
Algorithm Hash digest
SHA256 e0e7cd03ca8941c42189ec20944006df60b1bfe2b86feb4c14a8309a41c97ecf
MD5 f0be2d6777894ec9fe392291a1564d10
BLAKE2b-256 f84063999c62e009a044e959800545eb81352e787b3acf63123c11b4caaf8660

See more details on using hashes here.

File details

Details for the file starri-1.4.7-py3-none-any.whl.

File metadata

  • Download URL: starri-1.4.7-py3-none-any.whl
  • Upload date:
  • Size: 4.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for starri-1.4.7-py3-none-any.whl
Algorithm Hash digest
SHA256 81a3a382de7d9b072abf1a2c4362ea2c14f79b810b3de16b1af8d2b8a93a6748
MD5 a165751b83bd56e33c2543a751e2e982
BLAKE2b-256 d942c41cd483cb65c9c1cf829f489374ffd2b91ddeeb992b87477720d830653f

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