Skip to content

Commit d07cb97

Browse files
GH1409 PR Feedback
1 parent 126b78f commit d07cb97

File tree

3 files changed

+51
-15
lines changed

3 files changed

+51
-15
lines changed

pandas-stubs/_typing.pyi

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -872,6 +872,15 @@ ShapeT = TypeVar("ShapeT", bound=tuple[int, ...], default=tuple[Any, ...])
872872
np_ndarray: TypeAlias = np.ndarray[ShapeT, np.dtype[GenericT]]
873873
# Numpy arrays with known shape (Do not use as argument types, only as return types)
874874
np_1darray: TypeAlias = np.ndarray[tuple[int], np.dtype[GenericT]]
875+
np_1darray_bool: TypeAlias = np_1darray[np.bool_]
876+
np_1darray_str: TypeAlias = np_1darray[np.str_]
877+
np_1darray_bytes: TypeAlias = np_1darray[np.bytes_]
878+
np_1darray_anyint: TypeAlias = np_1darray[np.integer]
879+
np_1darray_float: TypeAlias = np_1darray[np.floating]
880+
np_1darray_complex: TypeAlias = np_1darray[np.complexfloating]
881+
np_1darray_datetime: TypeAlias = np_1darray[np.datetime64]
882+
np_1darray_timedelta: TypeAlias = np_1darray[np.timedelta64]
883+
np_1darray_object: TypeAlias = np_1darray[np.object_]
875884
np_2darray: TypeAlias = np.ndarray[tuple[int, int], np.dtype[GenericT]]
876885

877886
class SupportsDType(Protocol[GenericT_co]):

tests/__init__.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,15 @@
4545
UIntDtypeArg as UIntDtypeArg,
4646
VoidDtypeArg as VoidDtypeArg,
4747
np_1darray as np_1darray,
48+
np_1darray_anyint as np_1darray_anyint,
49+
np_1darray_bool as np_1darray_bool,
50+
np_1darray_bytes as np_1darray_bytes,
51+
np_1darray_complex as np_1darray_complex,
52+
np_1darray_datetime as np_1darray_datetime,
53+
np_1darray_float as np_1darray_float,
54+
np_1darray_object as np_1darray_object,
55+
np_1darray_str as np_1darray_str,
56+
np_1darray_timedelta as np_1darray_timedelta,
4857
np_2darray as np_2darray,
4958
np_ndarray as np_ndarray,
5059
np_ndarray_bool as np_ndarray_bool,
@@ -55,6 +64,15 @@
5564
_S = TypeVar("_S", bound=tuple[int, ...])
5665
# Separately define here so pytest works
5766
np_1darray: TypeAlias = np.ndarray[tuple[int], np.dtype[_G]]
67+
np_1darray_bool: TypeAlias = np.ndarray[tuple[int], np.bool_]
68+
np_1darray_str: TypeAlias = np.ndarray[tuple[int], np.str_]
69+
np_1darray_bytes: TypeAlias = np.ndarray[tuple[int], np.bytes_]
70+
np_1darray_anyint: TypeAlias = np.ndarray[tuple[int], np.integer]
71+
np_1darray_float: TypeAlias = np.ndarray[tuple[int], np.floating]
72+
np_1darray_complex: TypeAlias = np.ndarray[tuple[int], np.complexfloating]
73+
np_1darray_datetime: TypeAlias = np.ndarray[tuple[int], np.datetime64]
74+
np_1darray_timedelta: TypeAlias = np.ndarray[tuple[int], np.timedelta64]
75+
np_1darray_object: TypeAlias = np.ndarray[tuple[int], np.object_]
5876
np_2darray: TypeAlias = np.ndarray[tuple[int, int], np.dtype[_G]]
5977
np_ndarray: TypeAlias = np.ndarray[_S, np.dtype[_G]]
6078
np_ndarray_bool: TypeAlias = npt.NDArray[np.bool_]

tests/series/test_series.py

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,15 @@
6060
check,
6161
ensure_clean,
6262
np_1darray,
63+
np_1darray_anyint,
64+
np_1darray_bool,
65+
np_1darray_bytes,
66+
np_1darray_complex,
67+
np_1darray_datetime,
68+
np_1darray_float,
69+
np_1darray_object,
70+
np_1darray_str,
71+
np_1darray_timedelta,
6372
pytest_warns_bounded,
6473
)
6574
from tests.extension.decimal.array import DecimalDtype
@@ -2003,27 +2012,27 @@ def test_types_to_numpy() -> None:
20032012
def test_to_numpy() -> None:
20042013
"""Test Series.to_numpy for different types."""
20052014
s_str = pd.Series(["a", "b", "c"], dtype=str)
2006-
check(assert_type(s_str.to_numpy(), np_1darray[np.str_]), np_1darray, str)
2015+
check(assert_type(s_str.to_numpy(), np_1darray_str), np_1darray, str)
20072016

20082017
s_bytes = pd.Series(["a", "b", "c"]).astype(bytes)
2009-
check(assert_type(s_bytes.to_numpy(), np_1darray[np.bytes_]), np_1darray, np.bytes_)
2018+
check(assert_type(s_bytes.to_numpy(), np_1darray_bytes), np_1darray, np.bytes_)
20102019

20112020
s_bool = pd.Series([True, False])
2012-
check(assert_type(s_bool.to_numpy(), np_1darray[np.bool_]), np_1darray, np.bool_)
2021+
check(assert_type(s_bool.to_numpy(), np_1darray_bool), np_1darray, np.bool_)
20132022

20142023
s_int = pd.Series([2, 3, 4])
2015-
check(assert_type(s_int.to_numpy(), np_1darray[np.integer]), np_1darray, np.integer)
2024+
check(assert_type(s_int.to_numpy(), np_1darray_anyint), np_1darray, np.integer)
20162025

20172026
s_float = pd.Series([2.0, 3.54, 4.84])
20182027
check(
2019-
assert_type(s_float.to_numpy(), np_1darray[np.floating]),
2028+
assert_type(s_float.to_numpy(), np_1darray_float),
20202029
np_1darray,
20212030
np.floating,
20222031
)
20232032

20242033
s_complex = pd.Series([2.0 + 2j, 3.54 + 4j, 4.84])
20252034
check(
2026-
assert_type(s_complex.to_numpy(), np_1darray[np.complexfloating]),
2035+
assert_type(s_complex.to_numpy(), np_1darray_complex),
20272036
np_1darray,
20282037
np.complexfloating,
20292038
)
@@ -2037,24 +2046,24 @@ def test_to_numpy() -> None:
20372046
dtype="datetime64[ns]",
20382047
)
20392048
s_period = pd.PeriodIndex(dates, freq="M").to_series()
2040-
check(
2041-
assert_type(s_period.to_numpy(), np_1darray[np.object_]), np_1darray, pd.Period
2042-
)
2049+
check(assert_type(s_period.to_numpy(), np_1darray_object), np_1darray, pd.Period)
20432050

2044-
s8 = pd.Series(
2051+
s_interval = pd.Series(
20452052
[
20462053
pd.Interval(date, date + pd.DateOffset(days=1), closed="left")
20472054
for date in dates
20482055
]
20492056
)
2050-
check(assert_type(s8.to_numpy(), np_1darray[np.object_]), np_1darray, pd.Interval)
2057+
check(
2058+
assert_type(s_interval.to_numpy(), np_1darray_object), np_1darray, pd.Interval
2059+
)
20512060

2052-
s_interval = pd.Series([Day(1)])
2053-
check(assert_type(s_interval.to_numpy(), np_1darray[np.object_]), np_1darray, Day)
2061+
s_day = pd.Series([Day(1)])
2062+
check(assert_type(s_day.to_numpy(), np_1darray_object), np_1darray, Day)
20542063

20552064
s_date = pd.Series(pd.date_range(start="2017-01-01", end="2017-02-01"))
20562065
check(
2057-
assert_type(s_date.to_numpy(), np_1darray[np.datetime64]),
2066+
assert_type(s_date.to_numpy(), np_1darray_datetime),
20582067
np_1darray,
20592068
np.datetime64,
20602069
)
@@ -2063,7 +2072,7 @@ def test_to_numpy() -> None:
20632072
[pd.Timestamp.now().date(), pd.Timestamp.now().date()]
20642073
).diff()
20652074
check(
2066-
assert_type(s_timedelta.to_numpy(), np_1darray[np.timedelta64]),
2075+
assert_type(s_timedelta.to_numpy(), np_1darray_timedelta),
20672076
np_1darray,
20682077
np.timedelta64,
20692078
)

0 commit comments

Comments
 (0)