From 866f8cd2ff0f57e9030a3067b65dbbc087204714 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Sierro?= Date: Thu, 15 Feb 2024 11:53:13 +0100 Subject: [PATCH] bugfix in data file bundling --- src/scgenerator/spectra.py | 5 +++-- tests/test_io_handlers.py | 12 ++++++++---- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/scgenerator/spectra.py b/src/scgenerator/spectra.py index 9130b1d..faefc12 100644 --- a/src/scgenerator/spectra.py +++ b/src/scgenerator/spectra.py @@ -566,9 +566,10 @@ def _create_new_propagation( io: PropagationIOHandler, params: Parameters, bundle_data: bool ) -> Propagation: if params.frozen: - params = params.copy() + params = params.copy(deep=True) else: - params = params.compile(exhaustive=True, strict=False) + params = params.copy(deep=True) + params.compile_in_place(exhaustive=True, strict=False) if bundle_data: _bundle_external_files(params, io) io.save_data(PARAMS_FN, params.to_json().encode()) diff --git a/tests/test_io_handlers.py b/tests/test_io_handlers.py index 177181e..b84e65b 100644 --- a/tests/test_io_handlers.py +++ b/tests/test_io_handlers.py @@ -142,11 +142,15 @@ def test_zip_bundle(tmp_path: Path): params.freeze() prop2 = propagation(tmp_path / "file3.zip", params, bundle_data=True) + assert prop2.parameters is not params + assert prop2.parameters.dispersion_file is not params.dispersion_file - assert prop2.parameters.dispersion_file.path == new_disp_path.name - assert prop2.parameters.dispersion_file.prefix == "zip" - assert prop2.parameters.effective_area_file.path == new_aeff_path.name - assert prop2.parameters.effective_area_file.prefix == "zip" + prop3 = propagation(tmp_path / "file3.zip") + + assert prop3.parameters.dispersion_file.path == new_disp_path.name + assert prop3.parameters.dispersion_file.prefix == "zip" + assert prop3.parameters.effective_area_file.path == new_aeff_path.name + assert prop3.parameters.effective_area_file.prefix == "zip" with ZipFile(tmp_path / "file3.zip", "r") as zfile: with zfile.open(new_aeff_path.name) as file: