Skip to content

GH1264 Version 2.0 cleanup #1265

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jun 30, 2025
Merged

Conversation

loicdiridollou
Copy link
Member

@loicdiridollou loicdiridollou commented Jun 28, 2025

def union(self, other: list[HashableT] | Index, sort=...) -> Index: ...
def intersection(self, other: list[S1] | Self, sort: bool = ...) -> Self: ...
def union(
self, other: list[HashableT] | Index, sort: bool | None = ...
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
self, other: list[HashableT] | Index, sort: bool | None = ...
self, other: list[HashableT] | Self, sort: bool | None = ...

Might as well be consistent with these different operations

@@ -2324,6 +2324,13 @@ class TimedeltaSeries(Series[Timedelta]):
*args: Any,
**kwargs: Any,
) -> TimedeltaSeries: ...
def cumprod(
self,
axis: AxisIndex | None = ...,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove None

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since the default argument is None, wouldn't that cause issues?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see what you mean, I was looking at the 2.3.0 code which still has None as default but on main it is now 0 (I would not see anyone use None by default and otherwise it will make it a good time to fix it).

Comment on lines 321 to 330
pd.RangeIndex(0, 10).union(["a", "b", "c"], sort=True),
Union[pd.Index, "pd.Index[int]", pd.RangeIndex],
),
pd.Index,
)
check(
assert_type(
pd.RangeIndex(0, 10).union(["a", "b", "c"], sort=False),
Union[pd.Index, "pd.Index[int]", pd.RangeIndex],
),
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't seem right, and I think you'll need some specific overloads here for RangeIndex (and Sequence[int] for that matter). If RangeIndex has a set operation with either a Sequence[int], Series[int], Index[int] or RangeIndex, the result is Union[RangeIndex, Index[int]]. With any other type, it is just Index

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Indeed that was the wrong copy paste, this is fixed.

@@ -3941,3 +3941,8 @@ def test_series_index_type() -> None:

if TYPE_CHECKING_INVALID_USAGE:
t = pd.Series([1, 2], index="ab") # type: ignore[call-overload] # pyright: ignore[reportCallIssue, reportArgumentType]


def test_timedelta_index_cumsum() -> None:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
def test_timedelta_index_cumsum() -> None:
def test_timedelta_invalid_cumprod() -> None:

@loicdiridollou loicdiridollou requested a review from Dr-Irv June 30, 2025 11:43
Copy link
Collaborator

@Dr-Irv Dr-Irv left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Dr-Irv Dr-Irv merged commit 08c673c into pandas-dev:main Jun 30, 2025
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Follow-up version 2.0
2 participants