Quellcode durchsuchen

added tablewriter attempt

prozessorkern vor 5 Jahren
Ursprung
Commit
b7475b03f7
1 geänderte Dateien mit 46 neuen und 11 gelöschten Zeilen
  1. 46 11
      ext/std/tools/report.py

+ 46 - 11
ext/std/tools/report.py

@@ -7,6 +7,7 @@
 
 import logging
 import re
+import pytablewriter
 
 import mpp.api
 import mpp.utils
@@ -25,7 +26,7 @@ class Plugin(mpp.api.Plugin, mpp.api.IConfigurable, mpp.api.IRunable):
         self.parser = parser
         parser.add_option("--output-dir", "--od", default='./metrixpp/',
                            help="Set the output folder. [default: %default].")
-        parser.add_option("--format", "--ft", default='txt', choices=['txt', 'md', 'html', 'rst'],
+        parser.add_option("--format", "--ft", default='txt', choices=['txt', 'md', 'html', 'rst', 'latex'],
                           help="Format of the output data. "
                           "Possible values are 'txt', 'md', 'html' or 'rst' [default: %default]")
         parser.add_option("--disable-suppressions", "--ds", action="store_true", default=False,
@@ -228,13 +229,11 @@ def main(plugin, args):
         file = {"path" : path,
                 "file_id" : file_data.file_id,
                 "regions" : [],
-                "data" : aggregated_data}
+                "data" : aggregated_data.data}
 
         data["files"].append(file)
 
-        dataBlubb = loader.load_file_data(path)
-
-        for reg in dataBlubb.iterate_regions():
+        for reg in file_data.iterate_regions():
             region = {"name" : reg.name,
                       "region_id" : reg.region_id,
                       "line_begin" : reg.line_begin,
@@ -310,19 +309,55 @@ def main(plugin, args):
                 warns_count += 1
                 exit_code += 1
 
+    writer = pytablewriter.SpaceAlignedTableWriter()
+    writer.headers = ["file"] + data["fileMetrixList"]
+
+    matrix = [];
+
+    for file in data["files"]:
+        line = []
+        line.append(file["path"])
+        for metric in data["fileMetrixList"]:
+            if metric in file["data"]:
+                for value in file["data"][metric].values():
+                    values = []
+                    values.append(value["min"])
+                    values.append(value["max"])
+                    values.append(value["avg"])
+                    values.append(value["total"])
+                    values.append(value["count"])
+                    line.append(values)
+                    break
+            else:
+                line.append("---")
+        matrix.append(line)
+
+        writer.table_name = file["path"]
+        writer.value_matrix = matrix
+        writer.write_table()
+
+    writer = pytablewriter.SpaceAlignedTableWriter()
+    writer.headers = ["line", "name"] + data["regionMetrixList"]
+
+    matrix = [];
+
     for file in data["files"]:
-        print(file["path"])
         for region in file["regions"]:
-            out = str(region["line_begin"]) + ":\t"
-            out += region["name"] + "\t"
+            line =  []
+            line.append(str(region["line_begin"]))
+            line.append(region["name"])
             for metric in data["regionMetrixList"]:
                 if metric in region["data"]:
                     for value in region["data"][metric].values():
-                        out += str(value)
+                        line.append(str(value))
                         break
+                else:
+                    line.append("---")
+            matrix.append(line)
 
-
-            print(out)
+        writer.table_name = file["path"]
+        writer.value_matrix = matrix
+        writer.write_table()
 
     return exit_code