Skip to content

Commit ea94c29

Browse files
authored
Merge pull request #153 from cadenmyers13/fitrecipe2-dep
deprecate: `addParameterSet` deprecation in `FitRecipe` and `ParameterSet`
2 parents 1272edc + 46cf862 commit ea94c29

10 files changed

Lines changed: 97 additions & 16 deletions

File tree

docs/examples/npintensity.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@
3232
3333
Extensions
3434
35-
- The IntensityGenerator class uses the 'addParameterSet' method to associate
35+
- The IntensityGenerator class uses the 'add_parameter_set' method to associate
3636
the structure adapter (DiffpyStructureParSet) with the generator. Most SrFit
37-
classes have an 'addParameterSet' class and can store ParameterSet objects.
37+
classes have an 'add_parameter_set' class and can store ParameterSet objects.
3838
Grab the phase object from the IntensityGenerator and try to add it to other
3939
objects used in the fit recipe. Create variables from the moved Parameters
4040
rather than from the 'phase' that lives in the IntensityGenerator and see if
@@ -153,7 +153,7 @@ def setStructure(self, strufile):
153153
parset = DiffpyStructureParSet("phase", stru)
154154

155155
# Put this ParameterSet in the ProfileGenerator.
156-
self.addParameterSet(parset)
156+
self.add_parameter_set(parset)
157157

158158
return
159159

docs/examples/npintensityII.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ def makeRecipe(strufile, datname1, datname2):
8383
generator1 = IntensityGenerator("I")
8484
generator1.setStructure(strufile)
8585
generator2 = IntensityGenerator("I")
86-
generator2.addParameterSet(generator1.phase)
86+
generator2.add_parameter_set(generator1.phase)
8787

8888
# The FitContributions
8989
# Create the FitContributions.
@@ -99,7 +99,8 @@ def makeRecipe(strufile, datname1, datname2):
9999
# the same form and use the same Parameter names. By default, Parameters
100100
# in different contributions are different Parameters even if they have the
101101
# same names. FitContributions are isolated namespaces than only share
102-
# information if you tell them to by using addParameter or addParameterSet.
102+
# information if you tell them to by using addParameter or
103+
# add_parameter_set.
103104
bkgdstr = "b0 + b1*q + b2*q**2 + b3*q**3 + b4*q**4 + b5*q**5 + b6*q**6 +\
104105
b7*q**7 +b8*q**8 + b9*q**9"
105106

news/addparameterset-dep.rst

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
**Added:**
2+
3+
* Added ``add_parameter_set`` method to replace deprecated ``FitRecipe.addParameterSet``.
4+
* Added ``add_parameter_set`` method to replace deprecated ``ParameterSet.addParameterSet``.
5+
6+
**Changed:**
7+
8+
* <news item>
9+
10+
**Deprecated:**
11+
12+
* Deprecated ``addParameterSet`` method in ``FitRecipe``.
13+
* Deprecate ``addParameterSet`` method in ``ParameterSet``.
14+
15+
**Removed:**
16+
17+
* <news item>
18+
19+
**Fixed:**
20+
21+
* <news item>
22+
23+
**Security:**
24+
25+
* <news item>

src/diffpy/srfit/fitbase/fitrecipe.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,10 @@
7575
base, "setWeight", "set_weight", removal_version
7676
)
7777

78+
addparset_dep_msg = build_deprecation_message(
79+
base, "addParameterSet", "add_parameter_set", removal_version
80+
)
81+
7882

7983
class FitRecipe(_fitrecipe_interface, RecipeOrganizer):
8084
"""FitRecipe class.
@@ -345,7 +349,7 @@ def setWeight(self, con, weight):
345349
self.set_weight(con, weight)
346350
return
347351

348-
def addParameterSet(self, parset):
352+
def add_parameter_set(self, parset):
349353
"""Add a ParameterSet to the hierarchy.
350354
351355
Attributes
@@ -361,6 +365,16 @@ def addParameterSet(self, parset):
361365
self._add_object(parset, self._parsets, True)
362366
return
363367

368+
@deprecated(addparset_dep_msg)
369+
def addParameterSet(self, parset):
370+
"""This function has been deprecated and will be removed in version
371+
4.0.0.
372+
373+
Please use diffpy.srfit.fitbase.FitRecipe.add_parameter_set instead.
374+
"""
375+
self.add_parameter_set(parset)
376+
return
377+
364378
def removeParameterSet(self, parset):
365379
"""Remove a ParameterSet from the hierarchy.
366380

src/diffpy/srfit/fitbase/parameterset.py

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,14 @@
2525
from collections import OrderedDict
2626

2727
from diffpy.srfit.fitbase.recipeorganizer import RecipeOrganizer
28+
from diffpy.utils._deprecator import build_deprecation_message, deprecated
29+
30+
base = "diffpy.srfit.fitbase.parameterset.ParameterSet"
31+
removal_version = "4.0.0"
32+
33+
addparset_dep_msg = build_deprecation_message(
34+
base, "addParameterSet", "add_parameter_set", removal_version
35+
)
2836

2937

3038
class ParameterSet(RecipeOrganizer):
@@ -87,7 +95,7 @@ def __init__(self, name):
8795
newParameter = RecipeOrganizer._new_parameter
8896
removeParameter = RecipeOrganizer._remove_parameter
8997

90-
def addParameterSet(self, parset):
98+
def add_parameter_set(self, parset):
9199
"""Add a ParameterSet to the hierarchy.
92100
93101
Attributes
@@ -103,6 +111,18 @@ def addParameterSet(self, parset):
103111
self._add_object(parset, self._parsets, True)
104112
return
105113

114+
@deprecated(addparset_dep_msg)
115+
def addParameterSet(self, parset):
116+
"""This function has been deprecated and will be removed in version
117+
4.0.0.
118+
119+
Please use
120+
diffpy.srfit.fitbase.parameterset.ParameterSet.add_parameter_set
121+
instead.
122+
"""
123+
self.add_parameter_set(parset)
124+
return
125+
106126
def removeParameterSet(self, parset):
107127
"""Remove a ParameterSet from the hierarchy.
108128

src/diffpy/srfit/pdf/basepdfgenerator.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@ def setPhase(self, parset, periodic=True):
277277
self.stru = self._phase.stru
278278

279279
# Put this ParameterSet in the ProfileGenerator.
280-
self.addParameterSet(parset)
280+
self.add_parameter_set(parset)
281281

282282
# Set periodicity
283283
self._phase.useSymmetry(periodic)

src/diffpy/srfit/structure/cctbxparset.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ def __init__(self, name, stru):
237237
"""
238238
ParameterSet.__init__(self, name)
239239
self.stru = stru
240-
self.addParameterSet(CCTBXUnitCellParSet(self))
240+
self.add_parameter_set(CCTBXUnitCellParSet(self))
241241
self.scatterers = []
242242

243243
self._update = False
@@ -249,7 +249,7 @@ def __init__(self, name, stru):
249249
sname = "%s%i" % (el, i)
250250
cdict[el] = i + 1
251251
scatterer = CCTBXScattererParSet(sname, self, i)
252-
self.addParameterSet(scatterer)
252+
self.add_parameter_set(scatterer)
253253
self.scatterers.append(scatterer)
254254

255255
# Constrain the lattice

src/diffpy/srfit/structure/diffpyparset.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,7 @@ def __init__(self, name, stru):
284284
"""
285285
SrRealParSet.__init__(self, name)
286286
self.stru = stru
287-
self.addParameterSet(DiffpyLatticeParSet(stru.lattice))
287+
self.add_parameter_set(DiffpyLatticeParSet(stru.lattice))
288288
self.atoms = []
289289

290290
cdict = {}
@@ -297,7 +297,7 @@ def __init__(self, name, stru):
297297
aname = "%s%i" % (el, i)
298298
cdict[el] = i + 1
299299
atom = DiffpyAtomParSet(aname, a)
300-
self.addParameterSet(atom)
300+
self.add_parameter_set(atom)
301301
self.atoms.append(atom)
302302

303303
return

src/diffpy/srfit/structure/objcrystparset.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ def __init__(self, name, molecule, parent=None):
252252

253253
atom = ObjCrystMolAtomParSet(name, a, self)
254254
atom.molecule = self
255-
self.addParameterSet(atom)
255+
self.add_parameter_set(atom)
256256
self.atoms.append(atom)
257257
anames.append(name)
258258

@@ -1760,7 +1760,7 @@ def __init__(self, name, cryst):
17601760
else:
17611761
raise TypeError("Unrecognized scatterer '%s'" % cname)
17621762

1763-
self.addParameterSet(parset)
1763+
self.add_parameter_set(parset)
17641764
self.scatterers.append(parset)
17651765
snames.append(name)
17661766

tests/test_parameterset.py

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,35 @@ def setUp(self):
2727
return
2828

2929
def testAddParameterSet(self):
30-
"""Test the addParameterSet method."""
30+
"""Test the deprecated addParameterSet method.
31+
32+
Remove this test after the addParameterSet is removed in version
33+
4.0.0.
34+
"""
3135
parset2 = ParameterSet("parset2")
3236
p1 = Parameter("parset2", 1)
3337

3438
self.parset.addParameterSet(parset2)
3539
self.assertTrue(self.parset.parset2 is parset2)
3640

37-
self.assertRaises(ValueError, self.parset.addParameterSet, p1)
41+
self.assertRaises(ValueError, self.parset.add_parameter_set, p1)
42+
43+
p1.name = "p1"
44+
parset2.addParameter(p1)
45+
46+
self.assertTrue(self.parset.parset2.p1 is p1)
47+
48+
return
49+
50+
def test_add_parameter_set(self):
51+
"""Test the add_parameter_set method."""
52+
parset2 = ParameterSet("parset2")
53+
p1 = Parameter("parset2", 1)
54+
55+
self.parset.add_parameter_set(parset2)
56+
self.assertTrue(self.parset.parset2 is parset2)
57+
58+
self.assertRaises(ValueError, self.parset.add_parameter_set, p1)
3859

3960
p1.name = "p1"
4061
parset2.addParameter(p1)

0 commit comments

Comments
 (0)