From 1cdb7ef09f9b33279197a011e7155a7e9e3e7918 Mon Sep 17 00:00:00 2001 From: Daniel Otto de Mentock Date: Wed, 9 Nov 2022 12:48:37 +0100 Subject: [PATCH] function to list available setup files can be useful --- python/damask/_result.py | 11 +++++++++++ python/tests/test_Result.py | 4 ++++ 2 files changed, 15 insertions(+) diff --git a/python/damask/_result.py b/python/damask/_result.py index 3186c882b..93e38140f 100644 --- a/python/damask/_result.py +++ b/python/damask/_result.py @@ -1996,3 +1996,14 @@ class Result: output=output, cfg_dir=cfg_dir, overwrite=overwrite)) + + def list_simulation_setup_files(self): + """List available simulation setup files used to generate the Result object.""" + simulation_datasets = [] + + def retrieve_dataset(name, node): + simulation_datasets.append(name) + + with h5py.File(self.fname,'r') as f_in: + f_in['setup'].visititems(retrieve_dataset) + return simulation_datasets diff --git a/python/tests/test_Result.py b/python/tests/test_Result.py index 5a5a00822..bb920ce0a 100644 --- a/python/tests/test_Result.py +++ b/python/tests/test_Result.py @@ -564,6 +564,10 @@ class TestResult: r.export_simulation_setup_files('material.yaml',target_dir=t) assert 'material.yaml' in os.listdir(absdir); (absdir/'material.yaml').unlink() + def test_list_simulation_setup_files(self,ref_path): + r = Result(ref_path/'4grains2x4x3_compressionY.hdf5') + assert r.list_simulation_setup_files()==['4grains2x4x3.vti', 'compressionY.yaml', 'material.yaml'] + @pytest.mark.parametrize('fname',['4grains2x4x3_compressionY.hdf5', '6grains6x7x8_single_phase_tensionY.hdf5']) def test_export_DADF5(self,ref_path,tmp_path,fname):