Skip to content

Commit 1b113ca

Browse files
Terji PetersenTerji Petersen
Terji Petersen
authored and
Terji Petersen
committed
refactor to have ._holds_integer
1 parent cd03c1f commit 1b113ca

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,
@@ -2463,6 +2462,13 @@ def is_interval(self) -> bool:
24632462
"""
24642463
return self.inferred_type in ["interval"]
24652464

2465+
@final
2466+
def _holds_integer(self) -> bool:
2467+
"""
2468+
Whether the type is an integer type.
2469+
"""
2470+
return self.inferred_type in ["integer", "mixed-integer"]
2471+
24662472
@final
24672473
def holds_integer(self) -> bool:
24682474
"""
@@ -2477,7 +2483,7 @@ def holds_integer(self) -> bool:
24772483
FutureWarning,
24782484
stacklevel=find_stack_level(),
24792485
)
2480-
return self.inferred_type in ["integer", "mixed-integer"]
2486+
return self._holds_integer()
24812487

24822488
@cache_readonly
24832489
def inferred_type(self) -> str_t:
@@ -5522,12 +5528,7 @@ def _should_fallback_to_positional(self) -> bool:
55225528
"""
55235529
Should an integer key be treated as positional?
55245530
"""
5525-
if is_integer_dtype(self):
5526-
return False
5527-
elif is_object_dtype(self):
5528-
return self.inferred_type not in ["integer", "mixed-integer"]
5529-
else:
5530-
return True
5531+
return not self._holds_integer()
55315532

55325533
_index_shared_docs[
55335534
"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)