|
13 | 13 | import numpy as np
|
14 | 14 |
|
15 | 15 | from pandas._libs import Timedelta, hashtable as libhashtable, join as libjoin, lib
|
16 |
| -from pandas._typing import ArrayLike, FrameOrSeries, FrameOrSeriesUnion |
| 16 | +from pandas._typing import ( |
| 17 | + ArrayLike, |
| 18 | + FrameOrSeries, |
| 19 | + FrameOrSeriesUnion, |
| 20 | + IndexLabel, |
| 21 | + Suffixes, |
| 22 | +) |
17 | 23 | from pandas.errors import MergeError
|
18 | 24 | from pandas.util._decorators import Appender, Substitution
|
19 | 25 |
|
|
57 | 63 | @Substitution("\nleft : DataFrame")
|
58 | 64 | @Appender(_merge_doc, indents=0)
|
59 | 65 | def merge(
|
60 |
| - left, |
61 |
| - right, |
| 66 | + left: FrameOrSeriesUnion, |
| 67 | + right: FrameOrSeriesUnion, |
62 | 68 | how: str = "inner",
|
63 |
| - on=None, |
64 |
| - left_on=None, |
65 |
| - right_on=None, |
| 69 | + on: Optional[IndexLabel] = None, |
| 70 | + left_on: Optional[IndexLabel] = None, |
| 71 | + right_on: Optional[IndexLabel] = None, |
66 | 72 | left_index: bool = False,
|
67 | 73 | right_index: bool = False,
|
68 | 74 | sort: bool = False,
|
69 |
| - suffixes=("_x", "_y"), |
| 75 | + suffixes: Suffixes = ("_x", "_y"), |
70 | 76 | copy: bool = True,
|
71 | 77 | indicator: bool = False,
|
72 |
| - validate=None, |
| 78 | + validate: Optional[str] = None, |
73 | 79 | ) -> "DataFrame":
|
74 | 80 | op = _MergeOperation(
|
75 | 81 | left,
|
@@ -151,15 +157,15 @@ def _groupby_and_merge(by, on, left: "DataFrame", right: "DataFrame", merge_piec
|
151 | 157 |
|
152 | 158 |
|
153 | 159 | def merge_ordered(
|
154 |
| - left, |
155 |
| - right, |
156 |
| - on=None, |
157 |
| - left_on=None, |
158 |
| - right_on=None, |
| 160 | + left: "DataFrame", |
| 161 | + right: "DataFrame", |
| 162 | + on: Optional[IndexLabel] = None, |
| 163 | + left_on: Optional[IndexLabel] = None, |
| 164 | + right_on: Optional[IndexLabel] = None, |
159 | 165 | left_by=None,
|
160 | 166 | right_by=None,
|
161 |
| - fill_method=None, |
162 |
| - suffixes=("_x", "_y"), |
| 167 | + fill_method: Optional[str] = None, |
| 168 | + suffixes: Suffixes = ("_x", "_y"), |
163 | 169 | how: str = "outer",
|
164 | 170 | ) -> "DataFrame":
|
165 | 171 | """
|
@@ -294,17 +300,17 @@ def _merger(x, y):
|
294 | 300 |
|
295 | 301 |
|
296 | 302 | def merge_asof(
|
297 |
| - left, |
298 |
| - right, |
299 |
| - on=None, |
300 |
| - left_on=None, |
301 |
| - right_on=None, |
| 303 | + left: "DataFrame", |
| 304 | + right: "DataFrame", |
| 305 | + on: Optional[IndexLabel] = None, |
| 306 | + left_on: Optional[IndexLabel] = None, |
| 307 | + right_on: Optional[IndexLabel] = None, |
302 | 308 | left_index: bool = False,
|
303 | 309 | right_index: bool = False,
|
304 | 310 | by=None,
|
305 | 311 | left_by=None,
|
306 | 312 | right_by=None,
|
307 |
| - suffixes=("_x", "_y"), |
| 313 | + suffixes: Suffixes = ("_x", "_y"), |
308 | 314 | tolerance=None,
|
309 | 315 | allow_exact_matches: bool = True,
|
310 | 316 | direction: str = "backward",
|
@@ -583,17 +589,17 @@ def __init__(
|
583 | 589 | left: FrameOrSeriesUnion,
|
584 | 590 | right: FrameOrSeriesUnion,
|
585 | 591 | how: str = "inner",
|
586 |
| - on=None, |
587 |
| - left_on=None, |
588 |
| - right_on=None, |
589 |
| - axis=1, |
| 592 | + on: Optional[IndexLabel] = None, |
| 593 | + left_on: Optional[IndexLabel] = None, |
| 594 | + right_on: Optional[IndexLabel] = None, |
| 595 | + axis: int = 1, |
590 | 596 | left_index: bool = False,
|
591 | 597 | right_index: bool = False,
|
592 | 598 | sort: bool = True,
|
593 |
| - suffixes=("_x", "_y"), |
| 599 | + suffixes: Suffixes = ("_x", "_y"), |
594 | 600 | copy: bool = True,
|
595 | 601 | indicator: bool = False,
|
596 |
| - validate=None, |
| 602 | + validate: Optional[str] = None, |
597 | 603 | ):
|
598 | 604 | _left = _validate_operand(left)
|
599 | 605 | _right = _validate_operand(right)
|
@@ -1224,7 +1230,7 @@ def _maybe_coerce_merge_keys(self):
|
1224 | 1230 | self.right = self.right.assign(**{name: self.right[name].astype(typ)})
|
1225 | 1231 |
|
1226 | 1232 | def _create_cross_configuration(
|
1227 |
| - self, left, right |
| 1233 | + self, left: "DataFrame", right: "DataFrame" |
1228 | 1234 | ) -> Tuple["DataFrame", "DataFrame", str, str]:
|
1229 | 1235 | """
|
1230 | 1236 | Creates the configuration to dispatch the cross operation to inner join,
|
@@ -1540,17 +1546,17 @@ class _OrderedMerge(_MergeOperation):
|
1540 | 1546 |
|
1541 | 1547 | def __init__(
|
1542 | 1548 | self,
|
1543 |
| - left, |
1544 |
| - right, |
1545 |
| - on=None, |
1546 |
| - left_on=None, |
1547 |
| - right_on=None, |
| 1549 | + left: "DataFrame", |
| 1550 | + right: "DataFrame", |
| 1551 | + on: Optional[IndexLabel] = None, |
| 1552 | + left_on: Optional[IndexLabel] = None, |
| 1553 | + right_on: Optional[IndexLabel] = None, |
1548 | 1554 | left_index: bool = False,
|
1549 | 1555 | right_index: bool = False,
|
1550 |
| - axis=1, |
1551 |
| - suffixes=("_x", "_y"), |
| 1556 | + axis: int = 1, |
| 1557 | + suffixes: Suffixes = ("_x", "_y"), |
1552 | 1558 | copy: bool = True,
|
1553 |
| - fill_method=None, |
| 1559 | + fill_method: Optional[str] = None, |
1554 | 1560 | how: str = "outer",
|
1555 | 1561 | ):
|
1556 | 1562 |
|
@@ -1634,20 +1640,20 @@ class _AsOfMerge(_OrderedMerge):
|
1634 | 1640 |
|
1635 | 1641 | def __init__(
|
1636 | 1642 | self,
|
1637 |
| - left, |
1638 |
| - right, |
1639 |
| - on=None, |
1640 |
| - left_on=None, |
1641 |
| - right_on=None, |
| 1643 | + left: "DataFrame", |
| 1644 | + right: "DataFrame", |
| 1645 | + on: Optional[IndexLabel] = None, |
| 1646 | + left_on: Optional[IndexLabel] = None, |
| 1647 | + right_on: Optional[IndexLabel] = None, |
1642 | 1648 | left_index: bool = False,
|
1643 | 1649 | right_index: bool = False,
|
1644 | 1650 | by=None,
|
1645 | 1651 | left_by=None,
|
1646 | 1652 | right_by=None,
|
1647 |
| - axis=1, |
1648 |
| - suffixes=("_x", "_y"), |
| 1653 | + axis: int = 1, |
| 1654 | + suffixes: Suffixes = ("_x", "_y"), |
1649 | 1655 | copy: bool = True,
|
1650 |
| - fill_method=None, |
| 1656 | + fill_method: Optional[str] = None, |
1651 | 1657 | how: str = "asof",
|
1652 | 1658 | tolerance=None,
|
1653 | 1659 | allow_exact_matches: bool = True,
|
@@ -2150,7 +2156,7 @@ def _validate_operand(obj: FrameOrSeries) -> "DataFrame":
|
2150 | 2156 | )
|
2151 | 2157 |
|
2152 | 2158 |
|
2153 |
| -def _items_overlap_with_suffix(left: Index, right: Index, suffixes: Tuple[str, str]): |
| 2159 | +def _items_overlap_with_suffix(left: Index, right: Index, suffixes: Suffixes): |
2154 | 2160 | """
|
2155 | 2161 | Suffixes type validation.
|
2156 | 2162 |
|
|
0 commit comments