Trending: Update graphs - 2n-clx
[csit.git] / resources / tools / presentation / generator_tables.py
index afc154a..e530942 100644 (file)
@@ -483,7 +483,8 @@ def _tpc_sort_table(table):
     return table
 
 
-def _tpc_generate_html_table(header, data, output_file_name):
+def _tpc_generate_html_table(header, data, out_file_name, legend=u"",
+                             footnote=u""):
     """Generate html table from input data with simple sorting possibility.
 
     :param header: Table header.
@@ -491,11 +492,15 @@ def _tpc_generate_html_table(header, data, output_file_name):
         Inner lists are rows in the table. All inner lists must be of the same
         length. The length of these lists must be the same as the length of the
         header.
-    :param output_file_name: The name (relative or full path) where the
+    :param out_file_name: The name (relative or full path) where the
         generated html table is written.
+    :param legend: The legend to display below the table.
+    :param footnote: The footnote to display below the table (and legend).
     :type header: list
     :type data: list of lists
-    :type output_file_name: str
+    :type out_file_name: str
+    :type legend: str
+    :type footnote: str
     """
 
     try:
@@ -562,28 +567,46 @@ def _tpc_generate_html_table(header, data, output_file_name):
             go.layout.Updatemenu(
                 type=u"dropdown",
                 direction=u"down",
-                x=0.03,
+                x=0.0,
                 xanchor=u"left",
                 y=1.045,
                 yanchor=u"top",
                 active=len(menu_items) - 1,
                 buttons=list(buttons)
             )
-        ],
-        annotations=[
-            go.layout.Annotation(
-                text=u"<b>Sort by:</b>",
-                x=0,
-                xref=u"paper",
-                y=1.035,
-                yref=u"paper",
-                align=u"left",
-                showarrow=False
-            )
         ]
     )
 
-    ploff.plot(fig, show_link=False, auto_open=False, filename=output_file_name)
+    ploff.plot(
+        fig,
+        show_link=False,
+        auto_open=False,
+        filename=f"{out_file_name}_in.html"
+    )
+
+    file_name = out_file_name.split(u"/")[-1]
+    if u"vpp" in out_file_name:
+        path = u"_tmp/src/vpp_performance_tests/comparisons/"
+    else:
+        path = u"_tmp/src/dpdk_performance_tests/comparisons/"
+    with open(f"{path}{file_name}.rst", u"wt") as rst_file:
+        rst_file.write(
+            u"\n"
+            u".. |br| raw:: html\n\n    <br />\n\n\n"
+            u".. |prein| raw:: html\n\n    <pre>\n\n\n"
+            u".. |preout| raw:: html\n\n    </pre>\n\n"
+        )
+        rst_file.write(
+            u".. raw:: html\n\n"
+            f'    <iframe frameborder="0" scrolling="no" '
+            f'width="1600" height="1000" '
+            f'src="../..{out_file_name.replace(u"_build", u"")}_in.html">'
+            f'</iframe>\n\n'
+        )
+        if legend:
+            rst_file.write(legend[1:].replace(u"\n", u" |br| "))
+        if footnote:
+            rst_file.write(footnote.replace(u"\n", u" |br| ")[1:])
 
 
 def table_perf_comparison(table, input_data):
@@ -635,11 +658,11 @@ def table_perf_comparison(table, input_data):
                 f"{item[u'title']} Avg({table[u'include-tests']}): "
                 f"Mean value of {table[u'include-tests']} [Mpps] computed from "
                 f"a series of runs of the listed tests executed against "
-                f"rls{item[u'title']}.\n"
+                f"{item[u'title']}.\n"
                 f"{item[u'title']} Stdev({table[u'include-tests']}): "
                 f"Standard deviation value of {table[u'include-tests']} [Mpps] "
                 f"computed from a series of runs of the listed tests executed "
-                f"against rls{item[u'title']}.\n"
+                f"against {item[u'title']}.\n"
             )
         header.extend(
             [
@@ -662,22 +685,22 @@ def table_perf_comparison(table, input_data):
             f"Avg({table[u'include-tests']}): "
             f"Mean value of {table[u'include-tests']} [Mpps] computed from a "
             f"series of runs of the listed tests executed against "
-            f"rls{table[u'reference'][u'title']}.\n"
+            f"{table[u'reference'][u'title']}.\n"
             f"{table[u'reference'][u'title']} "
             f"Stdev({table[u'include-tests']}): "
             f"Standard deviation value of {table[u'include-tests']} [Mpps] "
             f"computed from a series of runs of the listed tests executed "
-            f"against rls{table[u'reference'][u'title']}.\n"
+            f"against {table[u'reference'][u'title']}.\n"
             f"{table[u'compare'][u'title']} "
             f"Avg({table[u'include-tests']}): "
             f"Mean value of {table[u'include-tests']} [Mpps] computed from a "
             f"series of runs of the listed tests executed against "
-            f"rls{table[u'compare'][u'title']}.\n"
+            f"{table[u'compare'][u'title']}.\n"
             f"{table[u'compare'][u'title']} "
             f"Stdev({table[u'include-tests']}): "
             f"Standard deviation value of {table[u'include-tests']} [Mpps] "
             f"computed from a series of runs of the listed tests executed "
-            f"against rls{table[u'compare'][u'title']}.\n"
+            f"against {table[u'compare'][u'title']}.\n"
             f"Diff({table[u'reference'][u'title']},"
             f"{table[u'compare'][u'title']}): "
             f"Percentage change calculated for mean values.\n"
@@ -924,17 +947,23 @@ def table_perf_comparison(table, input_data):
     txt_file_name = f"{table[u'output-file']}.txt"
     convert_csv_to_pretty_txt(csv_file, txt_file_name, delimiter=u";")
 
+    footnote = u""
     with open(txt_file_name, u'a') as txt_file:
         txt_file.write(legend)
         if rca_data:
             footnote = rca_data.get(u"footnote", u"")
             if footnote:
-                txt_file.write(u"\n")
                 txt_file.write(footnote)
         txt_file.write(u":END")
 
     # Generate html table:
-    _tpc_generate_html_table(header, tbl_lst, f"{table[u'output-file']}.html")
+    _tpc_generate_html_table(
+        header,
+        tbl_lst,
+        table[u'output-file'],
+        legend=legend,
+        footnote=footnote
+    )
 
 
 def table_perf_comparison_nic(table, input_data):
@@ -986,11 +1015,11 @@ def table_perf_comparison_nic(table, input_data):
                 f"{item[u'title']} Avg({table[u'include-tests']}): "
                 f"Mean value of {table[u'include-tests']} [Mpps] computed from "
                 f"a series of runs of the listed tests executed against "
-                f"rls{item[u'title']}.\n"
+                f"{item[u'title']}.\n"
                 f"{item[u'title']} Stdev({table[u'include-tests']}): "
                 f"Standard deviation value of {table[u'include-tests']} [Mpps] "
                 f"computed from a series of runs of the listed tests executed "
-                f"against rls{item[u'title']}.\n"
+                f"against {item[u'title']}.\n"
             )
         header.extend(
             [
@@ -1013,22 +1042,22 @@ def table_perf_comparison_nic(table, input_data):
             f"Avg({table[u'include-tests']}): "
             f"Mean value of {table[u'include-tests']} [Mpps] computed from a "
             f"series of runs of the listed tests executed against "
-            f"rls{table[u'reference'][u'title']}.\n"
+            f"{table[u'reference'][u'title']}.\n"
             f"{table[u'reference'][u'title']} "
             f"Stdev({table[u'include-tests']}): "
             f"Standard deviation value of {table[u'include-tests']} [Mpps] "
             f"computed from a series of runs of the listed tests executed "
-            f"against rls{table[u'reference'][u'title']}.\n"
+            f"against {table[u'reference'][u'title']}.\n"
             f"{table[u'compare'][u'title']} "
             f"Avg({table[u'include-tests']}): "
             f"Mean value of {table[u'include-tests']} [Mpps] computed from a "
             f"series of runs of the listed tests executed against "
-            f"rls{table[u'compare'][u'title']}.\n"
+            f"{table[u'compare'][u'title']}.\n"
             f"{table[u'compare'][u'title']} "
             f"Stdev({table[u'include-tests']}): "
             f"Standard deviation value of {table[u'include-tests']} [Mpps] "
             f"computed from a series of runs of the listed tests executed "
-            f"against rls{table[u'compare'][u'title']}.\n"
+            f"against {table[u'compare'][u'title']}.\n"
             f"Diff({table[u'reference'][u'title']},"
             f"{table[u'compare'][u'title']}): "
             f"Percentage change calculated for mean values.\n"
@@ -1281,17 +1310,23 @@ def table_perf_comparison_nic(table, input_data):
     txt_file_name = f"{table[u'output-file']}.txt"
     convert_csv_to_pretty_txt(csv_file, txt_file_name, delimiter=u";")
 
+    footnote = u""
     with open(txt_file_name, u'a') as txt_file:
         txt_file.write(legend)
         if rca_data:
             footnote = rca_data.get(u"footnote", u"")
             if footnote:
-                txt_file.write(u"\n")
                 txt_file.write(footnote)
         txt_file.write(u":END")
 
     # Generate html table:
-    _tpc_generate_html_table(header, tbl_lst, f"{table[u'output-file']}.html")
+    _tpc_generate_html_table(
+        header,
+        tbl_lst,
+        table[u'output-file'],
+        legend=legend,
+        footnote=footnote
+    )
 
 
 def table_nics_comparison(table, input_data):
@@ -1456,11 +1491,16 @@ def table_nics_comparison(table, input_data):
                               f"{table[u'output-file']}.txt",
                               delimiter=u";")
 
-    with open(table[u'output-file'], u'a') as txt_file:
+    with open(f"{table[u'output-file']}.txt", u'a') as txt_file:
         txt_file.write(legend)
 
     # Generate html table:
-    _tpc_generate_html_table(header, tbl_lst, f"{table[u'output-file']}.html")
+    _tpc_generate_html_table(
+        header,
+        tbl_lst,
+        table[u'output-file'],
+        legend=legend
+    )
 
 
 def table_soak_vs_ndr(table, input_data):
@@ -1635,7 +1675,12 @@ def table_soak_vs_ndr(table, input_data):
         txt_file.write(legend)
 
     # Generate html table:
-    _tpc_generate_html_table(header, tbl_lst, f"{table[u'output-file']}.html")
+    _tpc_generate_html_table(
+        header,
+        tbl_lst,
+        table[u'output-file'],
+        legend=legend
+    )
 
 
 def table_perf_trending_dash(table, input_data):
@@ -1731,7 +1776,7 @@ def table_perf_trending_dash(table, input_data):
                 continue
             tbl_lst.append(
                 [tbl_dict[tst_name][u"name"],
-                 round(last_avg / 1000000, 2),
+                 round(last_avg / 1e6, 2),
                  rel_change_last,
                  rel_change_long,
                  classification_lst[-win_size:].count(u"regression"),