From d2c64aa519d161220d966b56121f0dc580dc7b80 Mon Sep 17 00:00:00 2001 From: dominiquef Date: Thu, 13 Nov 2025 15:45:48 -0800 Subject: [PATCH 1/3] Augment test (cherry picked from commit c53ed76d23fbc3fbadab98a13240d2d5185692dd) --- tests/run_tests/driver_mt_test.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tests/run_tests/driver_mt_test.py b/tests/run_tests/driver_mt_test.py index 059fa193c..9bcc4a004 100644 --- a/tests/run_tests/driver_mt_test.py +++ b/tests/run_tests/driver_mt_test.py @@ -106,6 +106,10 @@ def test_magnetotellurics_fwr_run( ) with get_workspace(tmp_path / "inversion_test.ui.geoh5") as geoh5: components = SyntheticsComponents(geoh5, options=opts) + + # Test for label index supporting ints - bypass setter + components.survey.edit_em_metadata({"Channels": [10, 100, 1000]}) + params = MTForwardOptions.build( geoh5=geoh5, mesh=components.mesh, @@ -127,6 +131,9 @@ def test_magnetotellurics_fwr_run( fwr_driver = MTForwardDriver(params) fwr_driver.run() + with Workspace(tmp_path / "inversion_test.ui.geoh5") as geoh5: + assert geoh5.get_entity("Iteration_0_zyy_real_[0]")[0] is not None + def test_magnetotellurics_run(tmp_path: Path, max_iterations=1, pytest=True): # pass From 952e8d1d01f1e7ed7704a3ae650a5adf81f55d76 Mon Sep 17 00:00:00 2001 From: dominiquef Date: Thu, 13 Nov 2025 15:49:32 -0800 Subject: [PATCH 2/3] Coerce type of channels to float (cherry picked from commit 5a6a2517b452a88e811f43c2daa0d111ac2c592b) --- simpeg_drivers/components/factories/directives_factory.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/simpeg_drivers/components/factories/directives_factory.py b/simpeg_drivers/components/factories/directives_factory.py index ba64bba17..584cdd9cf 100644 --- a/simpeg_drivers/components/factories/directives_factory.py +++ b/simpeg_drivers/components/factories/directives_factory.py @@ -489,7 +489,7 @@ def assemble_keyword_arguments( name=None, ): receivers = inversion_object.entity - channels = getattr(receivers, "channels", [None]) + channels = [float(val) for val in getattr(receivers, "channels", [None]) if val] components = list(inversion_object.observed) ordering = inversion_object.survey.ordering n_locations = len(np.unique(ordering[:, 2])) From d0cb7268f0be3286fae3a1f607caa51e9563489a Mon Sep 17 00:00:00 2001 From: dominiquef Date: Fri, 14 Nov 2025 09:15:23 -0800 Subject: [PATCH 3/3] Fix logic --- simpeg_drivers/components/factories/directives_factory.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/simpeg_drivers/components/factories/directives_factory.py b/simpeg_drivers/components/factories/directives_factory.py index 584cdd9cf..ad5a72969 100644 --- a/simpeg_drivers/components/factories/directives_factory.py +++ b/simpeg_drivers/components/factories/directives_factory.py @@ -489,7 +489,10 @@ def assemble_keyword_arguments( name=None, ): receivers = inversion_object.entity - channels = [float(val) for val in getattr(receivers, "channels", [None]) if val] + channels = [ + float(val) if val else None + for val in getattr(receivers, "channels", [None]) + ] components = list(inversion_object.observed) ordering = inversion_object.survey.ordering n_locations = len(np.unique(ordering[:, 2]))