M-star.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import logging
  2. import sys
  3. from CSVReader import CSVReader
  4. from Evaluation import Evaluator
  5. from vendors.debian.DebianModel import DebianModel
  6. ##### GLOBAL VARIABLES #####
  7. logging.basicConfig(stream=sys.stderr, level=logging.DEBUG)
  8. # Increase the recursion limit by much to allow bs to parse large files ()
  9. sys.setrecursionlimit(6000)
  10. secondsperday = 86400
  11. verbosity = 1
  12. ###### FUNCTIONS ######
  13. def aptsec_help():
  14. """
  15. :return:
  16. """
  17. print('See manual for correct usage!')
  18. '''
  19. TODO:
  20. - add parameterized extensions
  21. - for input config_default.txt file
  22. - for action
  23. - vendors ( OPTIONAL )
  24. '''
  25. def __main__(configfile='config_default.txt', vendorname='debian', action='help'):
  26. # support only debian
  27. if vendorname is 'debian':
  28. model = DebianModel(action)
  29. ### generate test files ###
  30. norm_param = 12
  31. gen_dummy_model(3,norm_param)
  32. gen_dummy_model(6,norm_param)
  33. gen_dummy_model(9,norm_param)
  34. gen_dummy_model(12,norm_param)
  35. ### compute error
  36. Evaluator.evaluate_expectation(CSVReader.read_csv_opinons(3), model, 3,norm_param)
  37. Evaluator.evaluate_expectation(CSVReader.read_csv_opinons(6), model, 6,norm_param)
  38. Evaluator.evaluate_expectation(CSVReader.read_csv_opinons(9), model, 9,norm_param)
  39. Evaluator.evaluate_expectation(CSVReader.read_csv_opinons(12), model, 12,norm_param)
  40. else:
  41. print("Only debian vendors are supported for now.")
  42. sys.exit(1)
  43. def gen_dummy_model(month, norm_param):
  44. res = CSVReader.read_csv_prediction_errorcompl(
  45. "vendors/debian/inputs/dummy_input_package_prediction_errorcompl.csv", month, norm_param=norm_param)
  46. with open('vendors/debian/models/dummy_model_' + str(month) + '.csv', 'w') as file:
  47. for key in res:
  48. file.write(key + ":" + str(res[key].t) + ":" + str(res[key].c) + ":" + str(res[key].f) + "\n")
  49. __main__(action='status')