UTI: Colors in iteraive graphs
[csit.git] / resources / tools / dash / app / pal / report / graphs.py
index 42ae079..d5dd0b8 100644 (file)
@@ -51,16 +51,15 @@ _LAT_HDRH = (  # Do not change the order
 PERCENTILE_MAX = 99.999501
 
 _GRAPH_LAT_HDRH_DESC = {
-    u"result_latency_forward_pdr_0_hdrh": u"No-load.",
-    u"result_latency_reverse_pdr_0_hdrh": u"No-load.",
-    u"result_latency_forward_pdr_10_hdrh": u"Low-load, 10% PDR.",
-    u"result_latency_reverse_pdr_10_hdrh": u"Low-load, 10% PDR.",
-    u"result_latency_forward_pdr_50_hdrh": u"Mid-load, 50% PDR.",
-    u"result_latency_reverse_pdr_50_hdrh": u"Mid-load, 50% PDR.",
-    u"result_latency_forward_pdr_90_hdrh": u"High-load, 90% PDR.",
-    u"result_latency_reverse_pdr_90_hdrh": u"High-load, 90% PDR."
+    "result_latency_forward_pdr_0_hdrh": "No-load.",
+    "result_latency_reverse_pdr_0_hdrh": "No-load.",
+    "result_latency_forward_pdr_10_hdrh": "Low-load, 10% PDR.",
+    "result_latency_reverse_pdr_10_hdrh": "Low-load, 10% PDR.",
+    "result_latency_forward_pdr_50_hdrh": "Mid-load, 50% PDR.",
+    "result_latency_reverse_pdr_50_hdrh": "Mid-load, 50% PDR.",
+    "result_latency_forward_pdr_90_hdrh": "High-load, 90% PDR.",
+    "result_latency_reverse_pdr_90_hdrh": "High-load, 90% PDR."
 }
-REG_EX_VPP_VERSION = re.compile(r"^(\d{2}).(\d{2})-(rc0|rc1|rc2|release$)")
 
 
 def _get_color(idx: int) -> str:
@@ -83,10 +82,15 @@ def get_short_version(version: str, dut_type: str="vpp") -> str:
         return version
 
     s_version = str()
-    groups = re.search(pattern=REG_EX_VPP_VERSION, string=version)
+    groups = re.search(
+        pattern=re.compile(r"^(\d{2}).(\d{2})-(rc0|rc1|rc2|release$)"),
+        string=version
+    )
     if groups:
         try:
-            s_version = f"{groups.group(1)}.{groups.group(2)}_{groups.group(3)}"
+            s_version = \
+                f"{groups.group(1)}.{groups.group(2)}.{groups.group(3)}".\
+                    replace("release", "rls")
         except IndexError:
             pass
 
@@ -132,7 +136,8 @@ def select_iterative_data(data: pd.DataFrame, itm:dict) -> pd.DataFrame:
         f"^.*[.|-]{nic}.*{itm['framesize']}-{core}-{drv}{itm['test']}-{ttype}$"
     df = df[
         (df.job.str.endswith(f"{topo}-{arch}")) &
-        (df.dut_version.str.contains(itm["dutver"].replace("_", "-"))) &
+        (df.dut_version.str.contains(itm["dutver"].replace(".r", "-r").\
+            replace("rls", "release"))) &
         (df.test_id.str.contains(regex_test, regex=True))
     ]
 
@@ -151,8 +156,12 @@ def graph_iterative(data: pd.DataFrame, sel:dict, layout: dict) -> tuple:
     lat_traces = list()
     y_lat_max = 0
     x_lat = list()
+    show_latency = False
+    show_tput = False
     for idx, itm in enumerate(sel):
         itm_data = select_iterative_data(data, itm)
+        if itm_data.empty:
+            continue
         if itm["testtype"] == "mrr":
             y_data = itm_data[_VALUE[itm["testtype"]]].to_list()[0]
             if y_data.size > 0:
@@ -169,7 +178,7 @@ def graph_iterative(data: pd.DataFrame, sel:dict, layout: dict) -> tuple:
             name=(
                 f"{idx + 1}. "
                 f"({nr_of_samples:02d} "
-                f"run{u's' if nr_of_samples > 1 else u''}) "
+                f"run{'s' if nr_of_samples > 1 else ''}) "
                 f"{itm['id']}"
             ),
             hoverinfo=u"y+name",
@@ -178,8 +187,8 @@ def graph_iterative(data: pd.DataFrame, sel:dict, layout: dict) -> tuple:
             marker=dict(color=_get_color(idx))
         )
         tput_traces.append(go.Box(**tput_kwargs))
+        show_tput = True
 
-        show_latency = False
         if itm["testtype"] == "pdr":
             y_lat = itm_data[_VALUE["pdr-lat"]].to_list()
             if y_lat:
@@ -193,7 +202,7 @@ def graph_iterative(data: pd.DataFrame, sel:dict, layout: dict) -> tuple:
                     f"run{u's' if nr_of_samples > 1 else u''}) "
                     f"{itm['id']}"
                 ),
-                hoverinfo=u"y+name",
+                hoverinfo="all",
                 boxpoints="all",
                 jitter=0.3,
                 marker=dict(color=_get_color(idx))
@@ -204,19 +213,20 @@ def graph_iterative(data: pd.DataFrame, sel:dict, layout: dict) -> tuple:
         else:
             lat_traces.append(go.Box())
 
-    pl_tput = deepcopy(layout["plot-throughput"])
-    pl_tput[u"xaxis"][u"tickvals"] = [i for i in range(len(sel))]
-    pl_tput[u"xaxis"][u"ticktext"] = [str(i + 1) for i in range(len(sel))]
-    if y_tput_max:
-        pl_tput[u"yaxis"][u"range"] = [0, (int(y_tput_max / 1e6) + 1) * 1e6]
-    fig_tput = go.Figure(data=tput_traces, layout=pl_tput)
+    if show_tput:
+        pl_tput = deepcopy(layout["plot-throughput"])
+        pl_tput["xaxis"]["tickvals"] = [i for i in range(len(sel))]
+        pl_tput["xaxis"]["ticktext"] = [str(i + 1) for i in range(len(sel))]
+        if y_tput_max:
+            pl_tput["yaxis"]["range"] = [0, (int(y_tput_max / 1e6) + 1) * 1e6]
+        fig_tput = go.Figure(data=tput_traces, layout=pl_tput)
 
     if show_latency:
         pl_lat = deepcopy(layout["plot-latency"])
-        pl_lat[u"xaxis"][u"tickvals"] = [i for i in range(len(x_lat))]
-        pl_lat[u"xaxis"][u"ticktext"] = x_lat
+        pl_lat["xaxis"]["tickvals"] = [i for i in range(len(x_lat))]
+        pl_lat["xaxis"]["ticktext"] = x_lat
         if y_lat_max:
-            pl_lat[u"yaxis"][u"range"] = [0, (int(y_lat_max / 10) + 1) * 10]
+            pl_lat["yaxis"]["range"] = [0, (int(y_lat_max / 10) + 1) * 10]
         fig_lat = go.Figure(data=lat_traces, layout=pl_lat)
 
     return fig_tput, fig_lat
@@ -295,7 +305,7 @@ def graph_hdrh_latency(data: dict, layout: dict) -> go.Figure:
             yaxis.append(item.value_iterated_to)
             hovertext.append(
                 f"<b>{_GRAPH_LAT_HDRH_DESC[lat_name]}</b><br>"
-                f"Direction: {(u'W-E', u'E-W')[idx % 2]}<br>"
+                f"Direction: {('W-E', 'E-W')[idx % 2]}<br>"
                 f"Percentile: {prev_perc:.5f}-{percentile:.5f}%<br>"
                 f"Latency: {item.value_iterated_to}uSec"
             )
@@ -304,7 +314,7 @@ def graph_hdrh_latency(data: dict, layout: dict) -> go.Figure:
             yaxis.append(item.value_iterated_to)
             hovertext.append(
                 f"<b>{_GRAPH_LAT_HDRH_DESC[lat_name]}</b><br>"
-                f"Direction: {(u'W-E', u'E-W')[idx % 2]}<br>"
+                f"Direction: {('W-E', 'E-W')[idx % 2]}<br>"
                 f"Percentile: {prev_perc:.5f}-{percentile:.5f}%<br>"
                 f"Latency: {item.value_iterated_to}uSec"
             )
@@ -316,16 +326,16 @@ def graph_hdrh_latency(data: dict, layout: dict) -> go.Figure:
                 x=xaxis,
                 y=yaxis,
                 name=_GRAPH_LAT_HDRH_DESC[lat_name],
-                mode=u"lines",
+                mode="lines",
                 legendgroup=_GRAPH_LAT_HDRH_DESC[lat_name],
                 showlegend=bool(idx % 2),
                 line=dict(
                     color=_get_color(int(idx/2)),
-                    dash=u"solid",
+                    dash="solid",
                     width=1 if idx % 2 else 2
                 ),
                 hovertext=hovertext,
-                hoverinfo=u"text"
+                hoverinfo="text"
             )
         )
     if traces: