code: def get_command_arg_list(self, command_name: str, to_parse: Union[Statement, str],
                               preserve_quotes: bool) -> Tuple[Statement, List[str]]:
          
          # Check if to_parse needs to be converted to a Statement
          if not isinstance(to_parse, Statement):
              to_parse = self.parse(command_name + ' ' + to_parse, expand=False)
  
          if preserve_quotes:
              return to_parse, to_parse.arg_list
          else:
              return to_parse, to_parse.argv[1:]
docs: Called by the argument_list and argparse wrappers to retrieve just the arguments being
          passed to their do_* methods as a list.
  
          :param command_name: name of the command being run
          :param to_parse: what is being passed to the do_* method. It can be one of two types:
                           1. An already parsed Statement
                           2. An argument string in cases where a do_* method is explicitly called
                              e.g.: Calling do_help('alias create') would cause to_parse to be 'alias create'
  
                              In this case, the string will be converted to a Statement and returned along
                              with the argument list.
  
          :param preserve_quotes: if True, then quotes will not be stripped from the arguments
          :return: A tuple containing:
                      The Statement used to retrieve the arguments
                      The argument list