'Complete the full name for partial subcommands'

def _get_values(self, action, arg_strings):

    if ((action.nargs == PARSER) and self.subparsers):
        subcommand = arg_strings[0]
        if (subcommand not in self.subparsers.choices):
            matches = [x for x in self.subparsers.choices if x.startswith(subcommand)]
            if (len(matches) == 1):
                arg_strings[0] = matches[0]
    return super(ArgumentParser, self)._get_values(action, arg_strings)
