Silently attempt to parse args.  If there is a failure then we
        ignore the effects.  Using an in-place namespace object ensures we
        capture as many of the valid arguments as possible when the argparse
        system would otherwise throw away the results.

def silent_parse_args(self, command, args):
        """ Silently attempt to parse args.  If there is a failure then we
        ignore the effects.  Using an in-place namespace object ensures we
        capture as many of the valid arguments as possible when the argparse
        system would otherwise throw away the results. """
        args_ns = argparse.Namespace()
        stderr_save = argparse._sys.stderr
        stdout_save = argparse._sys.stdout
        argparse._sys.stderr = os.devnull
        argparse._sys.stdout = os.devnull
        try:
            command.argparser.parse_known_args(args, args_ns)
        except BaseException:
            pass
        finally:
            argparse._sys.stderr = stderr_save
            argparse._sys.stdout = stdout_save
        return args_ns