diff --git a/tupak/gw/waveform_generator.py b/tupak/gw/waveform_generator.py index ab5cedfeff853b8f5bb6d5bb3bcf74288690d56e..0134ffbb5f0c7ae6caeffbb830a4308ff5086c50 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):