diff --git a/simpeg_drivers/params.py b/simpeg_drivers/params.py index 41747ba8..300396fd 100644 --- a/simpeg_drivers/params.py +++ b/simpeg_drivers/params.py @@ -28,6 +28,7 @@ from geoh5py.groups import PropertyGroup, SimPEGGroup, UIJsonGroup from geoh5py.objects import DrapeModel, Octree, Points from geoh5py.shared.utils import fetch_active_workspace +from geoh5py.ui_json import InputFile from pydantic import BaseModel, ConfigDict, field_validator, model_validator import simpeg_drivers @@ -239,6 +240,11 @@ def padding_cells(self) -> int: return 4 if self.inversion_type in ["fem", "tdem"] else 6 + def _create_input_file_from_attributes(self) -> InputFile: + ifile = super()._create_input_file_from_attributes() + ifile.set_data_value("version", simpeg_drivers.__version__) + return ifile + class BaseForwardOptions(CoreOptions): """ diff --git a/tests/uijson_test.py b/tests/uijson_test.py index cb6133b2..8dce6281 100644 --- a/tests/uijson_test.py +++ b/tests/uijson_test.py @@ -18,6 +18,7 @@ from geoh5py.ui_json.annotations import Deprecated from pydantic import AliasChoices, Field +import simpeg_drivers from simpeg_drivers.params import ActiveCellsOptions from simpeg_drivers.potential_fields.gravity.params import GravityInversionOptions from simpeg_drivers.potential_fields.gravity.uijson import GravityInversionUIJson @@ -150,6 +151,7 @@ def test_gravity_uijson(tmp_path): gz_uncerts = survey.add_data({"gz_unc": {"values": np.ones(survey.n_vertices)}}) opts = GravityInversionOptions( + version="old news", geoh5=geoh5, data_object=survey, gz_channel=gz_channel, @@ -168,6 +170,7 @@ def test_gravity_uijson(tmp_path): uijson.write(uijson_path) with open(params_uijson_path, encoding="utf-8") as f: params_data = json.load(f) + assert params_data["version"] == simpeg_drivers.__version__ with open(uijson_path, encoding="utf-8") as f: uijson_data = json.load(f)