From f09a7d53e5ba6612afebab2c1244c15db3c05dd9 Mon Sep 17 00:00:00 2001 From: Thomas Friedrichsmeier Date: Fri, 24 May 2024 16:58:52 +0200 Subject: [PATCH 1/2] Show warnings count in report --- reportsizedeltas/reportsizedeltas.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/reportsizedeltas/reportsizedeltas.py b/reportsizedeltas/reportsizedeltas.py index b9be40c..c9c5f58 100644 --- a/reportsizedeltas/reportsizedeltas.py +++ b/reportsizedeltas/reportsizedeltas.py @@ -85,6 +85,7 @@ class ReportKeys: maximum = "maximum" sketches = "sketches" compilation_success = "compilation_success" + warnings = "warnings" def __init__(self, repository_name: str, sketches_reports_source: str, token: str) -> None: self.repository_name = repository_name @@ -441,6 +442,15 @@ def add_summary_report_row(self, report_data, fqbn_data) -> None: report_data[row_number][column_number + 1] = self.get_summary_value( show_emoji=False, minimum=self.not_applicable_indicator, maximum=self.not_applicable_indicator ) + if self.ReportKeys.warnings in fqbn_data: + column_number = get_report_column_number(report=report_data, column_heading="Warnings") + warnings_data = fqbn_data[self.ReportKeys.warnings] + deltas = warnings_data[self.ReportKeys.delta][self.ReportKeys.absolute] + report_data[row_number][column_number] = self.get_summary_value( + show_emoji=True, + minimum=deltas[self.ReportKeys.minimum], + maximum=deltas[self.ReportKeys.maximum], + ) def add_detailed_report_row(self, report_data, fqbn_data) -> None: """Add a row to the detailed report. @@ -484,6 +494,19 @@ def add_detailed_report_row(self, report_data, fqbn_data) -> None: # Relative report_data[row_number][column_number + 1] = self.not_applicable_indicator + if self.ReportKeys.warnings in sketch: + warnings_data = sketch[self.ReportKeys.warnings] + column_number = get_report_column_number( + report=report_data, + column_heading="`{sketch_name}`
Warnings".format(sketch_name=sketch[self.ReportKeys.name]) + ) + report_data[row_number][column_number] = warnings_data[self.ReportKeys.current][ + self.ReportKeys.absolute + ] + report_data[row_number][column_number + 1] = warnings_data[self.ReportKeys.delta][ + self.ReportKeys.absolute + ] + def get_summary_value(self, show_emoji: bool, minimum, maximum) -> str: """Return the Markdown formatted text for a memory change data cell in the report table. From b0f0f6372ca37571faa40b7dfe4a592b61263084 Mon Sep 17 00:00:00 2001 From: Thomas Friedrichsmeier Date: Fri, 24 May 2024 22:47:10 +0200 Subject: [PATCH 2/2] Clarify column headings --- reportsizedeltas/reportsizedeltas.py | 46 +++++++++++-------- .../tests/test_reportsizedeltas.py | 4 +- 2 files changed, 29 insertions(+), 21 deletions(-) diff --git a/reportsizedeltas/reportsizedeltas.py b/reportsizedeltas/reportsizedeltas.py index c9c5f58..378e4c4 100644 --- a/reportsizedeltas/reportsizedeltas.py +++ b/reportsizedeltas/reportsizedeltas.py @@ -415,7 +415,9 @@ def add_summary_report_row(self, report_data, fqbn_data) -> None: # Populate the row with data for size_data in fqbn_data[self.ReportKeys.sizes]: # Determine column number for this memory type - column_number = get_report_column_number(report=report_data, column_heading=size_data[self.ReportKeys.name]) + column_number = get_report_column_number( + report=report_data, column_heading=size_data[self.ReportKeys.name], extra_column_heading="%" + ) # Add the memory data to the cell if self.ReportKeys.delta in size_data: @@ -443,14 +445,16 @@ def add_summary_report_row(self, report_data, fqbn_data) -> None: show_emoji=False, minimum=self.not_applicable_indicator, maximum=self.not_applicable_indicator ) if self.ReportKeys.warnings in fqbn_data: - column_number = get_report_column_number(report=report_data, column_heading="Warnings") + column_number = get_report_column_number( + report=report_data, column_heading="Warnings
+/-", extra_column_heading=None + ) warnings_data = fqbn_data[self.ReportKeys.warnings] deltas = warnings_data[self.ReportKeys.delta][self.ReportKeys.absolute] report_data[row_number][column_number] = self.get_summary_value( - show_emoji=True, - minimum=deltas[self.ReportKeys.minimum], - maximum=deltas[self.ReportKeys.maximum], - ) + show_emoji=True, + minimum=deltas[self.ReportKeys.minimum], + maximum=deltas[self.ReportKeys.maximum], + ) def add_detailed_report_row(self, report_data, fqbn_data) -> None: """Add a row to the detailed report. @@ -476,6 +480,7 @@ def add_detailed_report_row(self, report_data, fqbn_data) -> None: sketch_name=sketch[self.ReportKeys.name], size_name=size_data[self.ReportKeys.name] ) ), + extra_column_heading="%", ) # Add the memory data to the cell @@ -498,12 +503,13 @@ def add_detailed_report_row(self, report_data, fqbn_data) -> None: warnings_data = sketch[self.ReportKeys.warnings] column_number = get_report_column_number( report=report_data, - column_heading="`{sketch_name}`
Warnings".format(sketch_name=sketch[self.ReportKeys.name]) - ) - report_data[row_number][column_number] = warnings_data[self.ReportKeys.current][ - self.ReportKeys.absolute - ] - report_data[row_number][column_number + 1] = warnings_data[self.ReportKeys.delta][ + column_heading=( + "`{sketch_name}`
Warnings
+/-".format(sketch_name=sketch[self.ReportKeys.name]) + ), + extra_column_heading="Warnings
current", + ) + report_data[row_number][column_number] = warnings_data[self.ReportKeys.delta][self.ReportKeys.absolute] + report_data[row_number][column_number + 1] = warnings_data[self.ReportKeys.current][ self.ReportKeys.absolute ] @@ -763,14 +769,13 @@ def get_page_count(link_header: str | None) -> int: return page_count -def get_report_column_number(report, column_heading: str) -> int: +def get_report_column_number(report, column_heading: str, extra_column_heading: str | None) -> int: """Return the column number of the given heading. Keyword arguments: column_heading -- the text of the column heading. If it doesn't exist, a column will be created with this heading. + extra_column_heading -- if not None, an additional column with this header (needs not be unique) will be created. """ - relative_column_heading = "%" - try: column_number = report[0].index(column_heading, 1) except ValueError: @@ -783,11 +788,12 @@ def get_report_column_number(report, column_heading: str) -> int: # Expand the size of the final row (the current row) to match the new number of columns report[len(report) - 1].append("") - # Relative column - # Add the heading - report[0].append(relative_column_heading) - # Expand the size of the final row (the current row) to match the new number of columns - report[len(report) - 1].append("") + if extra_column_heading is not None: + # Extra column + # Add the heading + report[0].append(extra_column_heading) + # Expand the size of the final row (the current row) to match the new number of columns + report[len(report) - 1].append("") return column_number diff --git a/reportsizedeltas/tests/test_reportsizedeltas.py b/reportsizedeltas/tests/test_reportsizedeltas.py index 4fe96cd..90a1d12 100644 --- a/reportsizedeltas/tests/test_reportsizedeltas.py +++ b/reportsizedeltas/tests/test_reportsizedeltas.py @@ -987,7 +987,9 @@ def test_get_page_count(): ) def test_get_report_column_number(report, column_heading, expected_column_number, expected_report): assert ( - reportsizedeltas.get_report_column_number(report=report, column_heading=column_heading) + reportsizedeltas.get_report_column_number( + report=report, column_heading=column_heading, extra_column_heading="%" + ) == expected_column_number ) assert report == expected_report