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/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:** + +* 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..1a954c8d 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)