@@ -718,7 +718,7 @@ class _MergeOperation:
718
718
"""
719
719
720
720
_merge_type = "merge"
721
- how : MergeHow | Literal ["asof" ]
721
+ how : JoinHow | Literal ["asof" ]
722
722
on : IndexLabel | None
723
723
# left_on/right_on may be None when passed, but in validate_specification
724
724
# get replaced with non-None.
@@ -739,7 +739,7 @@ def __init__(
739
739
self ,
740
740
left : DataFrame | Series ,
741
741
right : DataFrame | Series ,
742
- how : MergeHow | Literal ["asof" ] = "inner" ,
742
+ how : JoinHow | Literal ["asof" ] = "inner" ,
743
743
on : IndexLabel | AnyArrayLike | None = None ,
744
744
left_on : IndexLabel | AnyArrayLike | None = None ,
745
745
right_on : IndexLabel | AnyArrayLike | None = None ,
@@ -1106,6 +1106,8 @@ def _maybe_add_join_keys(
1106
1106
1107
1107
def _get_join_indexers (self ) -> tuple [npt .NDArray [np .intp ], npt .NDArray [np .intp ]]:
1108
1108
"""return the join indexers"""
1109
+ # make mypy happy
1110
+ assert self .how != "asof"
1109
1111
return get_join_indexers (
1110
1112
self .left_join_keys , self .right_join_keys , sort = self .sort , how = self .how
1111
1113
)
@@ -1114,8 +1116,6 @@ def _get_join_indexers(self) -> tuple[npt.NDArray[np.intp], npt.NDArray[np.intp]
1114
1116
def _get_join_info (
1115
1117
self ,
1116
1118
) -> tuple [Index , npt .NDArray [np .intp ] | None , npt .NDArray [np .intp ] | None ]:
1117
- # make mypy happy
1118
- assert self .how != "cross"
1119
1119
left_ax = self .left .index
1120
1120
right_ax = self .right .index
1121
1121
@@ -1658,7 +1658,7 @@ def get_join_indexers(
1658
1658
left_keys : list [ArrayLike ],
1659
1659
right_keys : list [ArrayLike ],
1660
1660
sort : bool = False ,
1661
- how : MergeHow | Literal [ "asof" ] = "inner" ,
1661
+ how : JoinHow = "inner" ,
1662
1662
) -> tuple [npt .NDArray [np .intp ], npt .NDArray [np .intp ]]:
1663
1663
"""
1664
1664
@@ -1684,12 +1684,12 @@ def get_join_indexers(
1684
1684
left_n = len (left_keys [0 ])
1685
1685
right_n = len (right_keys [0 ])
1686
1686
if left_n == 0 :
1687
- if how in ["left" , "inner" , "cross" ]:
1687
+ if how in ["left" , "inner" ]:
1688
1688
return _get_empty_indexer ()
1689
1689
elif not sort and how in ["right" , "outer" ]:
1690
1690
return _get_no_sort_one_missing_indexer (right_n , True )
1691
1691
elif right_n == 0 :
1692
- if how in ["right" , "inner" , "cross" ]:
1692
+ if how in ["right" , "inner" ]:
1693
1693
return _get_empty_indexer ()
1694
1694
elif not sort and how in ["left" , "outer" ]:
1695
1695
return _get_no_sort_one_missing_indexer (left_n , False )
@@ -1699,7 +1699,7 @@ def get_join_indexers(
1699
1699
1700
1700
# get left & right join labels and num. of levels at each location
1701
1701
mapped = (
1702
- _factorize_keys (left_keys [n ], right_keys [n ], sort = sort , how = how )
1702
+ _factorize_keys (left_keys [n ], right_keys [n ], sort = sort )
1703
1703
for n in range (len (left_keys ))
1704
1704
)
1705
1705
zipped = zip (* mapped )
@@ -1712,7 +1712,7 @@ def get_join_indexers(
1712
1712
# `count` is the num. of unique keys
1713
1713
# set(lkey) | set(rkey) == range(count)
1714
1714
1715
- lkey , rkey , count = _factorize_keys (lkey , rkey , sort = sort , how = how )
1715
+ lkey , rkey , count = _factorize_keys (lkey , rkey , sort = sort )
1716
1716
# preserve left frame order if how == 'left' and sort == False
1717
1717
kwargs = {}
1718
1718
if how in ("inner" , "left" , "right" ):
@@ -2166,7 +2166,6 @@ def _get_join_indexers(self) -> tuple[npt.NDArray[np.intp], npt.NDArray[np.intp]
2166
2166
left_join_keys [n ],
2167
2167
right_join_keys [n ],
2168
2168
sort = False ,
2169
- how = "left" ,
2170
2169
)
2171
2170
for n in range (len (left_join_keys ))
2172
2171
]
@@ -2310,10 +2309,7 @@ def _left_join_on_index(
2310
2309
2311
2310
2312
2311
def _factorize_keys (
2313
- lk : ArrayLike ,
2314
- rk : ArrayLike ,
2315
- sort : bool = True ,
2316
- how : MergeHow | Literal ["asof" ] = "inner" ,
2312
+ lk : ArrayLike , rk : ArrayLike , sort : bool = True
2317
2313
) -> tuple [npt .NDArray [np .intp ], npt .NDArray [np .intp ], int ]:
2318
2314
"""
2319
2315
Encode left and right keys as enumerated types.
@@ -2329,8 +2325,6 @@ def _factorize_keys(
2329
2325
sort : bool, defaults to True
2330
2326
If True, the encoding is done such that the unique elements in the
2331
2327
keys are sorted.
2332
- how : {'left', 'right', 'outer', 'inner'}, default 'inner'
2333
- Type of merge.
2334
2328
2335
2329
Returns
2336
2330
-------
@@ -2419,8 +2413,6 @@ def _factorize_keys(
2419
2413
)
2420
2414
if dc .null_count > 0 :
2421
2415
count += 1
2422
- if how == "right" :
2423
- return rlab , llab , count
2424
2416
return llab , rlab , count
2425
2417
2426
2418
if not isinstance (lk , BaseMaskedArray ) and not (
@@ -2491,8 +2483,6 @@ def _factorize_keys(
2491
2483
np .putmask (rlab , rmask , count )
2492
2484
count += 1
2493
2485
2494
- if how == "right" :
2495
- return rlab , llab , count
2496
2486
return llab , rlab , count
2497
2487
2498
2488
0 commit comments