Skip to content

Commit 6a28145

Browse files
committed
fix(typing): truediv path
1 parent 465add6 commit 6a28145

File tree

2 files changed

+39
-8
lines changed

2 files changed

+39
-8
lines changed

pandas-stubs/core/series.pyi

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1745,9 +1745,7 @@ class Series(IndexOpsMixin[S1], NDFrame):
17451745
def __ror__(self, other: int | np_ndarray_anyint | Series[int]) -> Series[int]: ...
17461746
def __rsub__(self, other: num | _ListLike | Series[S1]) -> Series: ...
17471747
@overload
1748-
def __rtruediv__(
1749-
self: Series[Never], other: Path | Scalar | _ListLike
1750-
) -> Series: ...
1748+
def __rtruediv__(self: Series[Never], other: Scalar | _ListLike) -> Series: ...
17511749
@overload
17521750
def __rtruediv__(
17531751
self: Series[int],
@@ -1812,7 +1810,7 @@ class Series(IndexOpsMixin[S1], NDFrame):
18121810
def __sub__(self, other: num | _ListLike | Series) -> Series: ...
18131811
@overload
18141812
def __truediv__(
1815-
self: Series[Never], other: Path | Scalar | _ListLike | Series
1813+
self: Series[Never], other: Scalar | _ListLike | Series
18161814
) -> Series: ...
18171815
@overload
18181816
def __truediv__(self, other: Series[Never]) -> Series: ...
@@ -1855,6 +1853,8 @@ class Series(IndexOpsMixin[S1], NDFrame):
18551853
| Series[_T_COMPLEX]
18561854
),
18571855
) -> Series[complex]: ...
1856+
@overload
1857+
def __truediv__(self, other: Path) -> Series: ...
18581858
# ignore needed for mypy as we want different results based on the arguments
18591859
@overload # type: ignore[override]
18601860
def __xor__( # pyright: ignore[reportOverlappingOverload]
@@ -2362,7 +2362,7 @@ class Series(IndexOpsMixin[S1], NDFrame):
23622362
@overload
23632363
def rtruediv(
23642364
self: Series[Never],
2365-
other: Path | Scalar | _ListLike | Series,
2365+
other: Scalar | _ListLike | Series,
23662366
level: Level | None = ...,
23672367
fill_value: float | None = ...,
23682368
axis: AxisIndex = ...,
@@ -2441,7 +2441,7 @@ class Series(IndexOpsMixin[S1], NDFrame):
24412441
@overload
24422442
def rdiv(
24432443
self: Series[Never],
2444-
other: Path | Scalar | _ListLike | Series,
2444+
other: Scalar | _ListLike | Series,
24452445
level: Level | None = ...,
24462446
fill_value: float | None = ...,
24472447
axis: AxisIndex = ...,
@@ -2603,7 +2603,7 @@ class Series(IndexOpsMixin[S1], NDFrame):
26032603
@overload
26042604
def truediv(
26052605
self: Series[Never],
2606-
other: Path | Scalar | _ListLike | Series,
2606+
other: Scalar | _ListLike | Series,
26072607
level: Level | None = ...,
26082608
fill_value: float | None = ...,
26092609
axis: AxisIndex = ...,
@@ -2680,9 +2680,17 @@ class Series(IndexOpsMixin[S1], NDFrame):
26802680
axis: AxisIndex = ...,
26812681
) -> Series[complex]: ...
26822682
@overload
2683+
def truediv(
2684+
self,
2685+
other: Path,
2686+
level: Level | None = ...,
2687+
fill_value: float | None = ...,
2688+
axis: AxisIndex = ...,
2689+
) -> Series: ...
2690+
@overload
26832691
def div(
26842692
self: Series[Never],
2685-
other: Path | Scalar | _ListLike | Series,
2693+
other: Scalar | _ListLike | Series,
26862694
level: Level | None = ...,
26872695
fill_value: float | None = ...,
26882696
axis: AxisIndex = ...,
@@ -2758,6 +2766,14 @@ class Series(IndexOpsMixin[S1], NDFrame):
27582766
fill_value: float | None = ...,
27592767
axis: AxisIndex = ...,
27602768
) -> Series[complex]: ...
2769+
@overload
2770+
def div(
2771+
self,
2772+
other: Path,
2773+
level: Level | None = ...,
2774+
fill_value: float | None = ...,
2775+
axis: AxisIndex = ...,
2776+
) -> Series: ...
27612777
def var(
27622778
self,
27632779
axis: AxisIndex | None = ...,

tests/series/arithmetic/test_truediv.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from pathlib import Path
22

33
import numpy as np
4+
from numpy import typing as npt # noqa: F401
45
import pandas as pd
56
from typing_extensions import assert_type
67

@@ -137,3 +138,17 @@ def test_truediv_pd_series() -> None:
137138
check(assert_type(left.rdiv(i), pd.Series), pd.Series)
138139
check(assert_type(left.rdiv(f), pd.Series), pd.Series)
139140
check(assert_type(left.rdiv(c), pd.Series), pd.Series)
141+
142+
143+
def test_truediv_path() -> None:
144+
"""Test pd.Series / path object"""
145+
left, p = pd.Series(["pat", "ath", "path"]), Path()
146+
147+
check(assert_type(left / p, pd.Series), pd.Series, Path)
148+
check(assert_type(p / left, pd.Series), pd.Series, Path)
149+
150+
check(assert_type(left.truediv(p), pd.Series), pd.Series, Path)
151+
check(assert_type(left.div(p), pd.Series), pd.Series, Path)
152+
153+
check(assert_type(left.rtruediv(p), pd.Series), pd.Series, Path)
154+
check(assert_type(left.rdiv(p), pd.Series), pd.Series, Path)

0 commit comments

Comments
 (0)