|
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