Skip to content

Commit 26a0771

Browse files
Terji PetersenTerji Petersen
Terji Petersen
authored and
Terji Petersen
committed
refactor to have ._holds_integer
1 parent d838d76 commit 26a0771

File tree

2 files changed

+14
-9
lines changed

2 files changed

+14
-9
lines changed

pandas/core/indexes/base.py

+9-8
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,6 @@
9898
is_float_dtype,
9999
is_hashable,
100100
is_integer,
101-
is_integer_dtype,
102101
is_interval_dtype,
103102
is_iterator,
104103
is_list_like,
@@ -2461,6 +2460,13 @@ def is_interval(self) -> bool:
24612460
"""
24622461
return self.inferred_type in ["interval"]
24632462

2463+
@final
2464+
def _holds_integer(self) -> bool:
2465+
"""
2466+
Whether the type is an integer type.
2467+
"""
2468+
return self.inferred_type in ["integer", "mixed-integer"]
2469+
24642470
@final
24652471
def holds_integer(self) -> bool:
24662472
"""
@@ -2475,7 +2481,7 @@ def holds_integer(self) -> bool:
24752481
FutureWarning,
24762482
stacklevel=find_stack_level(),
24772483
)
2478-
return self.inferred_type in ["integer", "mixed-integer"]
2484+
return self._holds_integer()
24792485

24802486
@cache_readonly
24812487
def inferred_type(self) -> str_t:
@@ -5544,12 +5550,7 @@ def _should_fallback_to_positional(self) -> bool:
55445550
"""
55455551
Should an integer key be treated as positional?
55465552
"""
5547-
if is_integer_dtype(self):
5548-
return False
5549-
elif is_object_dtype(self):
5550-
return self.inferred_type not in ["integer", "mixed-integer"]
5551-
else:
5552-
return True
5553+
return not self._holds_integer()
55535554

55545555
_index_shared_docs[
55555556
"get_indexer_non_unique"

pandas/tests/indexes/common.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -798,7 +798,11 @@ def test_inv(self, simple_index):
798798
def test_holds_integer_deprecated(self, simple_index):
799799
# GH50243
800800
idx = simple_index
801-
with tm.assert_produces_warning(FutureWarning):
801+
msg = (
802+
f"{type(idx).__name__}.holds_integer is deprecated."
803+
"Use pandas.api.types.infer_dtype instead"
804+
)
805+
with tm.assert_produces_warning(FutureWarning, match=msg):
802806
idx.holds_integer()
803807

804808

0 commit comments

Comments
 (0)