Skip to content

Commit b71819a

Browse files
Terji PetersenTerji Petersen
Terji Petersen
authored and
Terji Petersen
committed
remove usage of hold_integer, keep .inferred_type
1 parent edba572 commit b71819a

File tree

4 files changed

+11
-19
lines changed

4 files changed

+11
-19
lines changed

pandas/core/dtypes/common.py

-7
Original file line numberDiff line numberDiff line change
@@ -1591,13 +1591,6 @@ def infer_dtype_from_object(dtype) -> type:
15911591
return infer_dtype_from_object(np.dtype(dtype))
15921592

15931593

1594-
def holds_integer(value) -> bool:
1595-
"""
1596-
Whether the type is an integer type.
1597-
"""
1598-
return lib.infer_dtype(value) in ["integer", "mixed-integer"]
1599-
1600-
16011594
def _validate_date_like_dtype(dtype) -> None:
16021595
"""
16031596
Check whether the dtype is a date-like dtype. Raises an error if invalid.

pandas/core/indexes/base.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,6 @@
8888
ensure_int64,
8989
ensure_object,
9090
ensure_platform_int,
91-
holds_integer,
9291
is_bool_dtype,
9392
is_categorical_dtype,
9493
is_complex_dtype,
@@ -99,6 +98,7 @@
9998
is_float_dtype,
10099
is_hashable,
101100
is_integer,
101+
is_integer_dtype,
102102
is_interval_dtype,
103103
is_iterator,
104104
is_list_like,
@@ -2477,7 +2477,7 @@ def holds_integer(self) -> bool:
24772477
FutureWarning,
24782478
stacklevel=find_stack_level(),
24792479
)
2480-
return holds_integer(self._values)
2480+
return self.inferred_type in ["integer", "mixed-integer"]
24812481

24822482
@cache_readonly
24832483
def inferred_type(self) -> str_t:
@@ -5522,7 +5522,7 @@ def _should_fallback_to_positional(self) -> bool:
55225522
"""
55235523
Should an integer key be treated as positional?
55245524
"""
5525-
return not holds_integer(self)
5525+
return self.inferred_type not in ["integer", "mixed-integer"]
55265526

55275527
_index_shared_docs[
55285528
"get_indexer_non_unique"

pandas/plotting/_core.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
)
1717

1818
from pandas.core.dtypes.common import (
19-
holds_integer,
2019
is_integer,
20+
is_integer_dtype,
2121
is_list_like,
2222
)
2323
from pandas.core.dtypes.generic import (
@@ -940,15 +940,15 @@ def __call__(self, *args, **kwargs):
940940
f"{kind} requires either y column or 'subplots=True'"
941941
)
942942
if y is not None:
943-
if is_integer(y) and not holds_integer(data.columns):
943+
if is_integer(y) and not is_integer_dtype(data.columns):
944944
y = data.columns[y]
945945
# converted to series actually. copy to not modify
946946
data = data[y].copy()
947947
data.index.name = y
948948
elif isinstance(data, ABCDataFrame):
949949
data_cols = data.columns
950950
if x is not None:
951-
if is_integer(x) and not holds_integer(data.columns):
951+
if is_integer(x) and not is_integer_dtype(data.columns):
952952
x = data_cols[x]
953953
elif not isinstance(data[x], ABCSeries):
954954
raise ValueError("x must be a label or position")
@@ -957,7 +957,7 @@ def __call__(self, *args, **kwargs):
957957
# check if we have y as int or list of ints
958958
int_ylist = is_list_like(y) and all(is_integer(c) for c in y)
959959
int_y_arg = is_integer(y) or int_ylist
960-
if int_y_arg and not holds_integer(data.columns):
960+
if int_y_arg and not is_integer_dtype(data.columns):
961961
y = data_cols[y]
962962

963963
label_kw = kwargs["label"] if "label" in kwargs else False

pandas/plotting/_matplotlib/core.py

+4-5
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
from pandas.util._exceptions import find_stack_level
2828

2929
from pandas.core.dtypes.common import (
30-
holds_integer,
3130
is_categorical_dtype,
3231
is_extension_array_dtype,
3332
is_float,
@@ -1136,9 +1135,9 @@ def __init__(self, data, x, y, **kwargs) -> None:
11361135
MPLPlot.__init__(self, data, **kwargs)
11371136
if x is None or y is None:
11381137
raise ValueError(self._kind + " requires an x and y column")
1139-
if is_integer(x) and not holds_integer(self.data.columns):
1138+
if is_integer(x) and not is_integer_dtype(self.data.columns):
11401139
x = self.data.columns[x]
1141-
if is_integer(y) and not holds_integer(self.data.columns):
1140+
if is_integer(y) and not is_integer_dtype(self.data.columns):
11421141
y = self.data.columns[y]
11431142

11441143
# Scatter plot allows to plot objects data
@@ -1195,7 +1194,7 @@ def __init__(self, data, x, y, s=None, c=None, **kwargs) -> None:
11951194
elif is_hashable(s) and s in data.columns:
11961195
s = data[s]
11971196
super().__init__(data, x, y, s=s, **kwargs)
1198-
if is_integer(c) and not holds_integer(self.data.columns):
1197+
if is_integer(c) and not is_integer_dtype(self.data.columns):
11991198
c = self.data.columns[c]
12001199
self.c = c
12011200

@@ -1287,7 +1286,7 @@ def _kind(self) -> Literal["hexbin"]:
12871286

12881287
def __init__(self, data, x, y, C=None, **kwargs) -> None:
12891288
super().__init__(data, x, y, **kwargs)
1290-
if is_integer(C) and not holds_integer(self.data.columns):
1289+
if is_integer(C) and not is_integer_dtype(self.data.columns):
12911290
C = self.data.columns[C]
12921291
self.C = C
12931292

0 commit comments

Comments
 (0)