summaryrefslogtreecommitdiff
path: root/cmd2/argparse_completer.py
diff options
context:
space:
mode:
authorTodd Leonhardt <todd.leonhardt@gmail.com>2018-05-23 16:23:48 -0400
committerGitHub <noreply@github.com>2018-05-23 16:23:48 -0400
commit5d64ebee348aeffb02fc385f903c9af431e3721b (patch)
tree5802d2d54efba2402a8b13d73c14b6be975ba91b /cmd2/argparse_completer.py
parentc2594ff278ac50556cf4781910439ea1977a5873 (diff)
parent3d953628f1dbf7119001fa0751086b3b6016f764 (diff)
downloadcmd2-git-5d64ebee348aeffb02fc385f903c9af431e3721b.tar.gz
Merge pull request #411 from python-cmd2/autocompleter
Fixes problem with not passing the parameter hint suppression down to…
Diffstat (limited to 'cmd2/argparse_completer.py')
-rwxr-xr-xcmd2/argparse_completer.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/cmd2/argparse_completer.py b/cmd2/argparse_completer.py
index 1995b8d5..d98a6eac 100755
--- a/cmd2/argparse_completer.py
+++ b/cmd2/argparse_completer.py
@@ -75,6 +75,7 @@ from .rl_utils import rl_force_redisplay
# attribute that can optionally added to an argparse argument (called an Action) to
# define the completion choices for the argument. You may provide a Collection or a Function.
ACTION_ARG_CHOICES = 'arg_choices'
+ACTION_SUPPRESS_HINT = 'suppress_hint'
class _RangeAction(object):
@@ -261,6 +262,7 @@ class AutoCompleter(object):
sub_completers[subcmd] = AutoCompleter(action.choices[subcmd], subcmd_start,
arg_choices=subcmd_args,
subcmd_args_lookup=subcmd_lookup,
+ tab_for_arg_help=tab_for_arg_help,
cmd2_app=cmd2_app)
sub_commands.append(subcmd)
self._positional_completers[action.dest] = sub_completers
@@ -555,8 +557,19 @@ class AutoCompleter(object):
return []
def _print_action_help(self, action: argparse.Action) -> None:
+ # is parameter hinting disabled globally?
if not self._tab_for_arg_help:
return
+
+ # is parameter hinting disabled for this parameter?
+ try:
+ suppress_hint = getattr(action, ACTION_SUPPRESS_HINT)
+ except AttributeError:
+ pass
+ else:
+ if suppress_hint:
+ return
+
if action.option_strings:
flags = ', '.join(action.option_strings)
param = ''