diff --git a/pandas-stubs/core/series.pyi b/pandas-stubs/core/series.pyi index fa0013fe2..05cd715b3 100644 --- a/pandas-stubs/core/series.pyi +++ b/pandas-stubs/core/series.pyi @@ -294,7 +294,7 @@ class Series(IndexOpsMixin[S1], NDFrame): @overload def __new__( # type: ignore[overload-overlap] # pyright: ignore[reportOverlappingOverload] cls, - data: Sequence[Never], + data: Iterator[Never], index: AxesData | None = ..., dtype: Dtype = ..., name: Hashable = ..., @@ -303,7 +303,7 @@ class Series(IndexOpsMixin[S1], NDFrame): @overload def __new__( cls, - data: Sequence[list[_str]], + data: Iterator[list[_str]], index: AxesData | None = ..., dtype: Dtype = ..., name: Hashable = ..., @@ -312,7 +312,7 @@ class Series(IndexOpsMixin[S1], NDFrame): @overload def __new__( cls, - data: Sequence[_str], + data: Iterator[_str], index: AxesData | None = ..., dtype: Dtype = ..., name: Hashable = ..., @@ -323,7 +323,7 @@ class Series(IndexOpsMixin[S1], NDFrame): cls, data: ( DatetimeIndex - | Sequence[np.datetime64 | datetime | date] + | Iterator[np.datetime64 | datetime | date] | dict[HashableT1, np.datetime64 | datetime | date] | np.datetime64 | datetime @@ -337,7 +337,7 @@ class Series(IndexOpsMixin[S1], NDFrame): @overload def __new__( cls, - data: _ListLike, + data: _ListLike | Iterator[S1], index: AxesData | None = ..., *, dtype: TimestampDtypeArg, @@ -347,7 +347,7 @@ class Series(IndexOpsMixin[S1], NDFrame): @overload def __new__( cls, - data: PeriodIndex | Sequence[Period], + data: PeriodIndex | Iterator[Period], index: AxesData | None = ..., dtype: PeriodDtype = ..., name: Hashable = ..., @@ -358,7 +358,7 @@ class Series(IndexOpsMixin[S1], NDFrame): cls, data: ( TimedeltaIndex - | Sequence[np.timedelta64 | timedelta] + | Iterator[np.timedelta64 | timedelta] | dict[HashableT1, np.timedelta64 | timedelta] | np.timedelta64 | timedelta @@ -374,7 +374,7 @@ class Series(IndexOpsMixin[S1], NDFrame): data: ( IntervalIndex[Interval[_OrderableT]] | Interval[_OrderableT] - | Sequence[Interval[_OrderableT]] + | Iterator[Interval[_OrderableT]] | dict[HashableT1, Interval[_OrderableT]] ), index: AxesData | None = ..., @@ -385,7 +385,7 @@ class Series(IndexOpsMixin[S1], NDFrame): @overload def __new__( # type: ignore[overload-overlap] cls, - data: Scalar | _ListLike | dict[HashableT1, Any] | None, + data: Scalar | _ListLike | Iterator[S1] | dict[HashableT1, Any] | None, index: AxesData | None = ..., *, dtype: type[S1], @@ -395,7 +395,7 @@ class Series(IndexOpsMixin[S1], NDFrame): @overload def __new__( # type: ignore[overload-overlap] # pyright: ignore[reportOverlappingOverload] cls, - data: Sequence[bool], + data: Iterator[bool], index: AxesData | None = ..., dtype: Dtype = ..., name: Hashable = ..., @@ -404,7 +404,7 @@ class Series(IndexOpsMixin[S1], NDFrame): @overload def __new__( # type: ignore[overload-overlap] cls, - data: Sequence[int], + data: Iterator[int], index: AxesData | None = ..., dtype: Dtype = ..., name: Hashable = ..., @@ -413,7 +413,7 @@ class Series(IndexOpsMixin[S1], NDFrame): @overload def __new__( cls, - data: Sequence[float], + data: Iterator[float], index: AxesData | None = ..., dtype: Dtype = ..., name: Hashable = ..., @@ -422,7 +422,7 @@ class Series(IndexOpsMixin[S1], NDFrame): @overload def __new__( # type: ignore[overload-cannot-match] # pyright: ignore[reportOverlappingOverload] cls, - data: Sequence[int | float], + data: Iterator[int | float], index: AxesData | None = ..., dtype: Dtype = ..., name: Hashable = ..., @@ -445,6 +445,7 @@ class Series(IndexOpsMixin[S1], NDFrame): data: ( Scalar | _ListLike + | Iterator[S1] | Mapping[HashableT1, Any] | BaseGroupBy | NaTType diff --git a/tests/series/test_series.py b/tests/series/test_series.py index e5b2f5465..46a67cf79 100644 --- a/tests/series/test_series.py +++ b/tests/series/test_series.py @@ -122,6 +122,7 @@ def test_types_init() -> None: pd.Series(1) pd.Series((1, 2, 3)) + pd.Series(iter((1, 2, 3))) pd.Series(np.array([1, 2, 3])) pd.Series(pd.NaT) pd.Series(pd.NA) @@ -155,6 +156,11 @@ def test_types_init() -> None: pd.Series, float, ) + check( + assert_type(pd.Series(iter([1.0])), "pd.Series[float]"), + pd.Series, + float, + ) def test_types_any() -> None: