Commit 2e6cc96e authored by norvell's avatar norvell
Browse files

Merge branch 'basop-ci/fix-histogram-summary' into 'main'

[BASOP CI]Clean up histogram summary page, make titles more descriptive

See merge request !1994
parents 014cf4f5 e5a3c4f1
Loading
Loading
Loading
Loading
Loading
+29 −6
Original line number Diff line number Diff line
import argparse
from typing import List

from create_report_pages import SUBPAGE_TMPL_CSS, FORMATS

MEASURES = ["MLD","DIFF","SSNR","ODG","DELTA_ODG"]

title = {
    "MLD": "Maximum MLD across channels",
    "DIFF": "Maximim absolute difference across channels",
    "SSNR": "Minimum SSNR across channels",
    "ODG": "Minimum PEAQ ODG across channels",
    "DELTA_ODG": "PEAQ ODG using binauralized input and output",
}

SUMMARY_PAGE_TMPL_HTML = """

@@ -12,12 +20,14 @@ SUMMARY_PAGE_TMPL_HTML = """

"""


def create_summary_page(
    html_out,
    id_current: int,
    job_name: str,
    measures: List[str],
):
    images = histogram_summary(job_name)
    images = histogram_summary(job_name, measures)

    new_summary_page = SUBPAGE_TMPL_CSS + SUMMARY_PAGE_TMPL_HTML.format(
        id_current=id_current,
@@ -27,13 +37,15 @@ def create_summary_page(
    with open(html_out, "w") as f:
        f.write(new_summary_page)


def histogram_summary(
    job_name: str,
    measures: List[str],
):
    images = "<hr>"
    for m in MEASURES:
    for m in measures:
        images += (
            f"<h2>{m} summary {job_name}</h2>\n"
            f"<h2>{title[m]}</h2>\n"
            + " ".join(
                [f"<img src=images_{job_name}/summary_{m}_{x}.png>" for x in FORMATS]
            )
@@ -41,15 +53,26 @@ def histogram_summary(
        )
    return images


if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("html_out")
    parser.add_argument("id_current", type=int)
    parser.add_argument("job_name")
    parser.add_argument(
        "--measures",
        nargs="+",
        help=f"List of measures to include in summary. Allowed values: {' '.join(title.keys())}",
        default=["MLD", "DIFF", "SSNR", "ODG"],
    )
    args = parser.parse_args()

    if not all([m in title for m in args.measures]):
        raise ValueError(f"Invalid list of measures: {args.measures}, expected one of {' '.join(title.keys())}")

    create_summary_page(
        args.html_out,
        args.id_current,
        args.job_name,
        args.measures,
    )