diff options
| author | John Estabrook <jestabro@vyos.io> | 2024-04-07 21:46:43 -0500 | 
|---|---|---|
| committer | John Estabrook <jestabro@vyos.io> | 2024-04-07 21:46:43 -0500 | 
| commit | 5a8be747febc13b7d3be88e8ace7ec2aa0b2ca28 (patch) | |
| tree | c6e7ae23242ed80ca22f6e5bbeb89a59841fe707 /python | |
| parent | 08b5ee0a694344855ba81856238c238b8426a00a (diff) | |
| download | vyos-1x-5a8be747febc13b7d3be88e8ace7ec2aa0b2ca28.tar.gz vyos-1x-5a8be747febc13b7d3be88e8ace7ec2aa0b2ca28.zip | |
utils.io: T6207: allow default in select_entry
Diffstat (limited to 'python')
| -rw-r--r-- | python/vyos/utils/io.py | 12 | 
1 files changed, 8 insertions, 4 deletions
| diff --git a/python/vyos/utils/io.py b/python/vyos/utils/io.py index 0afaf695c..7e6045291 100644 --- a/python/vyos/utils/io.py +++ b/python/vyos/utils/io.py @@ -13,7 +13,7 @@  # You should have received a copy of the GNU Lesser General Public  # License along with this library.  If not, see <http://www.gnu.org/licenses/>. -from typing import Callable +from typing import Callable, Optional  def print_error(str='', end='\n'):      """ @@ -81,7 +81,8 @@ def is_dumb_terminal():      return os.getenv('TERM') in ['vt100', 'dumb']  def select_entry(l: list, list_msg: str = '', prompt_msg: str = '', -                 list_format: Callable = None,) -> str: +                 list_format: Optional[Callable] = None, +                 default_entry: Optional[int] = None) -> str:      """Select an entry from a list      Args: @@ -99,6 +100,9 @@ def select_entry(l: list, list_msg: str = '', prompt_msg: str = '',              print(f'\t{i}: {list_format(e)}')          else:              print(f'\t{i}: {e}') -    select = ask_input(prompt_msg, numeric_only=True, -                       valid_responses=range(1, len(l)+1)) +    valid_entry = range(1, len(l)+1) +    if default_entry and default_entry not in valid_entry: +        default_entry = None +    select = ask_input(prompt_msg, default=default_entry, numeric_only=True, +                       valid_responses=valid_entry)      return next(filter(lambda x: x[0] == select, en))[1] | 
