From 354a89f13a012208a1680f5b8f5405ce67ec7458 Mon Sep 17 00:00:00 2001 From: dansand Date: Thu, 16 May 2024 14:09:24 +1000 Subject: [PATCH] more changes --- .github/scripts/config.py | 2 +- .github/scripts/parse_utils.py | 3 +++ .github/scripts/ro_crate_utils.py | 18 +++++++++++++++--- .github/scripts/yaml_utils.py | 9 +++++---- 4 files changed, 24 insertions(+), 8 deletions(-) diff --git a/.github/scripts/config.py b/.github/scripts/config.py index 313a1a5..0fe2d77 100644 --- a/.github/scripts/config.py +++ b/.github/scripts/config.py @@ -5,7 +5,7 @@ #DOIS MATE_DOI = 'http://dx.doi.org/10.25914/yrzp-g882' MATE_WEBSITE = 'https://mate.science/' -MATE_GITHUB = 'https://github.com/ModelAtlasofTheEarth' +MATE_GITHUB = 'https://github.com/ModelAtlasofTheEarth/' MATE_THREDDS_BASE = "https://dapds00.nci.org.au/thredds/catalog/nm08/MATE/{}/catalog.html" #URIs diff --git a/.github/scripts/parse_utils.py b/.github/scripts/parse_utils.py index d1d3376..1cb6911 100644 --- a/.github/scripts/parse_utils.py +++ b/.github/scripts/parse_utils.py @@ -22,7 +22,10 @@ def validate_slug(proposed_slug): except AssertionError as err: error_log += f"{err}\n" + #try a workaround for local tests cmd = "python3 .github/scripts/generate_identifier.py" + if os.path.exists('../.github/scripts/generate_identifier.py'): + os.path.exists('../.github/scripts/generate_identifier.py') try: slug = subprocess.check_output(cmd, shell=True, text=True, stderr=open(os.devnull)).strip() diff --git a/.github/scripts/ro_crate_utils.py b/.github/scripts/ro_crate_utils.py index 74d85ba..33ab733 100644 --- a/.github/scripts/ro_crate_utils.py +++ b/.github/scripts/ro_crate_utils.py @@ -2,7 +2,7 @@ import string import json import random -from config import MATE_DOI, NCI_RECORD, AUSCOPE_RECORD, MATE_THREDDS_BASE +from config import * import re import glob from collections.abc import MutableMapping @@ -615,8 +615,20 @@ def defaults_and_customise_ro_crate(issue_dict, ro_crate, timestamp=False): root_index = find_index_by_id(ro_crate, './') ro_crate['@graph'][root_index]['isPartOf'].append(MATE_DOI) ro_crate['@graph'][root_index]['publisher'] = [AUSCOPE_RECORD, NCI_RECORD] - thredds_string = MATE_THREDDS_BASE.format(ro_crate['@graph'][root_index]['alternateName']) - ro_crate['@graph'][root_index]['url'] = thredds_string + #add the mate.science url for this model + #the logic is that the metadata captures all of the access points: + # the root identifier is the doi that points to the geonetwork record + # the root url points to the model on the mate website and the mate github + # the model_outputs/model_outputs url is the thredds URL + mate_science_url = MATE_WEBSITE + 'models/{}/' + mate_gh_url = MATE_GITHUB + '{}/' + slug = ro_crate['@graph'][root_index]['alternateName'] + ro_crate['@graph'][root_index]['url'] = [mate_science_url.format(slug), mate_gh_url.format(slug)] + thredds_string = MATE_THREDDS_BASE.format(slug) + roc_index = find_index_by_id(ro_crate, 'model_outputs') + ro_crate['@graph'][roc_index]['url'] = thredds_string + roc_index = find_index_by_id(ro_crate, 'model_inputs') + ro_crate['@graph'][roc_index]['url'] = thredds_string #add date time as the date published ro-crate diff --git a/.github/scripts/yaml_utils.py b/.github/scripts/yaml_utils.py index 19921d8..e0eecb4 100644 --- a/.github/scripts/yaml_utils.py +++ b/.github/scripts/yaml_utils.py @@ -2,6 +2,7 @@ import copy from ruamel.yaml import YAML import io +from config import MATE_DOI, NCI_RECORD, AUSCOPE_RECORD, MATE_THREDDS_BASE def navigate_and_assign(source, path, value): @@ -159,7 +160,6 @@ def ensure_path_starts_with_pattern(file_path, pattern='./graphics/'): def configure_yaml_output_dict(output_dict, issue_dict, image_path='./graphics/', - thredds_base ="dapds00.nci.org.au/thredds/catalog/nm08/MATE/{}/catalog.html", timestamp=False): #nci_file_path_base @@ -180,13 +180,14 @@ def configure_yaml_output_dict(output_dict, issue_dict, else: path_slug = 'PENDING' - thredds_string = thredds_base.format(path_slug) + thredds_string = MATE_THREDDS_BASE.format(path_slug) ## add the NCI_file_path if issue_dict["include_model_output"]: - output_dict['dataset']['nci_file_path'] = thredds_string + '/model_output_data' + #for now, just link both to the thredds base. + output_dict['dataset']['nci_file_path'] = thredds_string #+ '/model_output_data' if issue_dict["include_model_code"]: - output_dict['model_files']['nci_file_path'] = thredds_string + '/model_code_inputs' + output_dict['model_files']['nci_file_path'] = thredds_string #+ '/model_code_inputs' #change format of ORCiD ids if required