From 0d9ae3207a33908b98d2c722ebb102a87e5c14a8 Mon Sep 17 00:00:00 2001 From: Tim White Date: Wed, 7 Feb 2024 15:07:07 +1100 Subject: [PATCH] Parse model input/output notes --- .github/scripts/crosswalks.py | 23 +++++++++---- .github/scripts/parse_issue.py | 63 +++++++++++++++++++++++++--------- 2 files changed, 64 insertions(+), 22 deletions(-) diff --git a/.github/scripts/crosswalks.py b/.github/scripts/crosswalks.py index 0b68e67..c960023 100644 --- a/.github/scripts/crosswalks.py +++ b/.github/scripts/crosswalks.py @@ -83,9 +83,14 @@ def dict_to_report(issue_dict): report += f"{str(issue_dict['include_model_code'])} \n\n" # model code URI/DOI - if "model_code_uri" in issue_dict: - report += "**Model code URI/DOI** \n" - report += f"{issue_dict['model_code_uri']} \n\n" + if issue_dict["model_code_inputs"]["doi"]: + report += "**Model code/inputs DOI** \n" + report += f"{issue_dict['model_code_inputs']['doi']} \n\n" + + # model code notes + if issue_dict["model_code_inputs"]["notes"]: + report += "**Model code/inputs notes** \n" + report += f"{issue_dict['model_code_inputs']['notes']} \n\n" # include model output data if "include_model_output" in issue_dict: @@ -93,9 +98,15 @@ def dict_to_report(issue_dict): report += f"{str(issue_dict['include_model_output'])} \n\n" # model output URI/DOI - if "model_output_uri" in issue_dict: - report += "**Model output URI/DOI** \n" - report += f"{issue_dict['model_output_uri']} \n\n" + if issue_dict["model_output_data"]["doi"]: + report += "**Model output data DOI** \n" + report += f"{issue_dict['model_output_data']['doi']} \n\n" + + # model output notes + if issue_dict["model_output_data"]["notes"]: + report += "**Model output data notes** \n" + report += f"{issue_dict['model_output_data']['notes']} \n\n" + ############# # Section 3 diff --git a/.github/scripts/parse_issue.py b/.github/scripts/parse_issue.py index 2cbbd4d..776d8f4 100644 --- a/.github/scripts/parse_issue.py +++ b/.github/scripts/parse_issue.py @@ -169,20 +169,34 @@ def parse_issue(issue): if type(selection) is str: error_log += "**Include model code?**\n" + selection + "\n" + # model code/inputs + model_code_record = {} # model code/inputs DOI - model_code_uri = data["-> model code/inputs DOI"].strip() + model_code_doi = data["-> model code/inputs DOI"].strip() - if model_code_uri == "_No response_": - error_log += "**Model code DOI**\n" - error_log += "Warning: No URI/DOI provided. \n" + if model_code_doi == "_No response_": + model_code_doi = "" + error_log += "**Model code/inputs DOI**\n" + error_log += "Warning: No DOI/URI provided. \n" else: - response = check_uri(model_code_uri) - if response == "OK": - data_dict["model_code_uri"] = model_code_uri - else: - error_log += "**Model code DOI**\n" + response + "\n" + response = check_uri(model_code_doi) + if response != "OK": + model_code_doi = "" + error_log += f"**Model code/inputs DOI**\n {response} \n" + + model_code_record["doi"] = model_code_doi # model code/inputs notes + model_code_notes = data["-> model code/inputs notes"].strip() + + if model_code_notes == "_No response_": + model_code_notes == "" + error_log += "**Model code/inputs notes**\n" + error_log += "Warning: No notes provided.\n" + + model_code_record["notes"] = model_code_notes + + data_dict["model_code_inputs"] = model_code_record # include model output data model_output = data["-> include model output data?"].strip().split("\n") @@ -193,19 +207,36 @@ def parse_issue(issue): if type(selection) is str: error_log += "**Include model output data?**\n" + selection + "\n" + # model output data + model_output_record = {} + # model output URI/DOI - model_output_uri = data["-> model output data DOI"].strip() + model_output_doi = data["-> model output data DOI"].strip() - if model_output_uri == "_No response_": + if model_output_doi == "_No response_": + model_output_doi = "" error_log += "**Model output DOI**\n" - error_log += "Warning: No URI/DOI provided. \n" + error_log += "Warning: No DOI/URI provided. \n" else: - response = check_uri(model_output_uri) - if response == "OK": - data_dict["model_output_uri"] = model_output_uri - else: + response = check_uri(model_output_doi) + if response != "OK": + model_output_doi = "" error_log += "**Model output DOI**\n" + response + "\n" + model_output_record["doi"] = model_output_doi + + # model output notes + model_output_notes = data["-> model output data notes"].strip() + + if model_output_notes == "_No response_": + model_output_notes == "" + error_log += "**Model code/inputs notes**\n" + error_log += "Warning: No notes provided.\n" + + model_output_record["notes"] = model_output_notes + + data_dict["model_output_data"] = model_output_record + ############# # Section 3