diff --git a/hexrdgui/hexrd_config.py b/hexrdgui/hexrd_config.py index 586a1fd0f..8b14acd1f 100644 --- a/hexrdgui/hexrd_config.py +++ b/hexrdgui/hexrd_config.py @@ -2904,25 +2904,22 @@ def physics_package_dictified(self): @physics_package_dictified.setter def physics_package_dictified(self, v): - if v is None: - self._physics_package = None - else: - det_type = guess_instrument_type(self.detector_names) - self.update_physics_package(det_type, **v) + instr_type = guess_instrument_type(self.detector_names) + self.update_physics_package(instr_type, **v) @property def physics_package(self): return self._physics_package - def update_physics_package(self, det_type=None, **kwargs): - if det_type is None: + def update_physics_package(self, instr_type=None, **kwargs): + if instr_type is None: self._physics_package = None elif self.physics_package is None: - self._physics_package = HEDPhysicsPackage( - **PHYSICS_PACKAGE_DEFAULTS.HED) - if det_type is not None and kwargs is not None: - for attr, val in kwargs.items(): - setattr(self._physics_package, attr, val) + all_kwargs = PHYSICS_PACKAGE_DEFAULTS.HED + all_kwargs.update(**kwargs) + self._physics_package = HEDPhysicsPackage(**all_kwargs) + else: + self._physics_package.deserialize(**kwargs) self.physics_package_modified.emit() def absorption_length(self): @@ -2969,8 +2966,7 @@ def detector_filter(self, det_name): def update_detector_filter(self, det_name, **kwargs): self._set_detector_coatings('filter') filter = self._detector_coatings[det_name]['filter'] - for attr, val in kwargs.items(): - setattr(filter, attr, val) + filter.deserialize(**kwargs) def detector_coating(self, det_name): self._detector_coatings.setdefault(det_name, {}) @@ -2979,8 +2975,7 @@ def detector_coating(self, det_name): def update_detector_coating(self, det_name, **kwargs): self._set_detector_coatings('coating') coating = self._detector_coatings[det_name]['coating'] - for attr, val in kwargs.items(): - setattr(coating, attr, val) + coating.deserialize(**kwargs) def detector_phosphor(self, det_name): self._detector_coatings.setdefault(det_name, {}) @@ -2989,5 +2984,4 @@ def detector_phosphor(self, det_name): def update_detector_phosphor(self, det_name, **kwargs): self._set_detector_coatings('phosphor') phosphor = self._detector_coatings[det_name]['phosphor'] - for attr, val in kwargs.items(): - setattr(phosphor, attr, val) + phosphor.deserialize(**kwargs) diff --git a/hexrdgui/physics_package_manager_dialog.py b/hexrdgui/physics_package_manager_dialog.py index e295a044a..89905423c 100644 --- a/hexrdgui/physics_package_manager_dialog.py +++ b/hexrdgui/physics_package_manager_dialog.py @@ -116,7 +116,7 @@ def update_instrument_type(self): HexrdConfig().update_detector_filter( det, **FILTER_DEFAULTS.PXRDIP) else: - HexrdConfig().update_physics_package(det_type=None) + HexrdConfig().update_physics_package(instr_type=None) self.instrument_type = new_instr_type def setup_form(self):