From 157a9e501cbdc92d553a9f2fb11c925f15dc58a8 Mon Sep 17 00:00:00 2001 From: Mathew Guest Date: Sun, 19 Jul 2020 00:42:28 -0600 Subject: [PATCH] repeated fix for python version --- app_skellington/cli.py | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/app_skellington/cli.py b/app_skellington/cli.py index 3aebd1f..9d38c7d 100644 --- a/app_skellington/cli.py +++ b/app_skellington/cli.py @@ -83,6 +83,7 @@ class CommandTree: # NOTE(MG) Fix below strategizes whether to pass in 'required' # paremter to ArgumentParser.add_subparsers() # which was added in in Python3.7. + # Must also be written into SubMenu.create_submenu. func_args = { 'dest': param_name, 'metavar': param_name, @@ -469,12 +470,27 @@ class SubMenu: help='sub-submenu help', description='sub-sub description') + # NOTE(MG) Fix below strategizes whether to pass in 'required' + # paremter to ArgumentParser.add_subparsers() + # which was added in in Python3.7. + # Must also be written into SubMenu.create_submenu. + func_args = { + 'dest': var_name, + 'metavar': var_name, + 'required': is_required + } + if ( + sys.version_info.major == 3 + and sys.version_info.minor <= 6 + ): + if is_required: + _bootstrap_logger.warn('Unable to enforce required submenu: Requires >= Python 3.7') + del func_args['required'] # Turn entry into a submenu of it's own: # type = _SubParsersAction subp_node = entry_node.add_subparsers( - dest = var_name, - metavar = var_name, - required = is_required) + **func_args + ) submenu = SubMenu( self.parent,