Skip to content

Instantly share code, notes, and snippets.

@GluTbl
Created July 6, 2024 03:25
Show Gist options
  • Save GluTbl/1d3bb968b023f562795f12058660461f to your computer and use it in GitHub Desktop.
Save GluTbl/1d3bb968b023f562795f12058660461f to your computer and use it in GitHub Desktop.
[Qprompt Menu] using menu selection in qprompt #python
import json
from typing import List, Dict, Any
from qprompt import Menu
class QpromptMenu:
def __init__(self, header: str, data: List[Dict[str, Any]], key_to_show):
self._data = data
self._key_to_show = key_to_show
self._header = header
def _menu_maker(self):
menu = Menu()
for num in range(len(self._data)):
item = self._data[num]
menu.add(f"{num + 1}", item[self._key_to_show])
return menu
def _item_resolver(self, value):
value = int(value) - 1
return self._data[value]
def show(self):
# - header (str) - String to show above menu.
# - note (str) - String to show as a note below menu.
# - msg (str) - String to show below menu.
# - dft (str) - Default value if input is left blank.
menu = self._menu_maker()
return self._item_resolver(menu.show(header=self._header))
data = [
{"ssid": "ssidname1", "password": "password1"},
{"ssid": "ssidname2", "password": "password2"},
{"ssid": "ssidname3", "password": "password3"}
]
qp_menu = QpromptMenu("Please select the ssid",data, "ssid")
print(
json.dumps(qp_menu.show(), indent=4)
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment