X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=resources%2Ftools%2Fpresentation%2Fnew%2Futils.py;h=a2aa0dc0717a925b685bba71482bf040b20f462e;hb=2d001ed910d3835848fccb7bb96a98a5270698fe;hp=a688928cda22d96142f3d43ac5a744a41de7f7d9;hpb=0e8d8a59fd6b8477b17a9222a5cfb0d94d24ff22;p=csit.git diff --git a/resources/tools/presentation/new/utils.py b/resources/tools/presentation/new/utils.py index a688928cda..a2aa0dc071 100644 --- a/resources/tools/presentation/new/utils.py +++ b/resources/tools/presentation/new/utils.py @@ -17,8 +17,9 @@ import multiprocessing import subprocess import numpy as np -import pandas as pd import logging +import csv +import prettytable from os import walk, makedirs, environ from os.path import join, isdir @@ -225,7 +226,7 @@ def classify_anomalies(data): bare_data = [0.0 if np.isnan(sample) else sample for _, sample in data.iteritems()] # TODO: Put analogous iterator into jumpavg library. - groups = BitCountingClassifier.classify(bare_data) + groups = BitCountingClassifier().classify(bare_data) groups.reverse() # Just to use .pop() for FIFO. classification = [] avgs = [] @@ -239,7 +240,7 @@ def classify_anomalies(data): continue if values_left < 1 or active_group is None: values_left = 0 - while values_left < 1: # To ignore empty groups. + while values_left < 1: # Ignore empty groups (should not happen). active_group = groups.pop() values_left = len(active_group.values) avg = active_group.metadata.avg @@ -253,6 +254,29 @@ def classify_anomalies(data): return classification, avgs +def convert_csv_to_pretty_txt(csv_file, txt_file): + """Convert the given csv table to pretty text table. + + :param csv_file: The path to the input csv file. + :param txt_file: The path to the output pretty text file. + :type csv_file: str + :type txt_file: str + """ + + txt_table = None + with open(csv_file, 'rb') as csv_file: + csv_content = csv.reader(csv_file, delimiter=',', quotechar='"') + for row in csv_content: + if txt_table is None: + txt_table = prettytable.PrettyTable(row) + else: + txt_table.add_row(row) + txt_table.align["Test case"] = "l" + if txt_table: + with open(txt_file, "w") as txt_file: + txt_file.write(str(txt_table)) + + class Worker(multiprocessing.Process): """Worker class used to process tasks in separate parallel processes. """