Skip to content

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

) -> 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.

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