def getScriptArgumentParser(args=sys.argv):
    """Return ArgumentParser object
    
    Kwargs:
        args (list):        list of arguments that will be parsed.  The default
                            is the sys.argv list, and should be correct for most
                            use cases.
        components (list)   
    
    Returns:
        ArgumentParser object that can be used to validate and execute the
        current script invocation.
    """
    # Description
    parser = argparse.ArgumentParser(
            description=DESCRIPTION)
    # source
    parser.add_argument('config_file',
            help="Valid script configration file.  This should be the path to "\
                 "the script XML configuration file.  See config_sample.xml"\
                 "for detailed config specifications.")
    
    # --verbose
    parser.add_argument('--verbose',
            action='store_true',
            help="Echo verbose messages to stdout.")
    
    # --verbose
    parser.add_argument('--debug',
            action='store_true',
            help="Echo debug messages to stdout.")
    
    return parser