Skip to content

Commit 5a53f93

Browse files
Terji Petersentopper-123
Terji Petersen
authored andcommitted
refactor to have ._holds_integer
1 parent 2f42299 commit 5a53f93

File tree

2 files changed

+14
-9
lines changed

2 files changed

+14
-9
lines changed

pandas/core/indexes/base.py

Lines changed: 9 additions & 8 deletions
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,
@@ -2477,6 +2476,13 @@ def is_interval(self) -> bool:
24772476
"""
24782477
return self.inferred_type in ["interval"]
24792478

2479+
@final
2480+
def _holds_integer(self) -> bool:
2481+
"""
2482+
Whether the type is an integer type.
2483+
"""
2484+
return self.inferred_type in ["integer", "mixed-integer"]
2485+
24802486
@final
24812487
def holds_integer(self) -> bool:
24822488
"""
@@ -2491,7 +2497,7 @@ def holds_integer(self) -> bool:
24912497
FutureWarning,
24922498
stacklevel=find_stack_level(),
24932499
)
2494-
return self.inferred_type in ["integer", "mixed-integer"]
2500+
return self._holds_integer()
24952501

24962502
@cache_readonly
24972503
def inferred_type(self) -> str_t:
@@ -5537,12 +5543,7 @@ def _should_fallback_to_positional(self) -> bool:
55375543
"""
55385544
Should an integer key be treated as positional?
55395545
"""
5540-
if is_integer_dtype(self):
5541-
return False
5542-
elif is_object_dtype(self):
5543-
return self.inferred_type not in ["integer", "mixed-integer"]
5544-
else:
5545-
return True
5546+
return not self._holds_integer()
55465547

55475548
_index_shared_docs[
55485549
"get_indexer_non_unique"

pandas/tests/indexes/common.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -812,7 +812,11 @@ def test_is_integer_is_deprecated(self, simple_index):
812812
def test_holds_integer_deprecated(self, simple_index):
813813
# GH50243
814814
idx = simple_index
815-
with tm.assert_produces_warning(FutureWarning):
815+
msg = (
816+
f"{type(idx).__name__}.holds_integer is deprecated."
817+
"Use pandas.api.types.infer_dtype instead"
818+
)
819+
with tm.assert_produces_warning(FutureWarning, match=msg):
816820
idx.holds_integer()
817821

818822

0 commit comments

Comments
 (0)