import logging import sys from CSVReader import CSVReader from Evaluation import Evaluator from vendors.debian.DebianModel import DebianModel ##### GLOBAL VARIABLES ##### logging.basicConfig(stream=sys.stderr, level=logging.DEBUG) # Increase the recursion limit by much to allow bs to parse large files () sys.setrecursionlimit(6000) secondsperday = 86400 verbosity = 1 ###### FUNCTIONS ###### def aptsec_help(): """ :return: """ print('See manual for correct usage!') ''' TODO: - add parameterized extensions - for input config_default.txt file - for action - vendors ( OPTIONAL ) ''' def __main__(configfile='config_default.txt', vendorname='debian', action='help'): # support only debian if vendorname is 'debian': model = DebianModel(action) ### generate test files ### norm_param = 12 gen_dummy_model(3,norm_param) gen_dummy_model(6,norm_param) gen_dummy_model(9,norm_param) gen_dummy_model(12,norm_param) ### compute error Evaluator.evaluate_expectation(CSVReader.read_csv_opinons(3), model, 3,norm_param) Evaluator.evaluate_expectation(CSVReader.read_csv_opinons(6), model, 6,norm_param) Evaluator.evaluate_expectation(CSVReader.read_csv_opinons(9), model, 9,norm_param) Evaluator.evaluate_expectation(CSVReader.read_csv_opinons(12), model, 12,norm_param) else: print("Only debian vendors are supported for now.") sys.exit(1) def gen_dummy_model(month, norm_param): res = CSVReader.read_csv_prediction_errorcompl( "vendors/debian/inputs/dummy_input_package_prediction_errorcompl.csv", month, norm_param=norm_param) with open('vendors/debian/models/dummy_model_' + str(month) + '.csv', 'w') as file: for key in res: file.write(key + ":" + str(res[key].t) + ":" + str(res[key].c) + ":" + str(res[key].f) + "\n") __main__(action='status')