Skip to content

Commit

Permalink
Deprecation: np.VisibleDeprecationsWarning -->np.exceptions.VisibleDe…
Browse files Browse the repository at this point in the history
…precationsWarning
  • Loading branch information
CSSFrancis committed Oct 9, 2024
1 parent 77aaa31 commit 8e526b9
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 16 deletions.
17 changes: 11 additions & 6 deletions diffsims/tests/crystallography/test_get_hkl.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,17 @@
ReciprocalLatticeVector,
)

if np.__version__ >= "2.0.0":
from np.exceptions import VisibleDeprecationWarning
else:
VisibleDeprecationWarning = np.VisibleDeprecationWarning


class TestGetHKL:
@pytest.mark.parametrize("highest_hkl, n", [([1, 2, 3], 105), ([1, 1, 1], 27)])
def test_get_hkl(self, highest_hkl, n):
highest_hkl = np.array(highest_hkl)
with pytest.warns(np.VisibleDeprecationWarning):
with pytest.warns(VisibleDeprecationWarning):
hkl = get_hkl(highest_hkl)
assert np.allclose(hkl.max(axis=0), highest_hkl)
assert np.allclose(hkl.min(axis=0), -highest_hkl)
Expand All @@ -52,7 +57,7 @@ def test_get_hkl(self, highest_hkl, n):
"d, hkl", [(0.5, [6, 6, 21]), (1, [3, 3, 11]), (1.5, [2, 2, 7])]
)
def test_get_highest_hkl(self, silicon_carbide_phase, d, hkl):
with pytest.warns(np.VisibleDeprecationWarning):
with pytest.warns(VisibleDeprecationWarning):
hkl_out = get_highest_hkl(
silicon_carbide_phase.structure.lattice, min_dspacing=d
)
Expand All @@ -64,7 +69,7 @@ def test_get_highest_hkl(self, silicon_carbide_phase, d, hkl):

def test_get_equivalent_hkl(self):
phase_225 = Phase(space_group=225)
with pytest.warns(np.VisibleDeprecationWarning):
with pytest.warns(VisibleDeprecationWarning):
hkl1 = get_equivalent_hkl(
[1, 1, 1], operations=phase_225.point_group, unique=True
)
Expand All @@ -86,12 +91,12 @@ def test_get_equivalent_hkl(self):
g1 = ReciprocalLatticeVector(phase_225, hkl=[1, 1, 1])
assert np.allclose(g1.symmetrise().hkl, hkl1.data)

with pytest.warns(np.VisibleDeprecationWarning):
with pytest.warns(VisibleDeprecationWarning):
hkl2 = get_equivalent_hkl([1, 1, 1], operations=phase_225.point_group)
assert hkl2.shape[0] == g1.symmetrise().size * 6 == 48

phase_186 = Phase(space_group=186)
with pytest.warns(np.VisibleDeprecationWarning):
with pytest.warns(VisibleDeprecationWarning):
hkl3, mult3 = get_equivalent_hkl(
[2, 2, 0],
operations=phase_186.point_group,
Expand All @@ -102,7 +107,7 @@ def test_get_equivalent_hkl(self):
assert mult3 == g3.symmetrise().size == 12
assert np.allclose(hkl3.data[:2], [[2, 2, 0], [-2.7321, 0.7321, 0]], atol=1e-4)

with pytest.warns(np.VisibleDeprecationWarning):
with pytest.warns(VisibleDeprecationWarning):
hkl4, mult4 = get_equivalent_hkl(
Vector3d([[2, 2, 0], [4, 0, 0]]),
phase_186.point_group,
Expand Down
17 changes: 11 additions & 6 deletions diffsims/tests/utils/test_deprecation.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@

from diffsims.utils._deprecated import deprecated, deprecated_argument

if np.__version__ >= "2.0.0":
from np.exceptions import VisibleDeprecationWarning
else:
VisibleDeprecationWarning = np.VisibleDeprecationWarning


class TestDeprecationWarning:
def test_deprecation_since(self):
Expand All @@ -18,7 +23,7 @@ def foo(n):
"""Some docstring."""
return n + 1

with pytest.warns(np.VisibleDeprecationWarning) as record:
with pytest.warns(VisibleDeprecationWarning) as record:
assert foo(4) == 5
desired_msg = (
"Function `foo()` is deprecated and will be removed in version 0.8. Use "
Expand All @@ -41,7 +46,7 @@ def foo2(n):
"""
return n + 2

with pytest.warns(np.VisibleDeprecationWarning) as record2:
with pytest.warns(VisibleDeprecationWarning) as record2:
assert foo2(4) == 6
desired_msg2 = "Function `foo2()` is deprecated."
assert str(record2[0].message) == desired_msg2
Expand All @@ -58,7 +63,7 @@ def test_deprecation_no_old_doc(self):
def foo(n):
return n + 1

with pytest.warns(np.VisibleDeprecationWarning) as record:
with pytest.warns(VisibleDeprecationWarning) as record:
assert foo(4) == 5
desired_msg = (
"Function `foo()` is deprecated and will be removed in version 0.8. Use "
Expand All @@ -79,7 +84,7 @@ def test_deprecation_not_function(self):
def foo(n):
return n + 1

with pytest.warns(np.VisibleDeprecationWarning) as record:
with pytest.warns(VisibleDeprecationWarning) as record:
assert foo(4) == 5
desired_msg = (
"Function `foo()` is deprecated and will be removed in version 0.8. Use "
Expand Down Expand Up @@ -118,7 +123,7 @@ def bar_arg_alt(self, **kwargs):
assert my_foo.bar_arg(b=1) == {"b": 1}

# Warns
with pytest.warns(np.VisibleDeprecationWarning) as record2:
with pytest.warns(VisibleDeprecationWarning) as record2:
assert my_foo.bar_arg(a=2) == {"a": 2}
assert str(record2[0].message) == (
r"Argument `a` is deprecated and will be removed in version 1.4. "
Expand All @@ -127,7 +132,7 @@ def bar_arg_alt(self, **kwargs):
)

# Warns with alternative
with pytest.warns(np.VisibleDeprecationWarning) as record3:
with pytest.warns(VisibleDeprecationWarning) as record3:
assert my_foo.bar_arg_alt(a=3) == {"b": 3}
assert str(record3[0].message) == (
r"Argument `a` is deprecated and will be removed in version 1.4. "
Expand Down
15 changes: 11 additions & 4 deletions diffsims/utils/_deprecated.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,11 @@

import numpy as np

if np.__version__ >= "2.0.0":
from np.exceptions import VisibleDeprecationWarning
else:
VisibleDeprecationWarning = np.VisibleDeprecationWarning


class deprecated:
"""Decorator to mark deprecated functions with an informative
Expand Down Expand Up @@ -90,12 +95,14 @@ def __call__(self, func: Callable):
@functools.wraps(func)
def wrapped(*args, **kwargs):
warnings.simplefilter(
action="always", category=np.VisibleDeprecationWarning, append=True
action="always",
category=VisibleDeprecationWarning,
append=True,
)
func_code = func.__code__
warnings.warn_explicit(
message=msg,
category=np.VisibleDeprecationWarning,
category=VisibleDeprecationWarning,
filename=func_code.co_filename,
lineno=func_code.co_firstlineno + 1,
)
Expand Down Expand Up @@ -143,12 +150,12 @@ def wrapped(*args, **kwargs):
kwargs[self.alternative] = kwargs.pop(self.name)
msg += f"See the documentation of `{func.__name__}()` for more details."
warnings.simplefilter(
action="always", category=np.VisibleDeprecationWarning
action="always", category=VisibleDeprecationWarning
)
func_code = func.__code__
warnings.warn_explicit(
message=msg,
category=np.VisibleDeprecationWarning,
category=VisibleDeprecationWarning,
filename=func_code.co_filename,
lineno=func_code.co_firstlineno + 1,
)
Expand Down

0 comments on commit 8e526b9

Please sign in to comment.