@@ -64,6 +64,7 @@ class ReportKeys:
64
64
sizes = "sizes"
65
65
name = "name"
66
66
absolute = "absolute"
67
+ relative = "relative"
67
68
current = "current"
68
69
previous = "previous"
69
70
delta = "delta"
@@ -255,8 +256,12 @@ def get_sketches_reports(self, artifact_folder_object):
255
256
# Combine sketches reports into an array
256
257
with open (file = artifact_folder + "/" + report_filename ) as report_file :
257
258
report_data = json .load (report_file )
258
- if self .ReportKeys .boards not in report_data :
259
- # Sketches reports use the old format, skip
259
+ if (
260
+ (self .ReportKeys .boards not in report_data )
261
+ or (self .ReportKeys .maximum
262
+ not in report_data [self .ReportKeys .boards ][0 ][self .ReportKeys .sizes ][0 ])
263
+ ):
264
+ # Sketches reports use an old format, skip
260
265
print ("Old format sketches report found, skipping" )
261
266
continue
262
267
@@ -294,14 +299,27 @@ def generate_report(self, sketches_reports):
294
299
# Populate the row with data
295
300
for size_data in fqbn_data [self .ReportKeys .sizes ]:
296
301
# Determine column number for this memory type
297
- column_number = get_report_column_number (report = summary_report_data ,
298
- column_heading = size_data [self .ReportKeys .name ])
302
+ column_number = get_report_column_number (
303
+ report = summary_report_data ,
304
+ column_heading = size_data [self .ReportKeys .name ]
305
+ )
299
306
300
- # Add the memory data to the cell
307
+ # Add the absolute memory data to the cell
301
308
summary_report_data [row_number ][column_number ] = (
302
309
get_summary_value (
310
+ show_emoji = True ,
303
311
minimum = size_data [self .ReportKeys .delta ][self .ReportKeys .absolute ][self .ReportKeys .minimum ],
304
- maximum = size_data [self .ReportKeys .delta ][self .ReportKeys .absolute ][self .ReportKeys .maximum ])
312
+ maximum = size_data [self .ReportKeys .delta ][self .ReportKeys .absolute ][self .ReportKeys .maximum ]
313
+ )
314
+ )
315
+
316
+ # Add the relative memory data to the cell
317
+ summary_report_data [row_number ][column_number + 1 ] = (
318
+ get_summary_value (
319
+ show_emoji = False ,
320
+ minimum = size_data [self .ReportKeys .delta ][self .ReportKeys .relative ][self .ReportKeys .minimum ],
321
+ maximum = size_data [self .ReportKeys .delta ][self .ReportKeys .relative ][self .ReportKeys .maximum ]
322
+ )
305
323
)
306
324
307
325
# Generate detailed report data
@@ -321,13 +339,22 @@ def generate_report(self, sketches_reports):
321
339
# Determine column number for this memory type
322
340
column_number = get_report_column_number (
323
341
report = full_report_data ,
324
- column_heading = sketch [self .ReportKeys .name ] + "<br>" + size_data [self .ReportKeys .name ])
342
+ column_heading = (
343
+ sketch [self .ReportKeys .name ] + "<br>"
344
+ + size_data [self .ReportKeys .name ]
345
+ )
346
+ )
325
347
326
- # Add the memory data to the cell
348
+ # Add the absolute memory data to the cell
327
349
full_report_data [row_number ][column_number ] = (
328
350
size_data [self .ReportKeys .delta ][self .ReportKeys .absolute ]
329
351
)
330
352
353
+ # Add the relative memory data to the cell
354
+ full_report_data [row_number ][column_number + 1 ] = (
355
+ size_data [self .ReportKeys .delta ][self .ReportKeys .relative ]
356
+ )
357
+
331
358
# Add comment heading
332
359
report_markdown = self .report_key_beginning + sketches_reports [0 ][self .ReportKeys .commit_hash ] + "**\n \n "
333
360
@@ -566,23 +593,34 @@ def get_report_column_number(report, column_heading):
566
593
Keyword arguments:
567
594
column_heading -- the text of the column heading. If it doesn't exist, a column will be created with this heading.
568
595
"""
596
+ relative_column_heading = "%"
597
+
569
598
try :
570
599
column_number = report [0 ].index (column_heading , 1 )
571
600
except ValueError :
572
- # There is no existing column, so create one
601
+ # There is no existing column, so create columns for relative and absolute
573
602
column_number = len (report [0 ])
603
+
604
+ # Absolute column
574
605
# Add the heading
575
606
report [0 ].append (column_heading )
576
607
# Expand the size of the last (current) row to match the new number of columns
577
608
report [len (report ) - 1 ].append ("" )
578
609
610
+ # Relative column
611
+ # Add the heading
612
+ report [0 ].append (relative_column_heading )
613
+ # Expand the size of the last (current) row to match the new number of columns
614
+ report [len (report ) - 1 ].append ("" )
615
+
579
616
return column_number
580
617
581
618
582
- def get_summary_value (minimum , maximum ):
619
+ def get_summary_value (show_emoji , minimum , maximum ):
583
620
"""Return the Markdown formatted text for a memory change data cell in the report table.
584
621
585
622
Keyword arguments:
623
+ show_emoji -- whether to add the emoji change indicator
586
624
minimum -- minimum amount of change for this memory type
587
625
minimum -- maximum amount of change for this memory type
588
626
"""
@@ -613,7 +651,7 @@ def get_summary_value(minimum, maximum):
613
651
614
652
value = str (minimum ) + " - " + str (maximum )
615
653
616
- if emoji is not None :
654
+ if show_emoji and ( emoji is not None ) :
617
655
value = emoji + " " + value
618
656
619
657
return value
0 commit comments