X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Ftools%2Fpresentation%2Fgenerator_tables.py;h=7f4071bef3a7f8786cb847e4868a428012fe3db0;hp=0ff4de6c0893e7b9eba7ab0d8763bcf800297c30;hb=a7e064b331e539b3294c8c8208a4fab60c7144aa;hpb=a2176b15e68b22277cbcd959de67c8fd169fec78 diff --git a/resources/tools/presentation/generator_tables.py b/resources/tools/presentation/generator_tables.py index 0ff4de6c08..7f4071bef3 100644 --- a/resources/tools/presentation/generator_tables.py +++ b/resources/tools/presentation/generator_tables.py @@ -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,20 +183,28 @@ 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 - pass + 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] - nr1 = tbl_item[int(args[1])]["data"] - nr2 = tbl_item[int(args[2])]["data"] - if nr1 and nr2: - tbl_item.append({"data": eval(operation)(nr1, nr2)}) - else: + try: + 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, ValueError, TypeError): + logging.error("No data for {0}".format(tbl_item[1]["data"])) tbl_item.append({"data": None}) + continue else: logging.error("Not supported command {0}. Skipping the table.". format(cmd)) @@ -217,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.")