From 3d8da329471ce4000ebf10ca01acab8e4732a8d5 Mon Sep 17 00:00:00 2001 From: Caden Myers Date: Mon, 9 Feb 2026 10:56:52 -0500 Subject: [PATCH 1/3] addParameterSet deprecation --- docs/examples/npintensity.py | 6 ++--- docs/examples/npintensityII.py | 5 ++-- src/diffpy/srfit/fitbase/fitrecipe.py | 16 ++++++++++++- src/diffpy/srfit/fitbase/parameterset.py | 22 ++++++++++++++++- src/diffpy/srfit/pdf/basepdfgenerator.py | 2 +- src/diffpy/srfit/structure/cctbxparset.py | 4 ++-- src/diffpy/srfit/structure/diffpyparset.py | 4 ++-- src/diffpy/srfit/structure/objcrystparset.py | 4 ++-- tests/test_parameterset.py | 25 ++++++++++++++++++-- 9 files changed, 72 insertions(+), 16 deletions(-) diff --git a/docs/examples/npintensity.py b/docs/examples/npintensity.py index e5a50c87..a1c6ffc2 100644 --- a/docs/examples/npintensity.py +++ b/docs/examples/npintensity.py @@ -32,9 +32,9 @@ Extensions -- The IntensityGenerator class uses the 'addParameterSet' method to associate +- The IntensityGenerator class uses the 'add_parameter_set' method to associate the structure adapter (DiffpyStructureParSet) with the generator. Most SrFit - classes have an 'addParameterSet' class and can store ParameterSet objects. + classes have an 'add_parameter_set' class and can store ParameterSet objects. Grab the phase object from the IntensityGenerator and try to add it to other objects used in the fit recipe. Create variables from the moved Parameters rather than from the 'phase' that lives in the IntensityGenerator and see if @@ -153,7 +153,7 @@ def setStructure(self, strufile): parset = DiffpyStructureParSet("phase", stru) # Put this ParameterSet in the ProfileGenerator. - self.addParameterSet(parset) + self.add_parameter_set(parset) return diff --git a/docs/examples/npintensityII.py b/docs/examples/npintensityII.py index a9ce06d9..8364a113 100644 --- a/docs/examples/npintensityII.py +++ b/docs/examples/npintensityII.py @@ -83,7 +83,7 @@ def makeRecipe(strufile, datname1, datname2): generator1 = IntensityGenerator("I") generator1.setStructure(strufile) generator2 = IntensityGenerator("I") - generator2.addParameterSet(generator1.phase) + generator2.add_parameter_set(generator1.phase) # The FitContributions # Create the FitContributions. @@ -99,7 +99,8 @@ def makeRecipe(strufile, datname1, datname2): # the same form and use the same Parameter names. By default, Parameters # in different contributions are different Parameters even if they have the # same names. FitContributions are isolated namespaces than only share - # information if you tell them to by using addParameter or addParameterSet. + # information if you tell them to by using addParameter or + # add_parameter_set. bkgdstr = "b0 + b1*q + b2*q**2 + b3*q**3 + b4*q**4 + b5*q**5 + b6*q**6 +\ b7*q**7 +b8*q**8 + b9*q**9" diff --git a/src/diffpy/srfit/fitbase/fitrecipe.py b/src/diffpy/srfit/fitbase/fitrecipe.py index 7bb29b8e..7065968e 100644 --- a/src/diffpy/srfit/fitbase/fitrecipe.py +++ b/src/diffpy/srfit/fitbase/fitrecipe.py @@ -75,6 +75,10 @@ base, "setWeight", "set_weight", removal_version ) +addparset_dep_msg = build_deprecation_message( + base, "addParameterSet", "add_parameter_set", removal_version +) + class FitRecipe(_fitrecipe_interface, RecipeOrganizer): """FitRecipe class. @@ -345,7 +349,7 @@ def setWeight(self, con, weight): self.set_weight(con, weight) return - def addParameterSet(self, parset): + def add_parameter_set(self, parset): """Add a ParameterSet to the hierarchy. Attributes @@ -361,6 +365,16 @@ def addParameterSet(self, parset): self._add_object(parset, self._parsets, True) return + @deprecated(addparset_dep_msg) + def addParameterSet(self, parset): + """This function has been deprecated and will be removed in version + 4.0.0. + + Please use diffpy.srfit.fitbase.FitRecipe.add_parameter_set instead. + """ + self.add_parameter_set(parset) + return + def removeParameterSet(self, parset): """Remove a ParameterSet from the hierarchy. diff --git a/src/diffpy/srfit/fitbase/parameterset.py b/src/diffpy/srfit/fitbase/parameterset.py index ce89326f..918951da 100644 --- a/src/diffpy/srfit/fitbase/parameterset.py +++ b/src/diffpy/srfit/fitbase/parameterset.py @@ -25,6 +25,14 @@ from collections import OrderedDict from diffpy.srfit.fitbase.recipeorganizer import RecipeOrganizer +from diffpy.utils._deprecator import build_deprecation_message, deprecated + +base = "diffpy.srfit.fitbase.parameterset.ParameterSet" +removal_version = "4.0.0" + +addparset_dep_msg = build_deprecation_message( + base, "addParameterSet", "add_parameter_set", removal_version +) class ParameterSet(RecipeOrganizer): @@ -87,7 +95,7 @@ def __init__(self, name): newParameter = RecipeOrganizer._new_parameter removeParameter = RecipeOrganizer._remove_parameter - def addParameterSet(self, parset): + def add_parameter_set(self, parset): """Add a ParameterSet to the hierarchy. Attributes @@ -103,6 +111,18 @@ def addParameterSet(self, parset): self._add_object(parset, self._parsets, True) return + @deprecated(addparset_dep_msg) + def addParameterSet(self, parset): + """This function has been deprecated and will be removed in version + 4.0.0. + + Please use + diffpy.srfit.fitbase.parameterset.ParameterSet.add_parameter_set + instead. + """ + self.add_parameter_set(parset) + return + def removeParameterSet(self, parset): """Remove a ParameterSet from the hierarchy. diff --git a/src/diffpy/srfit/pdf/basepdfgenerator.py b/src/diffpy/srfit/pdf/basepdfgenerator.py index e91023e8..9b915be7 100644 --- a/src/diffpy/srfit/pdf/basepdfgenerator.py +++ b/src/diffpy/srfit/pdf/basepdfgenerator.py @@ -277,7 +277,7 @@ def setPhase(self, parset, periodic=True): self.stru = self._phase.stru # Put this ParameterSet in the ProfileGenerator. - self.addParameterSet(parset) + self.add_parameter_set(parset) # Set periodicity self._phase.useSymmetry(periodic) diff --git a/src/diffpy/srfit/structure/cctbxparset.py b/src/diffpy/srfit/structure/cctbxparset.py index 2bb05c7d..e546e61d 100644 --- a/src/diffpy/srfit/structure/cctbxparset.py +++ b/src/diffpy/srfit/structure/cctbxparset.py @@ -237,7 +237,7 @@ def __init__(self, name, stru): """ ParameterSet.__init__(self, name) self.stru = stru - self.addParameterSet(CCTBXUnitCellParSet(self)) + self.add_parameter_set(CCTBXUnitCellParSet(self)) self.scatterers = [] self._update = False @@ -249,7 +249,7 @@ def __init__(self, name, stru): sname = "%s%i" % (el, i) cdict[el] = i + 1 scatterer = CCTBXScattererParSet(sname, self, i) - self.addParameterSet(scatterer) + self.add_parameter_set(scatterer) self.scatterers.append(scatterer) # Constrain the lattice diff --git a/src/diffpy/srfit/structure/diffpyparset.py b/src/diffpy/srfit/structure/diffpyparset.py index 6ed3beef..0a22685f 100644 --- a/src/diffpy/srfit/structure/diffpyparset.py +++ b/src/diffpy/srfit/structure/diffpyparset.py @@ -284,7 +284,7 @@ def __init__(self, name, stru): """ SrRealParSet.__init__(self, name) self.stru = stru - self.addParameterSet(DiffpyLatticeParSet(stru.lattice)) + self.add_parameter_set(DiffpyLatticeParSet(stru.lattice)) self.atoms = [] cdict = {} @@ -297,7 +297,7 @@ def __init__(self, name, stru): aname = "%s%i" % (el, i) cdict[el] = i + 1 atom = DiffpyAtomParSet(aname, a) - self.addParameterSet(atom) + self.add_parameter_set(atom) self.atoms.append(atom) return diff --git a/src/diffpy/srfit/structure/objcrystparset.py b/src/diffpy/srfit/structure/objcrystparset.py index 19213b43..8cb427b9 100644 --- a/src/diffpy/srfit/structure/objcrystparset.py +++ b/src/diffpy/srfit/structure/objcrystparset.py @@ -252,7 +252,7 @@ def __init__(self, name, molecule, parent=None): atom = ObjCrystMolAtomParSet(name, a, self) atom.molecule = self - self.addParameterSet(atom) + self.add_parameter_set(atom) self.atoms.append(atom) anames.append(name) @@ -1760,7 +1760,7 @@ def __init__(self, name, cryst): else: raise TypeError("Unrecognized scatterer '%s'" % cname) - self.addParameterSet(parset) + self.add_parameter_set(parset) self.scatterers.append(parset) snames.append(name) diff --git a/tests/test_parameterset.py b/tests/test_parameterset.py index 51ffa14c..97c98b51 100644 --- a/tests/test_parameterset.py +++ b/tests/test_parameterset.py @@ -27,14 +27,35 @@ def setUp(self): return def testAddParameterSet(self): - """Test the addParameterSet method.""" + """Test the deprecated addParameterSet method. + + Remove this test after the addParameterSet is removed. in + version 4.0.0. + """ parset2 = ParameterSet("parset2") p1 = Parameter("parset2", 1) self.parset.addParameterSet(parset2) self.assertTrue(self.parset.parset2 is parset2) - self.assertRaises(ValueError, self.parset.addParameterSet, p1) + self.assertRaises(ValueError, self.parset.add_parameter_set, p1) + + p1.name = "p1" + parset2.addParameter(p1) + + self.assertTrue(self.parset.parset2.p1 is p1) + + return + + def test_add_parameter_set(self): + """Test the add_parameter_set method.""" + parset2 = ParameterSet("parset2") + p1 = Parameter("parset2", 1) + + self.parset.add_parameter_set(parset2) + self.assertTrue(self.parset.parset2 is parset2) + + self.assertRaises(ValueError, self.parset.add_parameter_set, p1) p1.name = "p1" parset2.addParameter(p1) From 5564a1aec3fb11c4c51cd904c00fc09ff80619d2 Mon Sep 17 00:00:00 2001 From: Caden Myers Date: Mon, 9 Feb 2026 11:07:26 -0500 Subject: [PATCH 2/3] news --- news/addparameterset-dep.rst | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 news/addparameterset-dep.rst diff --git a/news/addparameterset-dep.rst b/news/addparameterset-dep.rst new file mode 100644 index 00000000..f69da3c2 --- /dev/null +++ b/news/addparameterset-dep.rst @@ -0,0 +1,25 @@ +**Added:** + +* Added ``add_parameter_set`` method to replace deprecated ``FitRecipe.addParameterSet``. +* Added ``add_parameter_set`` method to replace deprecated ``ParameterSet.addParameterSet``. + +**Changed:** + +* + +**Deprecated:** + +* Deprecated ``addParameterSet`` method in ``FitRecipe``. +* Deprecate ``addParameterSet`` method in ``ParameterSet``. + +**Removed:** + +* + +**Fixed:** + +* + +**Security:** + +* From 46cf86254cafdd8616acd570a59b598d723f19a3 Mon Sep 17 00:00:00 2001 From: Caden Myers Date: Mon, 9 Feb 2026 11:09:03 -0500 Subject: [PATCH 3/3] docstring typo --- tests/test_parameterset.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test_parameterset.py b/tests/test_parameterset.py index 97c98b51..1a954c8d 100644 --- a/tests/test_parameterset.py +++ b/tests/test_parameterset.py @@ -29,8 +29,8 @@ def setUp(self): def testAddParameterSet(self): """Test the deprecated addParameterSet method. - Remove this test after the addParameterSet is removed. in - version 4.0.0. + Remove this test after the addParameterSet is removed in version + 4.0.0. """ parset2 = ParameterSet("parset2") p1 = Parameter("parset2", 1)