From a91115e6a77c32781bb26f4fc77898285d9fb7a2 Mon Sep 17 00:00:00 2001 From: Quentin Riffard Date: Mon, 17 May 2021 11:23:09 -0700 Subject: [PATCH 1/3] Add the generation of a formated table from json file --- skvalidate/report/__init__.py | 55 +++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/skvalidate/report/__init__.py b/skvalidate/report/__init__.py index c6154cd..c1b9dc1 100644 --- a/skvalidate/report/__init__.py +++ b/skvalidate/report/__init__.py @@ -172,6 +172,61 @@ def __repr_section__(name, section): str(section), ) +def formated_table(table_json, **kwargs): + + with open(table_json) as f: + table = json.load(f) + + try: + if 'table_header' not in table: + raise Exception("Missing \'table_header\' field") + if 'table_content' not in table: + raise Exception("Missing \'table_content\' field") + except Exception as e: + logger.error('Error reading the table file: {}'.format(e)) + raise e + + if 'symbol_success' in kwargs: + symbol_success = kwargs.pop('symbol_success') + else: + symbol_success = 'success' + + if 'symbol_failed' in kwargs: + symbol_failed = kwargs.pop('symbol_failed') + else: + symbol_failed = 'failed' + + header_keys = [] + formated_header = '|' + formated_separator = '|' + + for key, name in table['table_header'].items(): + header_keys.append(key) + formated_header += f' {name} |' + formated_separator += '---|' + + formated_table = {} + formated_table['table_header'] = formated_header + formated_table['table_separator'] = formated_separator + + formated_content = [] + + for var_key, var_values in table['table_content'].items(): + formated_line = '|' + for header_key in header_keys: + if header_key.find('status') != -1 and var_values[header_key]: + formated_line += f' {symbol_success} |' + elif header_key.find('status') != -1: + formated_line += f' {symbol_failed} |' + else: + formated_line += f' {var_values[header_key]} |' + + formated_content.append(formated_line) + + formated_table['table_content'] = formated_content + + return formated_table + def get_metrics(metrics_json, metrics_ref_json, **kwargs): profile = kwargs.pop('profile', '') From 9fb112808e41ef6e20a7c741ea28e7039bc9d441 Mon Sep 17 00:00:00 2001 From: Quentin Riffard Date: Mon, 17 May 2021 11:42:01 -0700 Subject: [PATCH 2/3] Fixing lint --- skvalidate/report/__init__.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/skvalidate/report/__init__.py b/skvalidate/report/__init__.py index c1b9dc1..b615681 100644 --- a/skvalidate/report/__init__.py +++ b/skvalidate/report/__init__.py @@ -185,7 +185,7 @@ def formated_table(table_json, **kwargs): except Exception as e: logger.error('Error reading the table file: {}'.format(e)) raise e - + if 'symbol_success' in kwargs: symbol_success = kwargs.pop('symbol_success') else: @@ -203,8 +203,8 @@ def formated_table(table_json, **kwargs): for key, name in table['table_header'].items(): header_keys.append(key) formated_header += f' {name} |' - formated_separator += '---|' - + formated_separator += '---|' + formated_table = {} formated_table['table_header'] = formated_header formated_table['table_separator'] = formated_separator @@ -224,7 +224,7 @@ def formated_table(table_json, **kwargs): formated_content.append(formated_line) formated_table['table_content'] = formated_content - + return formated_table From c2a0b9508dd3316ea3ea76c6cb37e66067dbdc32 Mon Sep 17 00:00:00 2001 From: riffard Date: Mon, 17 May 2021 11:53:54 -0700 Subject: [PATCH 3/3] Fix typo --- skvalidate/report/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/skvalidate/report/__init__.py b/skvalidate/report/__init__.py index b615681..09bf5d8 100644 --- a/skvalidate/report/__init__.py +++ b/skvalidate/report/__init__.py @@ -172,7 +172,7 @@ def __repr_section__(name, section): str(section), ) -def formated_table(table_json, **kwargs): +def formatted_table(table_json, **kwargs): with open(table_json) as f: table = json.load(f)