From 19f22a19acff8e6336105b4ebea5f1aa8652d86f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20W=C3=B6rtwein?= Date: Fri, 1 Apr 2022 22:13:06 -0400 Subject: [PATCH] TYP: fix hashable keys for pd.concat --- pandas/_typing.py | 1 + pandas/core/reshape/concat.py | 19 +++++++++++-------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/pandas/_typing.py b/pandas/_typing.py index 30244e025e430..c2b59f0ecd668 100644 --- a/pandas/_typing.py +++ b/pandas/_typing.py @@ -73,6 +73,7 @@ else: npt: Any = None +HashableT = TypeVar("HashableT", bound=Hashable) # array-like diff --git a/pandas/core/reshape/concat.py b/pandas/core/reshape/concat.py index 72f3b402d49e3..17e78d3bb900a 100644 --- a/pandas/core/reshape/concat.py +++ b/pandas/core/reshape/concat.py @@ -18,7 +18,10 @@ import numpy as np -from pandas._typing import Axis +from pandas._typing import ( + Axis, + HashableT, +) from pandas.util._decorators import ( cache_readonly, deprecate_nonkeyword_arguments, @@ -62,7 +65,7 @@ @overload def concat( - objs: Iterable[DataFrame] | Mapping[Hashable, DataFrame], + objs: Iterable[DataFrame] | Mapping[HashableT, DataFrame], axis: Literal[0, "index"] = ..., join: str = ..., ignore_index: bool = ..., @@ -78,7 +81,7 @@ def concat( @overload def concat( - objs: Iterable[Series] | Mapping[Hashable, Series], + objs: Iterable[Series] | Mapping[HashableT, Series], axis: Literal[0, "index"] = ..., join: str = ..., ignore_index: bool = ..., @@ -94,7 +97,7 @@ def concat( @overload def concat( - objs: Iterable[NDFrame] | Mapping[Hashable, NDFrame], + objs: Iterable[NDFrame] | Mapping[HashableT, NDFrame], axis: Literal[0, "index"] = ..., join: str = ..., ignore_index: bool = ..., @@ -110,7 +113,7 @@ def concat( @overload def concat( - objs: Iterable[NDFrame] | Mapping[Hashable, NDFrame], + objs: Iterable[NDFrame] | Mapping[HashableT, NDFrame], axis: Literal[1, "columns"], join: str = ..., ignore_index: bool = ..., @@ -126,7 +129,7 @@ def concat( @overload def concat( - objs: Iterable[NDFrame] | Mapping[Hashable, NDFrame], + objs: Iterable[NDFrame] | Mapping[HashableT, NDFrame], axis: Axis = ..., join: str = ..., ignore_index: bool = ..., @@ -142,7 +145,7 @@ def concat( @deprecate_nonkeyword_arguments(version=None, allowed_args=["objs"]) def concat( - objs: Iterable[NDFrame] | Mapping[Hashable, NDFrame], + objs: Iterable[NDFrame] | Mapping[HashableT, NDFrame], axis: Axis = 0, join: str = "outer", ignore_index: bool = False, @@ -367,7 +370,7 @@ class _Concatenator: def __init__( self, - objs: Iterable[NDFrame] | Mapping[Hashable, NDFrame], + objs: Iterable[NDFrame] | Mapping[HashableT, NDFrame], axis=0, join: str = "outer", keys=None,