Skip to content

Commit f42d40a

Browse files
authored
Merge branch 'main' into scattering-obj-valid
2 parents 8e993a3 + 77c0b9e commit f42d40a

File tree

5 files changed

+75
-0
lines changed

5 files changed

+75
-0
lines changed

news/config-UX.rst

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
**Added:**
2+
3+
* <news item>
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+
* additional information to users to relieve frustration in finding how to update global config
20+
21+
**Security:**
22+
23+
* <news item>

news/deepcopy.rst

Lines changed: 23 additions & 0 deletions
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>

src/diffpy/utils/diffraction_objects.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -471,3 +471,14 @@ def dump(self, filepath, xtype=None):
471471
f.write(f"{key} = {value}\n")
472472
f.write("\n#### start data\n")
473473
np.savetxt(f, data_to_save, delimiter=" ")
474+
475+
def copy(self):
476+
"""
477+
Create a deep copy of the DiffractionObject instance.
478+
479+
Returns
480+
-------
481+
DiffractionObject
482+
A new instance of DiffractionObject, which is a deep copy of the current instance.
483+
"""
484+
return deepcopy(self)

src/diffpy/utils/tools.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,11 @@ def _create_global_config(args):
8383
return_bool = False if username is None or email is None else True
8484
with open(Path().home() / "diffpyconfig.json", "w") as f:
8585
f.write(json.dumps({"username": stringify(username), "email": stringify(email)}))
86+
print(
87+
f"You can manually edit the config file at {Path().home() / 'diffpyconfig.json'} using any text editor.\n"
88+
f"Or you can update the config file by passing new values to get_user_info(), "
89+
f"see examples here: https://www.diffpy.org/diffpy.utils/examples/toolsexample.html"
90+
)
8691
return return_bool
8792

8893

tests/test_diffraction_objects.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -426,3 +426,16 @@ def test_xtype_setter():
426426
"Please use 'insert_scattering_quantity' to modify 'xtype'.",
427427
):
428428
do.xtype = "q"
429+
430+
def test_copy_object():
431+
do = DiffractionObject(
432+
name="test",
433+
wavelength=4.0 * np.pi,
434+
xarray=np.array([0.0, 90.0, 180.0]),
435+
yarray=np.array([1.0, 2.0, 3.0]),
436+
xtype="tth",
437+
)
438+
do_copy = do.copy()
439+
assert do == do_copy
440+
assert id(do) != id(do_copy)
441+

0 commit comments

Comments
 (0)