Skip to content

Commit 39d41f0

Browse files
authored
Merge pull request #158 from stevenhua0320/deprecate-assignUniqueLabels
build: deprecate assignUniqueLabels
2 parents 1b565c8 + 2a1f30e commit 39d41f0

File tree

5 files changed

+58
-5
lines changed

5 files changed

+58
-5
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
**Added:**
2+
3+
* Added `diffpy.structure.Structure.assign_unique_labels` in replace of `assignUniqueLabels`
4+
5+
**Changed:**
6+
7+
* <news item>
8+
9+
**Deprecated:**
10+
11+
* Deprecated `diffpy.structure.Structure.assignUniqueLabels` for removal in 4.0.0
12+
13+
**Removed:**
14+
15+
* <news item>
16+
17+
**Fixed:**
18+
19+
* <news item>
20+
21+
**Security:**
22+
23+
* <news item>

requirements/conda.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
numpy
22
pycifrw
3+
diffpy.utils

requirements/pip.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
numpy
22
pycifrw
3+
diffpy.utils

src/diffpy/structure/structure.py

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,19 @@
2121
from diffpy.structure.atom import Atom
2222
from diffpy.structure.lattice import Lattice
2323
from diffpy.structure.utils import _linkAtomAttribute, atomBareSymbol, isiterable
24+
from diffpy.utils._deprecator import build_deprecation_message, deprecated
2425

2526
# ----------------------------------------------------------------------------
2627

28+
base = "diffpy.structure.Structure"
29+
removal_version = "4.0.0"
30+
assignUniqueLabels_deprecation_msg = build_deprecation_message(
31+
base,
32+
"assignUniqueLabels",
33+
"assign_unique_labels",
34+
removal_version,
35+
)
36+
2737

2838
class Structure(list):
2939
"""Define group of atoms in a specified lattice. Structure --> group
@@ -163,7 +173,7 @@ def getLastAtom(self):
163173
last_atom = self[-1]
164174
return last_atom
165175

166-
def assignUniqueLabels(self):
176+
def assign_unique_labels(self):
167177
"""Set a unique label string for each `Atom` in this structure.
168178
169179
The label strings are formatted as "%(baresymbol)s%(index)i",
@@ -181,6 +191,16 @@ def assignUniqueLabels(self):
181191
islabeled.add(a)
182192
return
183193

194+
@deprecated(assignUniqueLabels_deprecation_msg)
195+
def assignUniqueLabels(self):
196+
"""This function has been deprecated and will be removed in
197+
version 4.0.0.
198+
199+
Please use diffpy.structure.Structure.assign_unique_labels
200+
instead.
201+
"""
202+
return self.assign_unique_labels()
203+
184204
def distance(self, aid0, aid1):
185205
"""Calculate distance between 2 `Atoms`, no periodic boundary
186206
conditions.

tests/test_structure.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -128,11 +128,19 @@ def test_assignUniqueLabels(self):
128128
self.assertEqual("C2", self.stru[1].label)
129129
return
130130

131+
def test_assign_unique_labels(self):
132+
"""Check Structure.assign_unique_labels()"""
133+
self.assertEqual("", "".join([a.label for a in self.stru]))
134+
self.stru.assign_unique_labels()
135+
self.assertEqual("C1", self.stru[0].label)
136+
self.assertEqual("C2", self.stru[1].label)
137+
return
138+
131139
def test_distance(self):
132140
"""Check Structure.distance()"""
133141
from math import sqrt
134142

135-
self.stru.assignUniqueLabels()
143+
self.stru.assign_unique_labels()
136144
self.assertRaises(IndexError, self.stru.distance, 333, "C1")
137145
self.assertRaises(IndexError, self.stru.distance, "C", "C1")
138146
self.assertAlmostEqual(sqrt(2.0), self.stru.distance(0, 1), self.places)
@@ -143,7 +151,7 @@ def test_distance(self):
143151
def test_angle(self):
144152
"""Check Structure.angle()"""
145153
cdse = Structure(filename=self.cdsefile)
146-
cdse.assignUniqueLabels()
154+
cdse.assign_unique_labels()
147155
self.assertEqual(109, round(cdse.angle(0, 2, 1)))
148156
self.assertEqual(109, round(cdse.angle("Cd1", "Se1", "Cd2")))
149157
return
@@ -236,7 +244,7 @@ def test___getitem__(self):
236244
cdse013.pop(2)
237245
self.assertEqual(cdse013, cdse[:2, 3].tolist())
238246
self.assertRaises(IndexError, cdse.__getitem__, "Cd1")
239-
cdse.assignUniqueLabels()
247+
cdse.assign_unique_labels()
240248
self.assertTrue(cdse[0] is cdse["Cd1"])
241249
cdse[0].label = "Hohenzollern"
242250
self.assertRaises(IndexError, cdse.__getitem__, "Cd1")
@@ -466,7 +474,7 @@ def test_label(self):
466474
"""Check Structure.label."""
467475
cdse = Structure(filename=self.cdsefile)
468476
self.assertEqual(4 * [""], cdse.label.tolist())
469-
cdse.assignUniqueLabels()
477+
cdse.assign_unique_labels()
470478
self.assertEqual("Cd1 Cd2 Se1 Se2".split(), cdse.label.tolist())
471479
cdse.label = cdse.label.lower()
472480
self.assertEqual("cd1 cd2 se1 se2".split(), cdse.label.tolist())

0 commit comments

Comments
 (0)