Report: data
[csit.git] / resources / tools / presentation / generator_tables.py
index b98f32c..379205c 100644 (file)
@@ -134,6 +134,8 @@ def table_performance_improvements(table, input_data):
                 line_lst.append(item["data"])
             elif isinstance(item["data"], float):
                 line_lst.append("{:.1f}".format(item["data"]))
+            elif item["data"] is None:
+                line_lst.append("")
         file_handler.write(",".join(line_lst) + "\n")
 
     logging.info("  Generating the table {0} ...".
@@ -181,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,19 +229,19 @@ def table_performance_improvements(table, input_data):
             for item in tbl_lst:
                 if "ndr_top" in file_name \
                         and "ndr" in item[1]["data"] \
-                        and item[-1]["data"] >= 10:
+                        and round(item[-1]["data"], 1) >= 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 round(item[-1]["data"], 1) >= 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 round(item[-1]["data"], 1) < 10.0:
                     _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 round(item[-1]["data"], 1) < 10.0:
                     _write_line_to_file(file_handler, item)
 
     logging.info("  Done.")