12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- import csv
- from CertainTrust import Opinion
- class CSVReader:
- @staticmethod
- def readCSV(inputfile, f, months):
- '''
- Converts input csv file into a dictionary of opinions,
- The CSV input file should contain the following structure:
- packageName:prediction:errorComplement
- :param inputfile: relative path to input csv file
- :param f: initial expectation value
- :param months: number of months
- :return: dictionary of package-names as key and opinions as value
- '''
- result = {}
- with open(inputfile, newline="") as csvfile:
- reader = csv.reader(csvfile, delimiter=':', quotechar='|')
- for row in reader:
- if not len(row) == 0:
- package = row [0]
- prediction = row [1]
- errorCompl = float(row [2])
- # FIXME: HARDCODED MONTHS
- resT = 1 - int(prediction) / (30 * months)
- result[package]=Opinion(resT , errorCompl, f)
- return result
- @staticmethod
- def readCSVModel(months):
- '''
- Reads a model from CSV file into python dictionary
- :param months: number of months
- :return: dictionary of package-names as key and opinions as value
- '''
- result = {}
- with open("models/dummy_model_"+str(months)+".csv", newline="") as csvfile:
- reader = csv.reader(csvfile, delimiter=':', quotechar='|')
- for row in reader:
- if not len(row) == 0:
- result[row[0]]=Opinion(float(row[1]),float(row[2]),float(row[3]))
- return result
- @staticmethod
- def readCSVPackages(filename):
- '''
- reads package names from csv file
- :param filename:
- :return: dictionary of package names
- '''
- result = []
- with open(filename, newline="") as csvfile:
- reader = csv.reader(csvfile, delimiter=':', quotechar='|')
- for row in reader:
- if not len(row) == 0:
- result.append(row[0])
- return result
- '''
- res =CSVReader.readCSV("inputs/dummy_input.csv", 1)
- for key in res:
- print(key + ":" + str(res[key].t)+ ":" + str(res[key].c)+ ":" + str(res[key].f))
- CSVReader.readCSVPackages("inputs/dummy_input_package.csv")
- '''
|