Browse Source

Add option to return instantly on single item in cli_select_item()

cli_select_item() allows to quickly launch a menu from code, but if only
a single item is given a selection is not necessary in most cases.
Therefore we now instantly return the given value in these cases. This
can be turned off by setting return_single=False
master
Sebastian Lohff 2 years ago
parent
commit
9fe596bc01
  1. 8
      clintermission/climenu.py

8
clintermission/climenu.py

@ -295,9 +295,15 @@ class CliMenu: @@ -295,9 +295,15 @@ class CliMenu:
self._ran = True
def cli_select_item(options, header=None, abort_exc=ValueError, abort_text="Selection aborted.", style=None):
def cli_select_item(options, header=None, abort_exc=ValueError, abort_text="Selection aborted.", style=None,
return_single=True):
"""Helper function to quickly get a selection with just a few arguments"""
menu = CliMenu(header=header, options=options, style=style)
if return_single and menu.num_options == 1:
item = menu.get_options()[0]
return item.num, item.item
if not menu.success:
raise abort_exc(abort_text)

Loading…
Cancel
Save