Skip to content

Commit 7c84082

Browse files
authored
Series.astype(np.integer) doesn't show numpy warning (#51917)
* Series.astype(np.integer) doesn't show numpy warning * updated testcases using tm.assert_produces_warning
1 parent e316f5d commit 7c84082

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

pandas/core/dtypes/common.py

+7-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
Any,
99
Callable,
1010
)
11+
import warnings
1112

1213
import numpy as np
1314

@@ -1694,7 +1695,12 @@ def pandas_dtype(dtype) -> DtypeObj:
16941695
# try a numpy dtype
16951696
# raise a consistent TypeError if failed
16961697
try:
1697-
npdtype = np.dtype(dtype)
1698+
with warnings.catch_warnings():
1699+
# GH#51523 - Series.astype(np.integer) doesn't show
1700+
# numpy deprication warning of np.integer
1701+
# Hence enabling DeprecationWarning
1702+
warnings.simplefilter("always", DeprecationWarning)
1703+
npdtype = np.dtype(dtype)
16981704
except SyntaxError as err:
16991705
# np.dtype uses `eval` which can raise SyntaxError
17001706
raise TypeError(f"data type '{dtype}' not understood") from err

pandas/tests/dtypes/test_common.py

+10
Original file line numberDiff line numberDiff line change
@@ -754,3 +754,13 @@ def test_validate_allhashable():
754754

755755
with pytest.raises(TypeError, match="list must be a hashable type"):
756756
com.validate_all_hashable([], error_name="list")
757+
758+
759+
def test_pandas_dtype_numpy_warning():
760+
# GH#51523
761+
with tm.assert_produces_warning(
762+
DeprecationWarning,
763+
check_stacklevel=False,
764+
match="Converting `np.integer` or `np.signedinteger` to a dtype is deprecated",
765+
):
766+
pandas_dtype(np.integer)

0 commit comments

Comments
 (0)