Report: data
[csit.git] / resources / tools / presentation / generator_tables.py
index 59059df..7f4071b 100644 (file)
@@ -183,24 +183,25 @@ def table_performance_improvements(table, input_data):
                 for build in data[job]:
                     try:
                         data_lst.append(float(build[tmpl_item[0]]["throughput"]
-                                              ["value"]) / 1000000)
+                                              ["value"]))
                     except (KeyError, TypeError):
                         # No data, ignore
                         continue
                 if data_lst:
-                    tbl_item.append({"data": eval(operation)(data_lst)})
+                    tbl_item.append({"data": (eval(operation)(data_lst)) /
+                                             1000000})
                 else:
                     tbl_item.append({"data": None})
             elif cmd == "operation":
                 operation = args[0]
                 try:
-                    nr1 = tbl_item[int(args[1])]["data"]
-                    nr2 = tbl_item[int(args[2])]["data"]
+                    nr1 = float(tbl_item[int(args[1])]["data"])
+                    nr2 = float(tbl_item[int(args[2])]["data"])
                     if nr1 and nr2:
                         tbl_item.append({"data": eval(operation)(nr1, nr2)})
                     else:
                         tbl_item.append({"data": None})
-                except IndexError:
+                except (IndexError, ValueError, TypeError):
                     logging.error("No data for {0}".format(tbl_item[1]["data"]))
                     tbl_item.append({"data": None})
                     continue
@@ -226,21 +227,23 @@ def table_performance_improvements(table, input_data):
         with open(file_name, "w") as file_handler:
             file_handler.write(",".join(header) + "\n")
             for item in tbl_lst:
+                if isinstance(item[-1]["data"], float):
+                    rel_change = round(item[-1]["data"], 1)
+                else:
+                    rel_change = item[-1]["data"]
                 if "ndr_top" in file_name \
                         and "ndr" in item[1]["data"] \
-                        and item[-1]["data"] >= 10:
+                        and rel_change >= 10.0:
                     _write_line_to_file(file_handler, item)
                 elif "pdr_top" in file_name \
                         and "pdr" in item[1]["data"] \
-                        and item[-1]["data"] >= 10:
+                        and rel_change >= 10.0:
                     _write_line_to_file(file_handler, item)
                 elif "ndr_low" in file_name \
-                        and "ndr" in item[1]["data"] \
-                        and item[-1]["data"] < 10:
+                        and "ndr" in item[1]["data"]:
                     _write_line_to_file(file_handler, item)
                 elif "pdr_low" in file_name \
-                        and "pdr" in item[1]["data"] \
-                        and item[-1]["data"] < 10:
+                        and "pdr" in item[1]["data"]:
                     _write_line_to_file(file_handler, item)
 
     logging.info("  Done.")