@@ -79,7 +79,7 @@ def get_improved_regressed_summary(is_improved: bool, rows_count: int):
7979 "\n <details>\n "
8080 "<summary>\n "
8181 f"{ title } { rows_count } "
82- f"(threshold { options .epsilon * 100 :.2f} %)\n "
82+ f"(threshold { options .stddev_threshold * 100 :.2f} %)\n "
8383 "</summary>\n \n "
8484 )
8585
@@ -138,17 +138,6 @@ def generate_markdown_details(
138138 env_dict = res .env
139139 command = res .command
140140
141- # If data is collected from already saved results,
142- # the content is parsed as strings
143- if isinstance (res .env , str ):
144- # Since the scripts would be used solely on data prepared
145- # by our scripts, this should be safe
146- # However, maybe needs an additional blessing
147- # https://docs.python.org/3/library/ast.html#ast.literal_eval
148- env_dict = ast .literal_eval (res .env )
149- if isinstance (res .command , str ):
150- command = ast .literal_eval (res .command )
151-
152141 section = (
153142 "\n <details>\n "
154143 f"<summary>{ res .label } </summary>\n \n "
@@ -179,7 +168,7 @@ def generate_markdown_details(
179168 return "\n Benchmark details contain too many chars to display\n "
180169
181170
182- def generate_summary_table_and_chart (
171+ def generate_summary_table (
183172 chart_data : dict [str , list [Result ]], baseline_name : str , markdown_size : MarkdownSize
184173):
185174 summary_table = get_chart_markdown_header (
@@ -276,7 +265,7 @@ def generate_summary_table_and_chart(
276265 delta = oln .diff - 1
277266 oln .row += f" { delta * 100 :.2f} %"
278267
279- if abs (delta ) > options .epsilon :
268+ if abs (delta ) > options .stddev_threshold :
280269 if delta > 0 :
281270 improved_rows .append (oln .row + " | \n " )
282271 else :
@@ -374,10 +363,27 @@ def generate_summary_table_and_chart(
374363 return "\n # Summary\n " "Benchmark output is too large to display\n \n "
375364
376365
366+ def generate_failures_section (failures : dict [str , str ]) -> str :
367+ if not failures :
368+ return ""
369+
370+ section = "\n # Failures\n "
371+ section += "| Name | Failure |\n "
372+ section += "|---|---|\n "
373+
374+ for name , failure in failures .items ():
375+ section += f"| { name } | { failure } |\n "
376+
377+ return section
378+
379+
377380def generate_markdown (
378- name : str , chart_data : dict [str , list [Result ]], markdown_size : MarkdownSize
381+ name : str ,
382+ chart_data : dict [str , list [Result ]],
383+ failures : dict [str , str ],
384+ markdown_size : MarkdownSize ,
379385):
380- (summary_line , summary_table ) = generate_summary_table_and_chart (
386+ (summary_line , summary_table ) = generate_summary_table (
381387 chart_data , name , markdown_size
382388 )
383389
@@ -396,4 +402,6 @@ def generate_markdown(
396402 )
397403 generated_markdown += "\n # Details\n " f"{ markdown_details } \n "
398404
399- return generated_markdown
405+ failures_section = generate_failures_section (failures )
406+
407+ return failures_section + generated_markdown
0 commit comments