From 92a23b677fc63a7d9ae61e202e97e048e54c6131 Mon Sep 17 00:00:00 2001 From: Olivier Hoenen Date: Fri, 27 Feb 2026 13:31:36 +0100 Subject: [PATCH 1/4] fix inconsistent data in training asset and allow loading assets in their original DD version --- imas/assets/ITER_134173_106_equilibrium.ids | 2 -- imas/training.py | 15 +++++++++++---- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/imas/assets/ITER_134173_106_equilibrium.ids b/imas/assets/ITER_134173_106_equilibrium.ids index 2650ff50..d429344e 100644 --- a/imas/assets/ITER_134173_106_equilibrium.ids +++ b/imas/assets/ITER_134173_106_equilibrium.ids @@ -26,8 +26,6 @@ equilibrium/vacuum_toroidal_field/b0 dim: 1 size: 3 -5.2999999999999998e+00 -5.2999999999999998e+00 -5.2999999999999998e+00 -equilibrium/grids_ggd - size: 1 equilibrium/time_slice size: 3 equilibrium/time_slice[0]/boundary/outline/r diff --git a/imas/training.py b/imas/training.py index 6effcc5b..16fc3c78 100644 --- a/imas/training.py +++ b/imas/training.py @@ -12,15 +12,22 @@ import imas -def get_training_db_entry() -> imas.DBEntry: - """Open and return an ``imas.DBEntry`` pointing to the training data.""" +def get_training_db_entry(convert=False) -> imas.DBEntry: + """Open and return an ``imas.DBEntry`` pointing to the training data. + + Args: + convert: if True, converts assets to default DD version + """ assets_path = files(imas) / "assets/" entry = imas.DBEntry(f"imas:ascii?path={assets_path}", "r") - output_entry = imas.DBEntry("imas:memory?path=/", "w") + version = imas.dd_zip.latest_dd_version() if convert else "3.39.0" + output_entry = imas.DBEntry("imas:memory?path=/", "w", dd_version=version) for ids_name in ["core_profiles", "equilibrium"]: ids = entry.get(ids_name, autoconvert=False) - with patch.dict("os.environ", {"IMAS_AL_DISABLE_VALIDATE": "1"}): + if convert: output_entry.put(imas.convert_ids(ids, output_entry.dd_version)) + else: + output_entry.put(ids) entry.close() return output_entry From 7acabafa266196afd29855bb6c38bd3dca1fed2c Mon Sep 17 00:00:00 2001 From: Olivier Hoenen Date: Fri, 27 Feb 2026 13:44:37 +0100 Subject: [PATCH 2/4] fixup code for linting --- imas/training.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/imas/training.py b/imas/training.py index 16fc3c78..874f3459 100644 --- a/imas/training.py +++ b/imas/training.py @@ -2,8 +2,6 @@ # You should have received the IMAS-Python LICENSE file with this project. """Functions that are useful for the IMAS-Python training courses.""" -from unittest.mock import patch - try: from importlib.resources import files except ImportError: # Python 3.8 support @@ -15,8 +13,8 @@ def get_training_db_entry(convert=False) -> imas.DBEntry: """Open and return an ``imas.DBEntry`` pointing to the training data. - Args: - convert: if True, converts assets to default DD version + Args: + convert: if True, converts assets to default DD version """ assets_path = files(imas) / "assets/" entry = imas.DBEntry(f"imas:ascii?path={assets_path}", "r") From 1e613ed04f7922a981a391c293a265e9c8215d1b Mon Sep 17 00:00:00 2001 From: Olivier Hoenen Date: Fri, 27 Feb 2026 14:19:42 +0100 Subject: [PATCH 3/4] Update imas/training.py Co-authored-by: Maarten Sebregts <110895564+maarten-ic@users.noreply.github.com> --- imas/training.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/imas/training.py b/imas/training.py index 874f3459..53c85c91 100644 --- a/imas/training.py +++ b/imas/training.py @@ -19,7 +19,7 @@ def get_training_db_entry(convert=False) -> imas.DBEntry: assets_path = files(imas) / "assets/" entry = imas.DBEntry(f"imas:ascii?path={assets_path}", "r") - version = imas.dd_zip.latest_dd_version() if convert else "3.39.0" + version = None if convert else "3.39.0" output_entry = imas.DBEntry("imas:memory?path=/", "w", dd_version=version) for ids_name in ["core_profiles", "equilibrium"]: ids = entry.get(ids_name, autoconvert=False) From 36dd9ae988535777ef3d6848cd7fcbf2aea97a05 Mon Sep 17 00:00:00 2001 From: Olivier Hoenen Date: Fri, 27 Feb 2026 14:31:52 +0100 Subject: [PATCH 4/4] fix tests after change in get_training_db_entry --- imas/test/test_convert_core_edge_plasma.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/imas/test/test_convert_core_edge_plasma.py b/imas/test/test_convert_core_edge_plasma.py index 08d8ca91..165e85fd 100644 --- a/imas/test/test_convert_core_edge_plasma.py +++ b/imas/test/test_convert_core_edge_plasma.py @@ -12,7 +12,7 @@ def assert_equal(core_edge, plasma): def test_convert_training_core_profiles(): - with imas.training.get_training_db_entry() as entry: + with imas.training.get_training_db_entry(convert=True) as entry: cp = entry.get("core_profiles") pp = imas.convert_to_plasma_profiles(cp)