1#!/usr/bin/env python3
2import os
3import sys
4from vmaf.core.quality_runner import QualityRunner
5from vmaf.core.result_store import FileSystemResultStore
6from vmaf.routine import run_remove_results_for_dataset
7from vmaf.tools.misc import import_python_file
8
9__copyright__ = "Copyright 2016-2020, Netflix, Inc."
10__license__ = "BSD+Patent"
11
12
13def print_usage():
14    quality_runner_types = ['VMAF', 'PSNR', 'SSIM', 'MS_SSIM']
15    print("usage: " + os.path.basename(sys.argv[0]) + \
16          " quality_type dataset_filepath\n")
17    print("quality_type:\n\t" + "\n\t".join(quality_runner_types) +"\n")
18
19
20def main():
21    if len(sys.argv) < 3:
22        print_usage()
23        return 2
24
25    try:
26        quality_type = sys.argv[1]
27        dataset_filepath = sys.argv[2]
28    except ValueError:
29        print_usage()
30        return 2
31
32    try:
33        dataset = import_python_file(dataset_filepath)
34    except Exception as e:
35        print("Error: " + str(e))
36        return 1
37
38    try:
39        runner_class = QualityRunner.find_subclass(quality_type)
40    except:
41        print_usage()
42        return 2
43
44    result_store = FileSystemResultStore()
45
46    run_remove_results_for_dataset(result_store, dataset, runner_class)
47
48    return 0
49
50
51if __name__ == '__main__':
52    ret = main()
53    exit(ret)
54