From 38b2017e32292a42e8674054eb91ffe3c2b9bef2 Mon Sep 17 00:00:00 2001 From: Miguel Andres-Martinez Date: Fri, 19 Apr 2024 23:42:28 +0200 Subject: [PATCH 01/12] intermediate movement control and new default, except input, forcing, no files are copied to the intermediate folders --- src/esm_runscripts/filelists.py | 27 ++++++++++++++++++++++++++- src/esm_runscripts/prepcompute.py | 9 +++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/src/esm_runscripts/filelists.py b/src/esm_runscripts/filelists.py index fa27f8520..ba0485d0e 100644 --- a/src/esm_runscripts/filelists.py +++ b/src/esm_runscripts/filelists.py @@ -918,6 +918,11 @@ def copy_files(config, filetypes, source, target): successful_files = [] missing_files = {} + intermediate_movements = config["general"].get( + "intermediate_movements", + ["config", "input"], # DEFAULTS + ) + if source == "init": text_source = "sources" elif source == "thisrun": @@ -930,11 +935,25 @@ def copy_files(config, filetypes, source, target): elif target == "work": text_target = "targets" + # Loop through the different filetypes (input, forcing, restart_in/out, ...) + files_to_be_moved = [] for filetype in [filetype for filetype in filetypes if not filetype == "ignore"]: + # Loop through the components for model in config["general"]["valid_model_names"] + ["general"]: + # If there is a source of this file type in the model if filetype + "_" + text_source in config[model]: + this_text_target = text_target + this_intermediate_movements = config[model].get( + "intermediate_movements", intermediate_movements + ) + if filetype not in intermediate_movements: + if text_target == "intermediate": + this_text_target = "targets" + elif text_source == "intermediate": + continue sourceblock = config[model][filetype + "_" + text_source] - targetblock = config[model][filetype + "_" + text_target] + targetblock = config[model][filetype + "_" + this_text_target] + # Loop through categories (file keys) for category in sourceblock: movement_method = get_method( get_movement(config, model, category, filetype, source, target) @@ -947,6 +966,7 @@ def copy_files(config, filetypes, source, target): print(f"- source: {file_source}", flush=True) print(f"- target: {file_target}", flush=True) helpers.print_datetime(config) + # Skip movement if file exist if file_source == file_target: if config["general"]["verbose"]: print( @@ -982,6 +1002,11 @@ def copy_files(config, filetypes, source, target): ) helpers.print_datetime(config) continue + files_to_be_moved.append({ + "movement_method": movement_method, + "file_source": file_source, + "file_target": file_target, + }) movement_method(file_source, file_target) # shutil.copy2(file_source, file_target) successful_files.append(file_source) diff --git a/src/esm_runscripts/prepcompute.py b/src/esm_runscripts/prepcompute.py index 7ad54822a..5065f3370 100644 --- a/src/esm_runscripts/prepcompute.py +++ b/src/esm_runscripts/prepcompute.py @@ -242,6 +242,15 @@ def copy_files_to_work(config): return config +def copy_files_init_to_work(config): + if config["general"]["verbose"]: + print("PREPARING WORK FOLDER") + config = copy_files( + config, config["general"]["in_filetypes"], source="thisrun", target="work" + ) + return config + + def _write_finalized_config(config, config_file_path=None): """ Writes _finished_config.yaml file From 339da3dfc4c947723086a3248dbf73d8fd563108 Mon Sep 17 00:00:00 2001 From: mandresm Date: Thu, 2 May 2024 19:06:43 +0200 Subject: [PATCH 02/12] preprocess scripts for focioifs and awicm3 run now in work and after copy_to_work --- configs/components/oifs/oifs.yaml | 10 +++++----- configs/defaults/general.yaml | 4 ++++ configs/setups/focioifs/focioifs.yaml | 2 +- src/esm_runscripts/filelists.py | 2 +- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/configs/components/oifs/oifs.yaml b/configs/components/oifs/oifs.yaml index e286569fb..73ecbbc75 100644 --- a/configs/components/oifs/oifs.yaml +++ b/configs/components/oifs/oifs.yaml @@ -1294,7 +1294,7 @@ choose_eternal_run_number: start_ndays_source: "${start_ndays}" preprocess_method: " ${general.esm_function_dir}/components/oifs/change_icm_date.sh - ${thisrun_input_dir}/ + ${thisrun_work_dir}/ ${oifs.input_expid} ${oifs.input_expid} ${initial_date!syear!smonth!sday} @@ -1318,7 +1318,7 @@ choose_eternal_run_number: start_ndays_source: "${prev_run.oifs.next_ndays}" preprocess_method: " ${general.esm_function_dir}/components/oifs/change_icm_date.sh - ${thisrun_input_dir}/ + ${thisrun_work_dir}/ ${oifs.input_expid} ${oifs.input_expid} ${pseudo_initial_date!syear!smonth!sday} @@ -1328,7 +1328,7 @@ choose_eternal_run_number: ${oifs.nx} ${oifs.ensemble_id}; ${general.esm_function_dir}/components/oifs/change_rcf_date.sh - ${thisrun_restart_in_dir}/ + ${thisrun_work_dir}/ ${pseudo_initial_date!syear!smonth!sday} ${oifs.time_step} ${oifs.seconds_since_initial} @@ -1347,7 +1347,7 @@ choose_general.standalone: True: slice_icml: " ${general.esm_function_dir}/components/oifs/slice_icmcl_file.sh - ${thisrun_input_dir}/ + ${thisrun_work_dir}/ ${icmcl_dir}/${icmcl_file} ${oifs.input_expid} ${start_date!syear!smonth!sday} @@ -1391,10 +1391,10 @@ prepcompute_recipe: - "wait_for_iterative_coupling" - "copy_files_to_thisrun" - "write_env" - - "preprocess" - "modify_namelists" - "modify_files" - "copy_files_to_work" + - "preprocess" - "report_missing_files" # see https://github.com/esm-tools/esm_tools/discussions/774 # - "add_vcs_info" diff --git a/configs/defaults/general.yaml b/configs/defaults/general.yaml index 4d7048319..b1a124fad 100644 --- a/configs/defaults/general.yaml +++ b/configs/defaults/general.yaml @@ -1,2 +1,6 @@ use_database: false profile: False +intermediate_movements: +- "config" +- "bin" +- "input" diff --git a/configs/setups/focioifs/focioifs.yaml b/configs/setups/focioifs/focioifs.yaml index f29515f8a..a79d02037 100644 --- a/configs/setups/focioifs/focioifs.yaml +++ b/configs/setups/focioifs/focioifs.yaml @@ -15,10 +15,10 @@ general: - "wait_for_iterative_coupling" - "copy_files_to_thisrun" - "write_env" - - "preprocess" - "modify_namelists" - "modify_files" - "copy_files_to_work" + - "preprocess" - "report_missing_files" # not working, bug already reported at https://github.com/esm-tools/esm_tools/discussions/774 # - "add_vcs_info" diff --git a/src/esm_runscripts/filelists.py b/src/esm_runscripts/filelists.py index ba0485d0e..45fdb2ba0 100644 --- a/src/esm_runscripts/filelists.py +++ b/src/esm_runscripts/filelists.py @@ -920,7 +920,7 @@ def copy_files(config, filetypes, source, target): intermediate_movements = config["general"].get( "intermediate_movements", - ["config", "input"], # DEFAULTS + [], ) if source == "init": From a740aed9c8a1a164c6cc1422b6ce34744d8b5e6f Mon Sep 17 00:00:00 2001 From: mandresm Date: Sat, 4 May 2024 07:52:58 +0200 Subject: [PATCH 03/12] preprocess after intermediate --- configs/components/oifs/oifs.yaml | 2 +- configs/setups/focioifs/focioifs.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/configs/components/oifs/oifs.yaml b/configs/components/oifs/oifs.yaml index 73ecbbc75..9eff83a68 100644 --- a/configs/components/oifs/oifs.yaml +++ b/configs/components/oifs/oifs.yaml @@ -1391,10 +1391,10 @@ prepcompute_recipe: - "wait_for_iterative_coupling" - "copy_files_to_thisrun" - "write_env" + - "preprocess" - "modify_namelists" - "modify_files" - "copy_files_to_work" - - "preprocess" - "report_missing_files" # see https://github.com/esm-tools/esm_tools/discussions/774 # - "add_vcs_info" diff --git a/configs/setups/focioifs/focioifs.yaml b/configs/setups/focioifs/focioifs.yaml index a79d02037..f29515f8a 100644 --- a/configs/setups/focioifs/focioifs.yaml +++ b/configs/setups/focioifs/focioifs.yaml @@ -15,10 +15,10 @@ general: - "wait_for_iterative_coupling" - "copy_files_to_thisrun" - "write_env" + - "preprocess" - "modify_namelists" - "modify_files" - "copy_files_to_work" - - "preprocess" - "report_missing_files" # not working, bug already reported at https://github.com/esm-tools/esm_tools/discussions/774 # - "add_vcs_info" From e4b124e2f75805296e649b9ff0a895c04e446b25 Mon Sep 17 00:00:00 2001 From: mandresm Date: Sat, 4 May 2024 09:36:09 +0200 Subject: [PATCH 04/12] fix change_icm_data input directory and, most importantly, avoid overwriting files in the general experiment folder when copying directly from work --- configs/components/oifs/oifs.yaml | 4 +-- src/esm_runscripts/filelists.py | 44 ++++++++++++++++++++++++++++++- 2 files changed, 45 insertions(+), 3 deletions(-) diff --git a/configs/components/oifs/oifs.yaml b/configs/components/oifs/oifs.yaml index 9eff83a68..44cf6a54f 100644 --- a/configs/components/oifs/oifs.yaml +++ b/configs/components/oifs/oifs.yaml @@ -1294,7 +1294,7 @@ choose_eternal_run_number: start_ndays_source: "${start_ndays}" preprocess_method: " ${general.esm_function_dir}/components/oifs/change_icm_date.sh - ${thisrun_work_dir}/ + ${thisrun_input_dir}/ ${oifs.input_expid} ${oifs.input_expid} ${initial_date!syear!smonth!sday} @@ -1318,7 +1318,7 @@ choose_eternal_run_number: start_ndays_source: "${prev_run.oifs.next_ndays}" preprocess_method: " ${general.esm_function_dir}/components/oifs/change_icm_date.sh - ${thisrun_work_dir}/ + ${thisrun_input_dir}/ ${oifs.input_expid} ${oifs.input_expid} ${pseudo_initial_date!syear!smonth!sday} diff --git a/src/esm_runscripts/filelists.py b/src/esm_runscripts/filelists.py index 45fdb2ba0..3b0dca865 100644 --- a/src/esm_runscripts/filelists.py +++ b/src/esm_runscripts/filelists.py @@ -946,9 +946,11 @@ def copy_files(config, filetypes, source, target): this_intermediate_movements = config[model].get( "intermediate_movements", intermediate_movements ) + skip_intermediate = False if filetype not in intermediate_movements: if text_target == "intermediate": this_text_target = "targets" + skip_intermediate = True elif text_source == "intermediate": continue sourceblock = config[model][filetype + "_" + text_source] @@ -1007,8 +1009,16 @@ def copy_files(config, filetypes, source, target): "file_source": file_source, "file_target": file_target, }) + + # To avoid overwriting in general experiment folder + if skip_intermediate == True: + file_target = avoid_overwriting( + config, file_source, file_target + ) + + # Execute movement movement_method(file_source, file_target) - # shutil.copy2(file_source, file_target) + successful_files.append(file_source) except IOError: print( @@ -1031,6 +1041,38 @@ def copy_files(config, filetypes, source, target): return config +def avoid_overwriting(config, source, target): + if os.path.isfile(target): + if filecmp.cmp(source, target): + return target + + date_stamped_target = f"{target}_{config['general']['run_datestamp']}" + if os.path.isfile(date_stamped_target): + esm_parser.user_note( + "File movement conflict", + f"The file ``{date_stamped_target}`` already exists. Skipping movement:\n" + f"{soucer} -> {date_stamped_target}" + ) + return target + + if os.path.islink(target): + os.remove(target) + else: + os.rename(target, f"{target}_{config['general']['last_run_datestamp']}") + + os.symlink(date_stamped_target, target) + target = date_stamped_target + + elif os.path.isdir(target): + esm_parser.user_error( + "File operation not supported", + f"The target ``{target}`` is a folder, and this should not be happening " + "here. Please, open an issue in www.github.com/esm-tools/esm_tools" + ) + + return target + + def filter_allowed_missing_files(config): """ Filters the general.files_missing_when_preparing_run dictionary to move any From b20b2d128c5f0bff6bcb44ab0766eebad369968c Mon Sep 17 00:00:00 2001 From: mandresm Date: Sat, 4 May 2024 09:52:06 +0200 Subject: [PATCH 05/12] add docstrings --- src/esm_runscripts/filelists.py | 43 +++++++++++++++++++++++++++++++ src/esm_runscripts/prepcompute.py | 11 ++++++++ 2 files changed, 54 insertions(+) diff --git a/src/esm_runscripts/filelists.py b/src/esm_runscripts/filelists.py index 3b0dca865..068d5dad0 100644 --- a/src/esm_runscripts/filelists.py +++ b/src/esm_runscripts/filelists.py @@ -911,6 +911,32 @@ def resolve_symlinks(config, file_source): def copy_files(config, filetypes, source, target): + """ + This function has a misleading name. It is not only used for copying, but also + for moving or linking, depending on what was specified for the particular file + or file type vie the ``file_movements``. + + Note: when the ``target`` is ``thisrun`` (intermediate folders) check whether the + type of file is included in ``intermediate_movements``. If it's not, instead of + moving the file to the intermediate folder it moves it to ``work``. This is an + ugly fix to provide a fast solution to the problem that files are + copied/moved/linked twice unnecessarily, and this affects inmensely the performance + of high resolution simulations. A better fix is not made because ``filelists`` are + being entirely reworked, but the fix cannot wait. + + Parameters + ---------- + config : dict + The general configuration + filetypes : list + List of file types to be copied/linked/moved + source : str + Specifies the source type, to be chosen between ``init``, ``thisrun``, + ``work``. + target : str + Specifies the target type, to be chosen between ``init``, ``thisrun``, + ``work``. + """ if config["general"]["verbose"]: print("\n::: Copying files", flush=True) helpers.print_datetime(config) @@ -1042,6 +1068,23 @@ def copy_files(config, filetypes, source, target): def avoid_overwriting(config, source, target): + """ + Function that appends the date stamp to ``target`` if the target already exists. + Additionally, if the target exists, it renames it with the previous run time stamp, + and creates a link named ``target`` that points at the target with the current time + stamp. + + Note: This function does not execute the file movement. + + Parameters + ---------- + config : dict + Simulation configuration + source : str + Path of the source of the file that will be copied/moved/linked + target : src + Path of the target of the file that will be copied/moved/linked + """ if os.path.isfile(target): if filecmp.cmp(source, target): return target diff --git a/src/esm_runscripts/prepcompute.py b/src/esm_runscripts/prepcompute.py index 5065f3370..e94f4af8f 100644 --- a/src/esm_runscripts/prepcompute.py +++ b/src/esm_runscripts/prepcompute.py @@ -218,6 +218,17 @@ def wait_for_iterative_coupling(config): def copy_files_to_thisrun(config): + """ + This function was used to copy to intermediate folders in the past. Now the + ``copy_files`` function used within, in all file movements, might escape moving + files to the intermediate folders, and move them directly to ``work`` if the file + type of the file is not included in the variable ``general.intermediate_movements``. + + This is a fast fix, pretty ugly, but works. The reason for not making it better is + that we are reworking the whole file movement logic, so it is not worth the time to + do a partial rework here. + """ + if config["general"]["verbose"]: print("PREPARING EXPERIMENT") # Copy files: From 70d6066b4e5b95e30cfb9d466219e159d5e38d90 Mon Sep 17 00:00:00 2001 From: Miguel Andres-Martinez Date: Sat, 4 May 2024 10:01:44 +0200 Subject: [PATCH 06/12] clean up --- src/esm_runscripts/prepcompute.py | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/esm_runscripts/prepcompute.py b/src/esm_runscripts/prepcompute.py index e94f4af8f..b88f06a1b 100644 --- a/src/esm_runscripts/prepcompute.py +++ b/src/esm_runscripts/prepcompute.py @@ -253,15 +253,6 @@ def copy_files_to_work(config): return config -def copy_files_init_to_work(config): - if config["general"]["verbose"]: - print("PREPARING WORK FOLDER") - config = copy_files( - config, config["general"]["in_filetypes"], source="thisrun", target="work" - ) - return config - - def _write_finalized_config(config, config_file_path=None): """ Writes _finished_config.yaml file From a5eaf40e3502d30f0b08b9b5881ed048ba0116b6 Mon Sep 17 00:00:00 2001 From: Miguel <63242832+mandresm@users.noreply.github.com> Date: Mon, 6 May 2024 15:31:38 +0200 Subject: [PATCH 07/12] Update src/esm_runscripts/filelists.py Co-authored-by: Paul Gierz --- src/esm_runscripts/filelists.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/esm_runscripts/filelists.py b/src/esm_runscripts/filelists.py index eae2ecfbe..eaf931be0 100644 --- a/src/esm_runscripts/filelists.py +++ b/src/esm_runscripts/filelists.py @@ -933,6 +933,7 @@ def copy_files(config, filetypes, source, target): successful_files = [] missing_files = {} + # See the default intermediate movements list in `configs/defaults/general.yaml` intermediate_movements = config["general"].get( "intermediate_movements", [], From be1bd057f6ea5337f396a3281bc135059ebc967b Mon Sep 17 00:00:00 2001 From: Miguel <63242832+mandresm@users.noreply.github.com> Date: Mon, 6 May 2024 15:32:01 +0200 Subject: [PATCH 08/12] Update src/esm_runscripts/filelists.py Co-authored-by: Paul Gierz --- src/esm_runscripts/filelists.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/esm_runscripts/filelists.py b/src/esm_runscripts/filelists.py index eaf931be0..940f3dca5 100644 --- a/src/esm_runscripts/filelists.py +++ b/src/esm_runscripts/filelists.py @@ -1058,7 +1058,9 @@ def avoid_overwriting(config, source, target): and creates a link named ``target`` that points at the target with the current time stamp. - Note: This function does not execute the file movement. + Note + ---- + This function does not execute the file movement. Parameters ---------- From e9323f9ce07f9e05c004b3a3e18b8bf0b35ac2d1 Mon Sep 17 00:00:00 2001 From: Miguel <63242832+mandresm@users.noreply.github.com> Date: Mon, 6 May 2024 15:32:33 +0200 Subject: [PATCH 09/12] Update src/esm_runscripts/filelists.py Co-authored-by: Paul Gierz --- src/esm_runscripts/filelists.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/esm_runscripts/filelists.py b/src/esm_runscripts/filelists.py index 940f3dca5..41dc185f2 100644 --- a/src/esm_runscripts/filelists.py +++ b/src/esm_runscripts/filelists.py @@ -1080,7 +1080,7 @@ def avoid_overwriting(config, source, target): esm_parser.user_note( "File movement conflict", f"The file ``{date_stamped_target}`` already exists. Skipping movement:\n" - f"{soucer} -> {date_stamped_target}" + f"{source} -> {date_stamped_target}" ) return target From 114396d8e15fea0b4a2a86538f44565f15bf6fda Mon Sep 17 00:00:00 2001 From: Miguel <63242832+mandresm@users.noreply.github.com> Date: Mon, 6 May 2024 15:32:43 +0200 Subject: [PATCH 10/12] Update src/esm_runscripts/filelists.py Co-authored-by: Paul Gierz --- src/esm_runscripts/filelists.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/esm_runscripts/filelists.py b/src/esm_runscripts/filelists.py index 41dc185f2..5599e31ce 100644 --- a/src/esm_runscripts/filelists.py +++ b/src/esm_runscripts/filelists.py @@ -914,6 +914,13 @@ def copy_files(config, filetypes, source, target): of high resolution simulations. A better fix is not made because ``filelists`` are being entirely reworked, but the fix cannot wait. + Note + ---- + Relevant variables in this function: + + intermediate_movements : list + List of file types that will be considered in the intermediate step (copy from source to intermediate and then to work, rather than directly to work) + Parameters ---------- config : dict From 53ae643e1ffc0e695d1163413b9cfd53f15fdfff Mon Sep 17 00:00:00 2001 From: Miguel <63242832+mandresm@users.noreply.github.com> Date: Fri, 10 May 2024 12:27:22 +0200 Subject: [PATCH 11/12] Update src/esm_runscripts/filelists.py Co-authored-by: Paul Gierz --- src/esm_runscripts/filelists.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/esm_runscripts/filelists.py b/src/esm_runscripts/filelists.py index 5599e31ce..40ec350ea 100644 --- a/src/esm_runscripts/filelists.py +++ b/src/esm_runscripts/filelists.py @@ -1084,7 +1084,7 @@ def avoid_overwriting(config, source, target): date_stamped_target = f"{target}_{config['general']['run_datestamp']}" if os.path.isfile(date_stamped_target): - esm_parser.user_note( + esm_parser.user_error( "File movement conflict", f"The file ``{date_stamped_target}`` already exists. Skipping movement:\n" f"{source} -> {date_stamped_target}" From 51f2a055275fa23c4e5a424437445fd2a69bc5c0 Mon Sep 17 00:00:00 2001 From: BumpVersion Action Date: Fri, 10 May 2024 10:52:47 +0000 Subject: [PATCH 12/12] =?UTF-8?q?Bump=20version:=206.30.0=20=E2=86=92=206.?= =?UTF-8?q?31.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- setup.cfg | 2 +- setup.py | 2 +- src/esm_archiving/__init__.py | 2 +- src/esm_calendar/__init__.py | 2 +- src/esm_cleanup/__init__.py | 2 +- src/esm_database/__init__.py | 2 +- src/esm_environment/__init__.py | 2 +- src/esm_master/__init__.py | 2 +- src/esm_motd/__init__.py | 2 +- src/esm_parser/__init__.py | 2 +- src/esm_plugin_manager/__init__.py | 2 +- src/esm_profile/__init__.py | 2 +- src/esm_runscripts/__init__.py | 2 +- src/esm_tests/__init__.py | 2 +- src/esm_tools/__init__.py | 2 +- src/esm_utilities/__init__.py | 2 +- 16 files changed, 16 insertions(+), 16 deletions(-) diff --git a/setup.cfg b/setup.cfg index b8a6401eb..26924f1a4 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 6.30.0 +current_version = 6.31.0 commit = True tag = True diff --git a/setup.py b/setup.py index b5c195bd9..d01b24782 100644 --- a/setup.py +++ b/setup.py @@ -105,6 +105,6 @@ test_suite="tests", tests_require=test_requirements, url="https://github.com/esm-tools/esm_tools", - version="6.30.0", + version="6.31.0", zip_safe=False, ) diff --git a/src/esm_archiving/__init__.py b/src/esm_archiving/__init__.py index 863313531..d7cdcbbc1 100644 --- a/src/esm_archiving/__init__.py +++ b/src/esm_archiving/__init__.py @@ -4,7 +4,7 @@ __author__ = """Paul Gierz""" __email__ = "pgierz@awi.de" -__version__ = "6.30.0" +__version__ = "6.31.0" from .esm_archiving import (archive_mistral, check_tar_lists, delete_original_data, determine_datestamp_location, diff --git a/src/esm_calendar/__init__.py b/src/esm_calendar/__init__.py index f5715dfb0..9c96ba9f9 100644 --- a/src/esm_calendar/__init__.py +++ b/src/esm_calendar/__init__.py @@ -2,6 +2,6 @@ __author__ = """Dirk Barbi""" __email__ = "dirk.barbi@awi.de" -__version__ = "6.30.0" +__version__ = "6.31.0" from .esm_calendar import * diff --git a/src/esm_cleanup/__init__.py b/src/esm_cleanup/__init__.py index 7eeeb991b..eaa8d55b9 100644 --- a/src/esm_cleanup/__init__.py +++ b/src/esm_cleanup/__init__.py @@ -2,4 +2,4 @@ __author__ = """Dirk Barbi""" __email__ = "dirk.barbi@awi.de" -__version__ = "6.30.0" +__version__ = "6.31.0" diff --git a/src/esm_database/__init__.py b/src/esm_database/__init__.py index 60e2323e0..c20fe754b 100644 --- a/src/esm_database/__init__.py +++ b/src/esm_database/__init__.py @@ -2,4 +2,4 @@ __author__ = """Dirk Barbi""" __email__ = "dirk.barbi@awi.de" -__version__ = "6.30.0" +__version__ = "6.31.0" diff --git a/src/esm_environment/__init__.py b/src/esm_environment/__init__.py index 719dc84a9..b8c44c88f 100644 --- a/src/esm_environment/__init__.py +++ b/src/esm_environment/__init__.py @@ -2,6 +2,6 @@ __author__ = """Dirk Barbi""" __email__ = "dirk.barbi@awi.de" -__version__ = "6.30.0" +__version__ = "6.31.0" from .esm_environment import * diff --git a/src/esm_master/__init__.py b/src/esm_master/__init__.py index b972c55c6..b828a2520 100644 --- a/src/esm_master/__init__.py +++ b/src/esm_master/__init__.py @@ -2,7 +2,7 @@ __author__ = """Dirk Barbi""" __email__ = "dirk.barbi@awi.de" -__version__ = "6.30.0" +__version__ = "6.31.0" from . import database diff --git a/src/esm_motd/__init__.py b/src/esm_motd/__init__.py index 394c96b37..408274776 100644 --- a/src/esm_motd/__init__.py +++ b/src/esm_motd/__init__.py @@ -2,6 +2,6 @@ __author__ = """Dirk Barbi""" __email__ = "dirk.barbi@awi.de" -__version__ = "6.30.0" +__version__ = "6.31.0" from .esm_motd import * diff --git a/src/esm_parser/__init__.py b/src/esm_parser/__init__.py index 8024be907..911f39b4b 100644 --- a/src/esm_parser/__init__.py +++ b/src/esm_parser/__init__.py @@ -2,7 +2,7 @@ __author__ = """Dirk Barbi""" __email__ = "dirk.barbi@awi.de" -__version__ = "6.30.0" +__version__ = "6.31.0" from .esm_parser import * diff --git a/src/esm_plugin_manager/__init__.py b/src/esm_plugin_manager/__init__.py index 6324f5b07..f8d56d300 100644 --- a/src/esm_plugin_manager/__init__.py +++ b/src/esm_plugin_manager/__init__.py @@ -2,6 +2,6 @@ __author__ = """Dirk Barbi, Paul Gierz, Sebastian Wahl""" __email__ = "dirk.barbi@awi.de" -__version__ = "6.30.0" +__version__ = "6.31.0" from .esm_plugin_manager import * diff --git a/src/esm_profile/__init__.py b/src/esm_profile/__init__.py index a09e289c1..42b9ae3f7 100644 --- a/src/esm_profile/__init__.py +++ b/src/esm_profile/__init__.py @@ -2,6 +2,6 @@ __author__ = """Dirk Barbi""" __email__ = "dirk.barbi@awi.de" -__version__ = "6.30.0" +__version__ = "6.31.0" from .esm_profile import * diff --git a/src/esm_runscripts/__init__.py b/src/esm_runscripts/__init__.py index 70841a11a..5fac48d2c 100644 --- a/src/esm_runscripts/__init__.py +++ b/src/esm_runscripts/__init__.py @@ -2,7 +2,7 @@ __author__ = """Dirk Barbi""" __email__ = "dirk.barbi@awi.de" -__version__ = "6.30.0" +__version__ = "6.31.0" from .batch_system import * from .chunky_parts import * diff --git a/src/esm_tests/__init__.py b/src/esm_tests/__init__.py index a2c08e5e7..1458ec4af 100644 --- a/src/esm_tests/__init__.py +++ b/src/esm_tests/__init__.py @@ -2,7 +2,7 @@ __author__ = """Miguel Andres-Martinez""" __email__ = "miguel.andres-martinez@awi.de" -__version__ = "6.30.0" +__version__ = "6.31.0" from .initialization import * from .read_shipped_data import * diff --git a/src/esm_tools/__init__.py b/src/esm_tools/__init__.py index 8c98e71ad..5ebe92a84 100644 --- a/src/esm_tools/__init__.py +++ b/src/esm_tools/__init__.py @@ -23,7 +23,7 @@ __author__ = """Dirk Barbi, Paul Gierz""" __email__ = "dirk.barbi@awi.de" -__version__ = "6.30.0" +__version__ = "6.31.0" import functools import inspect diff --git a/src/esm_utilities/__init__.py b/src/esm_utilities/__init__.py index 2de28cb51..471a808e9 100644 --- a/src/esm_utilities/__init__.py +++ b/src/esm_utilities/__init__.py @@ -2,6 +2,6 @@ __author__ = """Paul Gierz""" __email__ = "pgierz@awi.de" -__version__ = "6.30.0" +__version__ = "6.31.0" from .utils import *