def cli()

in ludwig/visualize.py [0:0]


def cli(sys_argv):
    parser = argparse.ArgumentParser(
        description='This script analyzes results and shows some nice plots.',
        prog='ludwig visualize',
        usage='%(prog)s [options]')

    parser.add_argument('-d', '--data_csv', help='raw data file')
    parser.add_argument('-g', '--ground_truth', help='ground truth file')
    parser.add_argument(
        '-gm',
        '--ground_truth_metadata',
        help='input metadata JSON file'
    )

    parser.add_argument(
        '-od',
        '--output_directory',
        help='directory where to save plots.'
             'If not specified, plots will be displayed in a window'
    )
    parser.add_argument(
        '-ff',
        '--file_format',
        help='file format of output plots',
        default='pdf',
        choices=['pdf', 'png']
    )

    parser.add_argument(
        '-v',
        '--visualization',
        choices=sorted(list(visualizations_registry.keys())),
        help='type of visualization',
        required=True
    )

    parser.add_argument(
        '-f',
        '--output_feature_name',
        default=[],
        help='name of the output feature to visualize'
    )
    parser.add_argument(
        '-gts',
        '--ground_truth_split',
        default=2,
        help='ground truth split - 0:train, 1:validation, 2:test split'
    )
    parser.add_argument(
        '-tf',
        '--threshold_output_feature_names',
        default=[],
        nargs='+',
        help='names of output features for 2d threshold'
    )
    parser.add_argument(
        '-pred',
        '--predictions',
        default=[],
        nargs='+',
        type=str,
        help='predictions files'
    )
    parser.add_argument(
        '-prob',
        '--probabilities',
        default=[],
        nargs='+',
        type=str,
        help='probabilities files'
    )
    parser.add_argument(
        '-trs',
        '--training_statistics',
        default=[],
        nargs='+',
        type=str,
        help='training stats files'
    )
    parser.add_argument(
        '-tes',
        '--test_statistics',
        default=[],
        nargs='+',
        type=str,
        help='test stats files'
    )
    parser.add_argument(
        '-hs',
        '--hyperopt_stats_path',
        default=None,
        type=str,
        help='hyperopt stats file'
    )
    parser.add_argument(
        '-mn',
        '--model_names',
        default=[],
        nargs='+',
        type=str,
        help='names of the models to use as labels'
    )
    parser.add_argument(
        '-tn',
        '--top_n_classes',
        default=[0],
        nargs='+',
        type=int,
        help='number of classes to plot'
    )
    parser.add_argument(
        '-k',
        '--top_k',
        default=3,
        type=int,
        help='number of elements in the ranklist to consider'
    )
    parser.add_argument(
        '-ll',
        '--labels_limit',
        default=0,
        type=int,
        help='maximum numbers of labels. '
             'If labels in dataset are higher than this number, "rare" label'
    )
    parser.add_argument(
        '-ss',
        '--subset',
        default='ground_truth',
        choices=['ground_truth', PREDICTIONS],
        help='type of subset filtering'
    )
    parser.add_argument(
        '-n',
        '--normalize',
        action='store_true',
        default=False,
        help='normalize rows in confusion matrix'
    )
    parser.add_argument(
        '-m',
        '--metrics',
        default=['f1'],
        nargs='+',
        type=str,
        help='metrics to dispay in threshold_vs_metric'
    )
    parser.add_argument(
        '-pl',
        '--positive_label',
        type=int,
        default=1,
        help='label of the positive class for the roc curve'
    )
    parser.add_argument(
        '-l',
        '--logging_level',
        default='info',
        help='the level of logging to use',
        choices=['critical', 'error', 'warning', 'info', 'debug', 'notset']
    )

    args = parser.parse_args(sys_argv)
    logging.getLogger('ludwig').setLevel(
        logging_level_registry[args.logging_level]
    )
    global logger
    logger = logging.getLogger('ludwig.visualize')

    try:
        vis_func = visualizations_registry[args.visualization]
    except KeyError:
        logging.info('Visualization argument not recognized')
        raise
    vis_func(**vars(args))