Skip to content

Commit 7d09951

Browse files
committed
better casting
1 parent 0fc8740 commit 7d09951

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

pandas/core/indexes/range.py

+8-6
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
Any,
99
Callable,
1010
Hashable,
11+
List,
1112
cast,
1213
)
1314
import warnings
@@ -761,10 +762,10 @@ def _concat(self, indexes: list[Index], name: Hashable) -> Index:
761762
if not all(isinstance(x, RangeIndex) for x in indexes):
762763
return super()._concat(indexes, name)
763764

764-
rng_indexes: list[RangeIndex] = [cast(RangeIndex, obj) for obj in indexes]
765+
elif len(indexes) == 1:
766+
return indexes[0]
765767

766-
if len(indexes) == 1:
767-
return rng_indexes[0]
768+
rng_indexes = cast(List[RangeIndex], indexes)
768769

769770
start = step = next_ = None
770771

@@ -782,9 +783,8 @@ def _concat(self, indexes: list[Index], name: Hashable) -> Index:
782783
elif step is None:
783784
# First non-empty index had only one element
784785
if rng.start == start:
785-
result = Int64Index(
786-
np.concatenate([x._values for x in rng_indexes])
787-
)
786+
values = np.concatenate([x._values for x in rng_indexes])
787+
result = Int64Index(values)
788788
return result.rename(name)
789789

790790
step = rng.start - start
@@ -800,6 +800,8 @@ def _concat(self, indexes: list[Index], name: Hashable) -> Index:
800800
next_ = rng[-1] + step
801801

802802
if non_empty_indexes:
803+
# Get the stop value from "next" or alternatively
804+
# from the last non-empty index
803805
stop = non_empty_indexes[-1].stop if next_ is None else next_
804806
return RangeIndex(start, stop, step).rename(name)
805807

0 commit comments

Comments
 (0)