Builds an argument parser for the application's CLI.

    :param commands:
    :return: ArgumentParser

def get_application_parser(commands):
    """
    Builds an argument parser for the application's CLI.

    :param commands:
    :return: ArgumentParser
    """

    parser = argparse.ArgumentParser(
        description=configuration.APPLICATION_DESCRIPTION,
        usage =configuration.EXECUTABLE_NAME + ' [sub-command] [options]',
        add_help=False)

    parser.add_argument(
        'sub_command',
        choices=[name for name in commands],
        nargs="?")

    parser.add_argument("-h", "--help", action="store_true")
    return parser