Commit 96a62421 authored by Jan Kiene's avatar Jan Kiene
Browse files

add image_dir arg

this is needed for handling two sets of histograms in basop ci
parent 99627bd3
Loading
Loading
Loading
Loading
Loading
+16 −25
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@ from typing import List
from create_report_pages import SUBPAGE_TMPL_CSS, FORMATS


title = {
TITLE = {
    "MLD": "Maximum MLD across channels",
    "DIFF": "Maximim absolute difference across channels",
    "SSNR": "Minimum SSNR across channels",
@@ -26,8 +26,15 @@ def create_summary_page(
    id_current: int,
    job_name: str,
    measures: List[str],
    image_dir: str,
):
    images = histogram_summary(job_name, measures)
    images = "<hr>"
    for m in measures:
        images += (
            f"<h2>{TITLE[m]}</h2>\n"
            + " ".join([f"<img src={image_dir}/summary_{m}_{x}.png>" for x in FORMATS])
            + f'\n<br><a href="{image_dir}/summary_{m}.csv">summary_{m}.csv</a><hr>\n\n'
        )

    new_summary_page = SUBPAGE_TMPL_CSS + SUMMARY_PAGE_TMPL_HTML.format(
        id_current=id_current,
@@ -38,41 +45,25 @@ def create_summary_page(
        f.write(new_summary_page)


def histogram_summary(
    job_name: str,
    measures: List[str],
):
    images = "<hr>"
    for m in measures:
        images += (
            f"<h2>{title[m]}</h2>\n"
            + " ".join(
                [f"<img src=images_{job_name}/summary_{m}_{x}.png>" for x in FORMATS]
            )
            + f'\n<br><a href="images_{job_name}/summary_{m}.csv">summary_{m}.csv</a><hr>\n\n'
        )
    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("image_dir")
    parser.add_argument(
        "--measures",
        nargs="+",
        help=f"List of measures to include in summary. Allowed values: {' '.join(title.keys())}",
        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())}")
    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,
        args.html_out, args.id_current, args.job_name, args.measures, args.image_dir
    )