From 38990b712531aebc985cf4ca66ecf8de2755c096 Mon Sep 17 00:00:00 2001 From: Rahul Mahajan Date: Fri, 3 Jan 2025 10:32:44 -0500 Subject: [PATCH 1/4] ensure OCNRES and ICERES have 3 digits in the archive script --- scripts/exglobal_archive.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/scripts/exglobal_archive.py b/scripts/exglobal_archive.py index 5ae57ca7e3e..35ba1644969 100755 --- a/scripts/exglobal_archive.py +++ b/scripts/exglobal_archive.py @@ -38,15 +38,17 @@ def main(): archive_dict = AttrDict() for key in keys: archive_dict[key] = archive.task_config.get(key) + if key in ['OCNRES', 'ICERES']: + archive_dict[key] = f"{archive_dict.get(key):03d}" if archive_dict[key] is None: - print(f"Warning: key ({key}) not found in task_config!") + logger.warning(f"WARNING: key ({key}) not found in task_config!") # Also import all COMIN* and COMOUT* directory and template variables for key in archive.task_config.keys(): if key.startswith("COM_") or key.startswith("COMIN_") or key.startswith("COMOUT_"): archive_dict[key] = archive.task_config.get(key) if archive_dict[key] is None: - print(f"Warning: key ({key}) not found in task_config!") + logger.warning(f"WARNING: key ({key}) not found in task_config!") with chdir(config.ROTDIR): From c7d0f21399a8bee7925d5cad54b998ba2cf6529a Mon Sep 17 00:00:00 2001 From: Rahul Mahajan Date: Fri, 3 Jan 2025 10:34:58 -0500 Subject: [PATCH 2/4] ensure OCNRES and ICERES have 3 digits in the archive script --- scripts/exglobal_archive.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/exglobal_archive.py b/scripts/exglobal_archive.py index 35ba1644969..3a9b8965672 100755 --- a/scripts/exglobal_archive.py +++ b/scripts/exglobal_archive.py @@ -37,9 +37,9 @@ def main(): archive_dict = AttrDict() for key in keys: + if key in ['OCNRES', 'ICERES']: # update this key to be 3 digits + archive.task_config[key] = f"{archive.task_config.get(key):03d}" archive_dict[key] = archive.task_config.get(key) - if key in ['OCNRES', 'ICERES']: - archive_dict[key] = f"{archive_dict.get(key):03d}" if archive_dict[key] is None: logger.warning(f"WARNING: key ({key}) not found in task_config!") From df6185ebde745e64e18b78a054ec245c916c4446 Mon Sep 17 00:00:00 2001 From: Rahul Mahajan Date: Fri, 3 Jan 2025 12:28:01 -0500 Subject: [PATCH 3/4] fix a possible error where OCNRES or ICERES are missing. Use try except --- scripts/exglobal_archive.py | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/scripts/exglobal_archive.py b/scripts/exglobal_archive.py index 3a9b8965672..b55edbeef0a 100755 --- a/scripts/exglobal_archive.py +++ b/scripts/exglobal_archive.py @@ -17,6 +17,14 @@ def main(): # Instantiate the Archive object archive = Archive(config) + # update these keys to be 3 digits if they are part of archive.task_config.keys + if {'OCNRES', 'ICERES'} <= archive.task_config.keys(): + for key in ['OCNRES', 'ICERES']: + try: + archive.task_config[key] = f"{archive.task_config[key]:03d}" + except KeyError as ee: + logger.info(f"key ({key}) not found in archive.task_config!") + # Pull out all the configuration keys needed to run the rest of archive steps keys = ['ATARDIR', 'current_cycle', 'FHMIN', 'FHMAX', 'FHOUT', 'RUN', 'PDY', 'DO_VERFRAD', 'DO_VMINMON', 'DO_VERFOZN', 'DO_ICE', 'DO_PREP_OBS_AERO', @@ -37,18 +45,15 @@ def main(): archive_dict = AttrDict() for key in keys: - if key in ['OCNRES', 'ICERES']: # update this key to be 3 digits - archive.task_config[key] = f"{archive.task_config.get(key):03d}" - archive_dict[key] = archive.task_config.get(key) - if archive_dict[key] is None: - logger.warning(f"WARNING: key ({key}) not found in task_config!") + try: + archive_dict[key] = archive.task_config[key] + except KeyError as ee: + logger.warning(f"WARNING: key ({key}) not found in archive.task_config!") # Also import all COMIN* and COMOUT* directory and template variables for key in archive.task_config.keys(): - if key.startswith("COM_") or key.startswith("COMIN_") or key.startswith("COMOUT_"): + if key.startswith(("COM_", "COMIN_", "COMOUT_")): archive_dict[key] = archive.task_config.get(key) - if archive_dict[key] is None: - logger.warning(f"WARNING: key ({key}) not found in task_config!") with chdir(config.ROTDIR): From fc4916e82f364dfc4445f8796201b4ec747d5410 Mon Sep 17 00:00:00 2001 From: Rahul Mahajan Date: Fri, 3 Jan 2025 14:44:29 -0500 Subject: [PATCH 4/4] fix the error spotted by DH. --- scripts/exglobal_archive.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/scripts/exglobal_archive.py b/scripts/exglobal_archive.py index b55edbeef0a..ae613fb39c0 100755 --- a/scripts/exglobal_archive.py +++ b/scripts/exglobal_archive.py @@ -18,12 +18,11 @@ def main(): archive = Archive(config) # update these keys to be 3 digits if they are part of archive.task_config.keys - if {'OCNRES', 'ICERES'} <= archive.task_config.keys(): - for key in ['OCNRES', 'ICERES']: - try: - archive.task_config[key] = f"{archive.task_config[key]:03d}" - except KeyError as ee: - logger.info(f"key ({key}) not found in archive.task_config!") + for key in ['OCNRES', 'ICERES']: + try: + archive.task_config[key] = f"{archive.task_config[key]:03d}" + except KeyError as ee: + logger.info(f"key ({key}) not found in archive.task_config!") # Pull out all the configuration keys needed to run the rest of archive steps keys = ['ATARDIR', 'current_cycle', 'FHMIN', 'FHMAX', 'FHOUT', 'RUN', 'PDY',