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
This commit is contained in:
parent
d926606976
commit
9fe596bc01
|
@ -295,9 +295,15 @@ class CliMenu:
|
||||||
self._ran = True
|
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"""
|
"""Helper function to quickly get a selection with just a few arguments"""
|
||||||
menu = CliMenu(header=header, options=options, style=style)
|
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:
|
if not menu.success:
|
||||||
raise abort_exc(abort_text)
|
raise abort_exc(abort_text)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue