Skip to content

Commit 77b884c

Browse files
authored
Merge pull request #204 from bobleesj/copy-obj
Add `copy()` method for `DiffractionObject`
2 parents d8d7fb3 + ca0ef30 commit 77b884c

File tree

3 files changed

+47
-0
lines changed

3 files changed

+47
-0
lines changed

Diff for: news/deepcopy.rst

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
**Added:**
2+
3+
* copy() method for DiffractionObject instance
4+
5+
**Changed:**
6+
7+
* <news item>
8+
9+
**Deprecated:**
10+
11+
* <news item>
12+
13+
**Removed:**
14+
15+
* <news item>
16+
17+
**Fixed:**
18+
19+
* <news item>
20+
21+
**Security:**
22+
23+
* <news item>

Diff for: src/diffpy/utils/diffraction_objects.py

+11
Original file line numberDiff line numberDiff line change
@@ -445,3 +445,14 @@ def dump(self, filepath, xtype=None):
445445
f.write(f"{key} = {value}\n")
446446
f.write("\n#### start data\n")
447447
np.savetxt(f, data_to_save, delimiter=" ")
448+
449+
def copy(self):
450+
"""
451+
Create a deep copy of the DiffractionObject instance.
452+
453+
Returns
454+
-------
455+
DiffractionObject
456+
A new instance of DiffractionObject, which is a deep copy of the current instance.
457+
"""
458+
return deepcopy(self)

Diff for: tests/test_diffraction_objects.py

+13
Original file line numberDiff line numberDiff line change
@@ -410,3 +410,16 @@ def test_all_array_setter():
410410
"Please use 'insert_scattering_quantity' to modify `all_arrays`.",
411411
):
412412
actual_do.all_arrays = np.empty((4, 4))
413+
414+
415+
def test_copy_object():
416+
do = DiffractionObject(
417+
name="test",
418+
wavelength=4.0 * np.pi,
419+
xarray=np.array([0.0, 90.0, 180.0]),
420+
yarray=np.array([1.0, 2.0, 3.0]),
421+
xtype="tth",
422+
)
423+
do_copy = do.copy()
424+
assert do == do_copy
425+
assert id(do) != id(do_copy)

0 commit comments

Comments
 (0)