1111from typing import (
1212 TYPE_CHECKING ,
1313 Hashable ,
14- List ,
15- Optional ,
16- Tuple ,
1714 cast ,
1815)
1916import warnings
@@ -94,16 +91,16 @@ def merge(
9491 left : FrameOrSeriesUnion ,
9592 right : FrameOrSeriesUnion ,
9693 how : str = "inner" ,
97- on : Optional [ IndexLabel ] = None ,
98- left_on : Optional [ IndexLabel ] = None ,
99- right_on : Optional [ IndexLabel ] = None ,
94+ on : IndexLabel | None = None ,
95+ left_on : IndexLabel | None = None ,
96+ right_on : IndexLabel | None = None ,
10097 left_index : bool = False ,
10198 right_index : bool = False ,
10299 sort : bool = False ,
103100 suffixes : Suffixes = ("_x" , "_y" ),
104101 copy : bool = True ,
105102 indicator : bool = False ,
106- validate : Optional [ str ] = None ,
103+ validate : str | None = None ,
107104) -> DataFrame :
108105 op = _MergeOperation (
109106 left ,
@@ -143,7 +140,7 @@ def _groupby_and_merge(by, left: DataFrame, right: DataFrame, merge_pieces):
143140 by = [by ]
144141
145142 lby = left .groupby (by , sort = False )
146- rby : Optional [ groupby .DataFrameGroupBy ] = None
143+ rby : groupby .DataFrameGroupBy | None = None
147144
148145 # if we can groupby the rhs
149146 # then we can get vastly better perf
@@ -186,12 +183,12 @@ def _groupby_and_merge(by, left: DataFrame, right: DataFrame, merge_pieces):
186183def merge_ordered (
187184 left : DataFrame ,
188185 right : DataFrame ,
189- on : Optional [ IndexLabel ] = None ,
190- left_on : Optional [ IndexLabel ] = None ,
191- right_on : Optional [ IndexLabel ] = None ,
186+ on : IndexLabel | None = None ,
187+ left_on : IndexLabel | None = None ,
188+ right_on : IndexLabel | None = None ,
192189 left_by = None ,
193190 right_by = None ,
194- fill_method : Optional [ str ] = None ,
191+ fill_method : str | None = None ,
195192 suffixes : Suffixes = ("_x" , "_y" ),
196193 how : str = "outer" ,
197194) -> DataFrame :
@@ -327,9 +324,9 @@ def _merger(x, y) -> DataFrame:
327324def merge_asof (
328325 left : DataFrame ,
329326 right : DataFrame ,
330- on : Optional [ IndexLabel ] = None ,
331- left_on : Optional [ IndexLabel ] = None ,
332- right_on : Optional [ IndexLabel ] = None ,
327+ on : IndexLabel | None = None ,
328+ left_on : IndexLabel | None = None ,
329+ right_on : IndexLabel | None = None ,
333330 left_index : bool = False ,
334331 right_index : bool = False ,
335332 by = None ,
@@ -614,17 +611,17 @@ def __init__(
614611 left : FrameOrSeriesUnion ,
615612 right : FrameOrSeriesUnion ,
616613 how : str = "inner" ,
617- on : Optional [ IndexLabel ] = None ,
618- left_on : Optional [ IndexLabel ] = None ,
619- right_on : Optional [ IndexLabel ] = None ,
614+ on : IndexLabel | None = None ,
615+ left_on : IndexLabel | None = None ,
616+ right_on : IndexLabel | None = None ,
620617 axis : int = 1 ,
621618 left_index : bool = False ,
622619 right_index : bool = False ,
623620 sort : bool = True ,
624621 suffixes : Suffixes = ("_x" , "_y" ),
625622 copy : bool = True ,
626623 indicator : bool = False ,
627- validate : Optional [ str ] = None ,
624+ validate : str | None = None ,
628625 ):
629626 _left = _validate_operand (left )
630627 _right = _validate_operand (right )
@@ -650,7 +647,7 @@ def __init__(
650647
651648 self .indicator = indicator
652649
653- self .indicator_name : Optional [ str ]
650+ self .indicator_name : str | None
654651 if isinstance (self .indicator , str ):
655652 self .indicator_name = self .indicator
656653 elif isinstance (self .indicator , bool ):
@@ -743,14 +740,14 @@ def get_result(self) -> DataFrame:
743740 return result .__finalize__ (self , method = "merge" )
744741
745742 def _maybe_drop_cross_column (
746- self , result : DataFrame , cross_col : Optional [ str ]
743+ self , result : DataFrame , cross_col : str | None
747744 ) -> None :
748745 if cross_col is not None :
749746 result .drop (columns = cross_col , inplace = True )
750747
751748 def _indicator_pre_merge (
752749 self , left : DataFrame , right : DataFrame
753- ) -> Tuple [DataFrame , DataFrame ]:
750+ ) -> tuple [DataFrame , DataFrame ]:
754751
755752 columns = left .columns .union (right .columns )
756753
@@ -830,8 +827,8 @@ def _maybe_restore_index_levels(self, result: DataFrame) -> None:
830827 def _maybe_add_join_keys (
831828 self ,
832829 result : DataFrame ,
833- left_indexer : Optional [ np .ndarray ] ,
834- right_indexer : Optional [ np .ndarray ] ,
830+ left_indexer : np .ndarray | None ,
831+ right_indexer : np .ndarray | None ,
835832 ) -> None :
836833
837834 left_has_missing = None
@@ -1274,7 +1271,7 @@ def _maybe_coerce_merge_keys(self) -> None:
12741271
12751272 def _create_cross_configuration (
12761273 self , left : DataFrame , right : DataFrame
1277- ) -> Tuple [DataFrame , DataFrame , str , str ]:
1274+ ) -> tuple [DataFrame , DataFrame , str , str ]:
12781275 """
12791276 Creates the configuration to dispatch the cross operation to inner join,
12801277 e.g. adding a join column and resetting parameters. Join column is added
@@ -1498,7 +1495,7 @@ def restore_dropped_levels_multijoin(
14981495 join_index : Index ,
14991496 lindexer : np .ndarray ,
15001497 rindexer : np .ndarray ,
1501- ) -> Tuple [ List [Index ], np .ndarray , List [Hashable ]]:
1498+ ) -> tuple [ list [Index ], np .ndarray , list [Hashable ]]:
15021499 """
15031500 *this is an internal non-public method*
15041501
@@ -1592,15 +1589,15 @@ def __init__(
15921589 self ,
15931590 left : DataFrame ,
15941591 right : DataFrame ,
1595- on : Optional [ IndexLabel ] = None ,
1596- left_on : Optional [ IndexLabel ] = None ,
1597- right_on : Optional [ IndexLabel ] = None ,
1592+ on : IndexLabel | None = None ,
1593+ left_on : IndexLabel | None = None ,
1594+ right_on : IndexLabel | None = None ,
15981595 left_index : bool = False ,
15991596 right_index : bool = False ,
16001597 axis : int = 1 ,
16011598 suffixes : Suffixes = ("_x" , "_y" ),
16021599 copy : bool = True ,
1603- fill_method : Optional [ str ] = None ,
1600+ fill_method : str | None = None ,
16041601 how : str = "outer" ,
16051602 ):
16061603
@@ -1686,9 +1683,9 @@ def __init__(
16861683 self ,
16871684 left : DataFrame ,
16881685 right : DataFrame ,
1689- on : Optional [ IndexLabel ] = None ,
1690- left_on : Optional [ IndexLabel ] = None ,
1691- right_on : Optional [ IndexLabel ] = None ,
1686+ on : IndexLabel | None = None ,
1687+ left_on : IndexLabel | None = None ,
1688+ right_on : IndexLabel | None = None ,
16921689 left_index : bool = False ,
16931690 right_index : bool = False ,
16941691 by = None ,
@@ -1697,7 +1694,7 @@ def __init__(
16971694 axis : int = 1 ,
16981695 suffixes : Suffixes = ("_x" , "_y" ),
16991696 copy : bool = True ,
1700- fill_method : Optional [ str ] = None ,
1697+ fill_method : str | None = None ,
17011698 how : str = "asof" ,
17021699 tolerance = None ,
17031700 allow_exact_matches : bool = True ,
@@ -2031,7 +2028,7 @@ def _left_join_on_index(
20312028
20322029def _factorize_keys (
20332030 lk : ArrayLike , rk : ArrayLike , sort : bool = True , how : str = "inner"
2034- ) -> Tuple [np .ndarray , np .ndarray , int ]:
2031+ ) -> tuple [np .ndarray , np .ndarray , int ]:
20352032 """
20362033 Encode left and right keys as enumerated types.
20372034
0 commit comments