Skip to content

Commit 872dba8

Browse files
committed
type join
1 parent 0b831e3 commit 872dba8

File tree

2 files changed

+33
-6
lines changed

2 files changed

+33
-6
lines changed

pandas-stubs/core/indexes/base.pyi

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ from pandas._typing import (
7979
GenericT_co,
8080
HashableT,
8181
IgnoreRaise,
82+
JoinHow,
8283
Just,
8384
Label,
8485
Level,
@@ -433,15 +434,26 @@ class Index(IndexOpsMixin[S1], ElementOpsMixin[S1]):
433434
limit=...,
434435
tolerance=...,
435436
): ...
437+
@overload
436438
def join(
437439
self,
438-
other,
440+
other: Index,
439441
*,
440-
how: _str = ...,
441-
level=...,
442-
return_indexers: bool = ...,
443-
sort: bool = ...,
444-
): ...
442+
how: JoinHow = "left",
443+
level: Level | None = None,
444+
return_indexers: Literal[True],
445+
sort: bool = False,
446+
) -> tuple[Index, np_1darray[np.intp] | None, np_1darray[np.intp] | None]: ...
447+
@overload
448+
def join(
449+
self,
450+
other: Index,
451+
*,
452+
how: JoinHow = "left",
453+
level: Level | None = None,
454+
return_indexers: Literal[False] = ...,
455+
sort: bool = False,
456+
) -> Index: ...
445457
@property
446458
def values(self) -> np_1darray: ...
447459
def memory_usage(self, deep: bool = False): ...

tests/indexes/test_rangeindex.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,3 +62,18 @@ def test_rangeindex_argsort() -> None:
6262
assert_type(ri.argsort(), np_1darray[np.intp]),
6363
np_1darray[np.intp],
6464
)
65+
66+
67+
def test_rangeindex_join() -> None:
68+
ri = pd.RangeIndex.from_range(range(3))
69+
check(
70+
assert_type(ri.join(ri), pd.Index),
71+
pd.Index,
72+
)
73+
check(
74+
assert_type(
75+
ri.join(ri, return_indexers=True),
76+
tuple[pd.Index, np_1darray[np.intp] | None, np_1darray[np.intp] | None],
77+
),
78+
tuple[pd.Index, np_1darray[np.intp] | None, np_1darray[np.intp] | None],
79+
)

0 commit comments

Comments
 (0)