in awscli/completer.py [0:0]
def _find_possible_options(self, current_arg, opts, subcmd_help=None):
all_options = copy.copy(self.main_options)
if subcmd_help is not None:
all_options += self._get_documented_completions(
subcmd_help.arg_table
)
for option in opts:
# Look through list of options on cmdline. If there are
# options that have already been specified and they are
# not the current word, remove them from list of possibles.
if option != current_arg:
stripped_opt = option.lstrip('-')
if stripped_opt in all_options:
all_options.remove(stripped_opt)
cw = current_arg.lstrip('-')
possibilities = ['--' + n for n in all_options if n.startswith(cw)]
if len(possibilities) == 1 and possibilities[0] == current_arg:
return self._complete_option(possibilities[0])
return possibilities