From c11216c28ef5783c7fcc740086ab65cebb025b8b Mon Sep 17 00:00:00 2001 From: stevenhua0320 Date: Mon, 6 Apr 2026 18:17:55 -0400 Subject: [PATCH 1/3] fix: fix Qmax update after load new parsed data --- news/fix-qmax-update.rst | 23 ++++++++++++++++++++ src/diffpy/srfit/fitbase/profilegenerator.py | 15 ++++++++----- 2 files changed, 32 insertions(+), 6 deletions(-) create mode 100644 news/fix-qmax-update.rst diff --git a/news/fix-qmax-update.rst b/news/fix-qmax-update.rst new file mode 100644 index 00000000..790d30b1 --- /dev/null +++ b/news/fix-qmax-update.rst @@ -0,0 +1,23 @@ +**Added:** + +* + +**Changed:** + +* + +**Deprecated:** + +* + +**Removed:** + +* + +**Fixed:** + +* + +**Security:** + +* diff --git a/src/diffpy/srfit/fitbase/profilegenerator.py b/src/diffpy/srfit/fitbase/profilegenerator.py index c6adabbc..ee4495d6 100644 --- a/src/diffpy/srfit/fitbase/profilegenerator.py +++ b/src/diffpy/srfit/fitbase/profilegenerator.py @@ -163,15 +163,18 @@ def set_profile(self, profile): will store the calculated signal. """ if self.profile is not None: - self.profile.removeObserver(self._flush) + self.profile.removeObserver(self._on_profile_changed) self.profile = profile - self.profile.addObserver(self._flush) - self._flush(other=(self,)) + self.profile.addObserver(self._on_profile_changed) + self._on_profile_changed(other=(self,)) + return - # Merge the profiles metadata with our own - self.meta.update(self.profile.meta) - self.processMetaData() + def _on_profile_changed(self, other=()): + if self.profile is not None: + self.meta.update(self.profile.meta) + self.processMetaData() + self._flush(other=other) return def processMetaData(self): From 3c65924653abccf5938e69d655bedc3f2baf2eee Mon Sep 17 00:00:00 2001 From: stevenhua0320 Date: Mon, 6 Apr 2026 18:24:44 -0400 Subject: [PATCH 2/3] chore: add news item --- news/fix-qmax-update.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/news/fix-qmax-update.rst b/news/fix-qmax-update.rst index 790d30b1..958a4dbe 100644 --- a/news/fix-qmax-update.rst +++ b/news/fix-qmax-update.rst @@ -16,7 +16,7 @@ **Fixed:** -* +* Fixed load new parsed data with updated `Qmax` attribute **Security:** From e2b5c46c188c0cdb718bca6f3d1f8feb02c113fc Mon Sep 17 00:00:00 2001 From: stevenhua0320 Date: Tue, 7 Apr 2026 11:08:49 -0400 Subject: [PATCH 3/3] chore: rename the private method --- src/diffpy/srfit/fitbase/profilegenerator.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/diffpy/srfit/fitbase/profilegenerator.py b/src/diffpy/srfit/fitbase/profilegenerator.py index ee4495d6..3007e8de 100644 --- a/src/diffpy/srfit/fitbase/profilegenerator.py +++ b/src/diffpy/srfit/fitbase/profilegenerator.py @@ -163,14 +163,14 @@ def set_profile(self, profile): will store the calculated signal. """ if self.profile is not None: - self.profile.removeObserver(self._on_profile_changed) + self.profile.removeObserver(self._on_profile_update) self.profile = profile - self.profile.addObserver(self._on_profile_changed) - self._on_profile_changed(other=(self,)) + self.profile.addObserver(self._on_profile_update) + self._on_profile_update(other=(self,)) return - def _on_profile_changed(self, other=()): + def _on_profile_update(self, other=()): if self.profile is not None: self.meta.update(self.profile.meta) self.processMetaData()