From bfa83337d420c7382f09eab7b07e6df68febef20 Mon Sep 17 00:00:00 2001 From: Colm Talbot <colm.talbot@ligo.org> Date: Thu, 27 Sep 2018 13:27:38 +1000 Subject: [PATCH] make copying explicit in parameters setter --- tupak/gw/waveform_generator.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/tupak/gw/waveform_generator.py b/tupak/gw/waveform_generator.py index ab5cedfef..0134ffbb5 100644 --- a/tupak/gw/waveform_generator.py +++ b/tupak/gw/waveform_generator.py @@ -145,7 +145,7 @@ class WaveformGenerator(object): def _calculate_strain(self, model, model_data_points, transformation_function, transformed_model, transformed_model_data_points, parameters): if parameters is not None: - self.parameters = parameters.copy() + self.parameters = parameters if model is not None: model_strain = self._strain_from_model(model_data_points, model) elif transformed_model is not None: @@ -232,22 +232,22 @@ class WaveformGenerator(object): Set parameters, this applies the conversion function and then removes any parameters which aren't required by the source function. - WARNING: This will radically modify the input dictionary. - (set.symmetric_difference is the opposite of set.intersection) Parameters ---------- parameters: dict - Input parameter dictionary, this is overwritten by the conversion + Input parameter dictionary, this is copied, passed to the conversion function and has self.waveform_arguments added to it. """ if not isinstance(parameters, dict): raise TypeError('"parameters" must be a dictionary.') - parameters, _ = self.parameter_conversion(parameters) - for key in self.source_parameter_keys.symmetric_difference(parameters): - parameters.pop(key) - self.__parameters = parameters + new_parameters = parameters.copy() + new_parameters, _ = self.parameter_conversion(new_parameters) + for key in self.source_parameter_keys.symmetric_difference( + new_parameters): + new_parameters.pop(key) + self.__parameters = new_parameters self.__parameters.update(self.waveform_arguments) def __parameters_from_source_model(self): -- GitLab