Skip to content

Commit 839a768

Browse files
committed
deprivatize and docstring
1 parent c2a9126 commit 839a768

File tree

1 file changed

+21
-9
lines changed

1 file changed

+21
-9
lines changed

pandas/core/indexes/interval.py

+21-9
Original file line numberDiff line numberDiff line change
@@ -94,16 +94,28 @@ def _get_interval_closed_bounds(interval):
9494
return left, right
9595

9696

97-
def _maybe_convert_platform_interval(data):
97+
def maybe_convert_platform_interval(values):
9898
"""
99-
Try to do platform conversion, with special casing for IntervalIndex
99+
Try to do platform conversion, with special casing for IntervalIndex.
100+
Wrapper around maybe_convert_platform that alters the default return
101+
dtype in certain cases to be compatible with IntervalIndex. For example,
102+
empty lists return with integer dtype instead of object dtype, which is
103+
prohibited for IntervalIndex.
104+
105+
Parameters
106+
----------
107+
values : array-like
108+
109+
Returns
110+
-------
111+
array
100112
"""
101-
if isinstance(data, (list, tuple)) and len(data) == 0:
113+
if isinstance(values, (list, tuple)) and len(values) == 0:
102114
# GH 19016
103115
# empty lists/tuples get object dtype by default, but this is not
104116
# prohibited for IntervalIndex, so coerce to integer instead
105117
return np.array([], dtype=np.intp)
106-
return maybe_convert_platform(data)
118+
return maybe_convert_platform(values)
107119

108120

109121
def _new_IntervalIndex(cls, d):
@@ -220,7 +232,7 @@ def __new__(cls, data, closed=None,
220232
if is_scalar(data):
221233
cls._scalar_data_error(data)
222234

223-
data = _maybe_convert_platform_interval(data)
235+
data = maybe_convert_platform_interval(data)
224236
left, right, infer_closed = intervals_to_interval_bounds(data)
225237

226238
if _all_not_none(closed, infer_closed) and closed != infer_closed:
@@ -422,7 +434,7 @@ def from_breaks(cls, breaks, closed='right', name=None, copy=False):
422434
IntervalIndex.from_tuples : Construct an IntervalIndex from a
423435
list/array of tuples
424436
"""
425-
breaks = _maybe_convert_platform_interval(breaks)
437+
breaks = maybe_convert_platform_interval(breaks)
426438

427439
return cls.from_arrays(breaks[:-1], breaks[1:], closed,
428440
name=name, copy=copy)
@@ -463,8 +475,8 @@ def from_arrays(cls, left, right, closed='right', name=None, copy=False):
463475
IntervalIndex.from_tuples : Construct an IntervalIndex from a
464476
list/array of tuples
465477
"""
466-
left = _maybe_convert_platform_interval(left)
467-
right = _maybe_convert_platform_interval(right)
478+
left = maybe_convert_platform_interval(left)
479+
right = maybe_convert_platform_interval(right)
468480

469481
return cls._simple_new(left, right, closed, name=name,
470482
copy=copy, verify_integrity=True)
@@ -512,7 +524,7 @@ def from_intervals(cls, data, name=None, copy=False):
512524
left, right, closed = data.left, data.right, data.closed
513525
name = name or data.name
514526
else:
515-
data = _maybe_convert_platform_interval(data)
527+
data = maybe_convert_platform_interval(data)
516528
left, right, closed = intervals_to_interval_bounds(data)
517529
return cls.from_arrays(left, right, closed, name=name, copy=False)
518530

0 commit comments

Comments
 (0)