Files
utility_menu/template.py

61 lines
1.9 KiB
Python

# template.py
# used for the examples. these imports can be removed later
import os
import time
class TEMPLATE:
def __init__(self, initial_temp_c=25.0):
# add self.[parameters] here and update method details
self.title = "Template Utility"
self.usage = """This template can be used to define the CLASS
that menu.py will use to generate the utility UI"""
self.methods = [
{
"name": "os_info",
"title": "Print OS information",
"description": "Print basic information from the OS"
},
{
"name": "add_one",
"title": "Number incrementer with error checking",
"description": "Add 1 to a number"
},
{
"name": "divide_by_zero",
"title": "Divide anything by 0",
"description": "Returns the input divded by 0"
}
]
def os_info(self, unused_input=""):
"""Print OS information"""
return [
["OS:", "Environment Variables:", "Local Time"], # Header row
[f"{os.name}", f"{os.getenv('PATH')}", f"{time.localtime()}"]
]
def add_one(self, input):
"""Number incrementer with error checking!"""
try:
input_plus_one = float(input) + 1
except:
input_plus_one = "[red][bold]NAN[/bold][/red]"
return [
[f"{input} + 1"], # Header row
[f"{input_plus_one}"]
]
def divide_by_zero(self, input):
"""Divide anything by 0"""
return [
[f"{input} / 0"], # Header row
["more than 255"]
]
if __name__ == "__main__":
obj = TEMPLATE()
# when not using menu.py, direct CLI calls can be handled here
obj.os_info()