Skip to content

Commit 6a31e87

Browse files
committed
use typealias
1 parent dba1bda commit 6a31e87

File tree

4 files changed

+22
-11
lines changed

4 files changed

+22
-11
lines changed

pandas-stubs/_typing.pyi

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -576,6 +576,9 @@ S2 = TypeVar(
576576
| list[str],
577577
)
578578

579+
UnknownSeries: TypeAlias = Series[Any]
580+
UnknownIndex: TypeAlias = Index[Any]
581+
579582
IndexingInt: TypeAlias = (
580583
int | np.int_ | np.integer | np.unsignedinteger | np.signedinteger | np.int8
581584
)

pandas-stubs/core/series.pyi

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2133,8 +2133,6 @@ class Series(IndexOpsMixin[S1], NDFrame):
21332133
) -> Self: ...
21342134
def __bool__(self) -> NoReturn: ...
21352135

2136-
class UnknownSeries(Series[Any]): ...
2137-
21382136
class TimestampSeries(Series[Timestamp]):
21392137
@property
21402138
def dt(self) -> TimestampProperties: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride]

pandas-stubs/core/strings.pyi

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ from typing import (
1212
overload,
1313
)
1414

15+
import numpy as np
1516
import numpy.typing as npt
1617
import pandas as pd
1718
from pandas import (
@@ -21,8 +22,6 @@ from pandas import (
2122
Series,
2223
)
2324
from pandas.core.base import NoNewAttributesMixin
24-
from pandas.core.indexes.base import UnknownIndex
25-
from pandas.core.series import UnknownSeries
2625

2726
from pandas._libs.tslibs.nattype import NaTType
2827
from pandas._typing import (
@@ -64,7 +63,7 @@ class StringMethods(NoNewAttributesMixin, Generic[T, _TS, _TM, _TS2]):
6463
def cat(
6564
self,
6665
others: (
67-
UnknownSeries | UnknownIndex | pd.DataFrame | npt.NDArray[Any] | list[Any]
66+
Series[str] | Index[str] | pd.DataFrame | npt.NDArray[np.str_] | list[str]
6867
),
6968
sep: str = ...,
7069
na_rep: str | None = ...,
@@ -167,7 +166,7 @@ class StringMethods(NoNewAttributesMixin, Generic[T, _TS, _TM, _TS2]):
167166
def count(self, pat: str, flags: int = ...) -> Series[int]: ...
168167
def startswith(self, pat: str | tuple[str, ...], na: Any = ...) -> Series[bool]: ...
169168
def endswith(self, pat: str | tuple[str, ...], na: Any = ...) -> Series[bool]: ...
170-
def findall(self, pat: str, flags: int = ...) -> UnknownSeries: ...
169+
def findall(self, pat: str, flags: int = ...) -> Series[list[str]]: ...
171170
@overload
172171
def extract(
173172
self, pat: str, flags: int = ..., *, expand: Literal[True] = ...

tests/test_series.py

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,14 +67,15 @@
6767
TimestampSeries,
6868
)
6969

70+
from pandas._typing import UnknownSeries
71+
7072
else:
7173
TimedeltaSeries: TypeAlias = pd.Series
7274
TimestampSeries: TypeAlias = pd.Series
7375
OffsetSeries: TypeAlias = pd.Series
76+
UnknownSeries: TypeAlias = pd.Series
7477

7578
if TYPE_CHECKING:
76-
from pandas.core.series import UnknownSeries # noqa: F401
77-
7879
from pandas._typing import (
7980
BooleanDtypeArg,
8081
BytesDtypeArg,
@@ -91,6 +92,7 @@
9192
)
9293
from pandas._typing import np_ndarray_int # noqa: F401
9394

95+
9496
# Tests will use numpy 2.1 in python 3.10 or later
9597
# From Numpy 2.1 __init__.pyi
9698
_DTypeKind: TypeAlias = Literal[
@@ -1597,7 +1599,7 @@ def test_string_accessors():
15971599
check(assert_type(s3.str.extract(r"([ab])?(\d)"), pd.DataFrame), pd.DataFrame)
15981600
check(assert_type(s3.str.extractall(r"([ab])?(\d)"), pd.DataFrame), pd.DataFrame)
15991601
check(assert_type(s.str.find("p"), pd.Series), pd.Series)
1600-
check(assert_type(s.str.findall("pp"), "UnknownSeries"), pd.Series)
1602+
check(assert_type(s.str.findall("pp"), "pd.Series[list[str]]"), pd.Series, list)
16011603
check(assert_type(s.str.fullmatch("apple"), "pd.Series[bool]"), pd.Series, np.bool_)
16021604
check(assert_type(s.str.get(2), pd.Series), pd.Series)
16031605
check(assert_type(s.str.get_dummies(), pd.DataFrame), pd.DataFrame)
@@ -1668,8 +1670,17 @@ def test_series_overloads_cat():
16681670
check(assert_type(s.str.cat(sep=";"), str), str)
16691671
check(assert_type(s.str.cat(None, sep=";"), str), str)
16701672
check(
1671-
assert_type(s.str.cat(["A", "B", "C", "D", "E", "F", "G"], sep=";"), pd.Series),
1672-
pd.Series,
1673+
assert_type(
1674+
s.str.cat(["A", "B", "C", "D", "E", "F", "G"], sep=";"), UnknownSeries
1675+
),
1676+
UnknownSeries,
1677+
)
1678+
check(
1679+
assert_type(
1680+
s.str.cat(pd.Series(["A", "B", "C", "D", "E", "F", "G"]), sep=";"),
1681+
UnknownSeries,
1682+
),
1683+
UnknownSeries,
16731684
)
16741685

16751686

0 commit comments

Comments
 (0)