Skip to content

Commit

Permalink
clean up indexing/index method names to make all module public (rathe…
Browse files Browse the repository at this point in the history
…r than _ leading)
  • Loading branch information
jreback committed Feb 15, 2015
1 parent 379e145 commit 00dbf3d
Show file tree
Hide file tree
Showing 10 changed files with 118 additions and 125 deletions.
9 changes: 4 additions & 5 deletions pandas/core/categorical.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,14 @@
from pandas.core.algorithms import factorize
from pandas.core.base import PandasObject, PandasDelegate
from pandas.core.index import Index, _ensure_index
from pandas.core.indexing import _is_null_slice
from pandas.tseries.period import PeriodIndex
import pandas.core.common as com
from pandas.util.decorators import cache_readonly

from pandas.core.common import (CategoricalDtype, ABCSeries, isnull, notnull,
is_categorical_dtype, is_integer_dtype, is_object_dtype,
_possibly_infer_to_datetimelike, get_dtype_kinds,
is_list_like, is_sequence,
is_list_like, is_sequence, is_null_slice,
_ensure_platform_int, _ensure_object, _ensure_int64,
_coerce_indexer_dtype, _values_from_object, take_1d)
from pandas.util.terminal import get_terminal_size
Expand Down Expand Up @@ -78,7 +77,7 @@ def f(self, other):

return f

def _maybe_to_categorical(array):
def maybe_to_categorical(array):
""" coerce to a categorical if a series is given """
if isinstance(array, ABCSeries):
return array.values
Expand Down Expand Up @@ -1116,7 +1115,7 @@ def _slice(self, slicer):
# only allow 1 dimensional slicing, but can
# in a 2-d case be passd (slice(None),....)
if isinstance(slicer, tuple) and len(slicer) == 2:
if not _is_null_slice(slicer[0]):
if not is_null_slice(slicer[0]):
raise AssertionError("invalid slicing for a 1-ndim categorical")
slicer = slicer[1]

Expand Down Expand Up @@ -1263,7 +1262,7 @@ def __setitem__(self, key, value):
# only allow 1 dimensional slicing, but can
# in a 2-d case be passd (slice(None),....)
if len(key) == 2:
if not _is_null_slice(key[0]):
if not is_null_slice(key[0]):
raise AssertionError("invalid slicing for a 1-ndim categorical")
key = key[1]
elif len(key) == 1:
Expand Down
6 changes: 5 additions & 1 deletion pandas/core/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -2544,9 +2544,13 @@ def is_re_compilable(obj):


def is_list_like(arg):
return (hasattr(arg, '__iter__') and
return (hasattr(arg, '__iter__') and
not isinstance(arg, compat.string_and_binary_types))

def is_null_slice(obj):
return (isinstance(obj, slice) and obj.start is None and
obj.stop is None and obj.step is None)


def is_hashable(arg):
"""Return True if hash(arg) will succeed, False otherwise.
Expand Down
20 changes: 10 additions & 10 deletions pandas/core/frame.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@
is_categorical_dtype)
from pandas.core.generic import NDFrame, _shared_docs
from pandas.core.index import Index, MultiIndex, _ensure_index
from pandas.core.indexing import (_maybe_droplevels,
_convert_to_index_sliceable,
_check_bool_indexer)
from pandas.core.indexing import (maybe_droplevels,
convert_to_index_sliceable,
check_bool_indexer)
from pandas.core.internals import (BlockManager,
create_block_manager_from_arrays,
create_block_manager_from_blocks)
Expand Down Expand Up @@ -1765,7 +1765,7 @@ def __getitem__(self, key):
pass

# see if we can slice the rows
indexer = _convert_to_index_sliceable(self, key)
indexer = convert_to_index_sliceable(self, key)
if indexer is not None:
return self._getitem_slice(indexer)

Expand Down Expand Up @@ -1809,9 +1809,9 @@ def _getitem_array(self, key):
elif len(key) != len(self.index):
raise ValueError('Item wrong length %d instead of %d.' %
(len(key), len(self.index)))
# _check_bool_indexer will throw exception if Series key cannot
# check_bool_indexer will throw exception if Series key cannot
# be reindexed to match DataFrame rows
key = _check_bool_indexer(self.index, key)
key = check_bool_indexer(self.index, key)
indexer = key.nonzero()[0]
return self.take(indexer, axis=0, convert=False)
else:
Expand All @@ -1822,7 +1822,7 @@ def _getitem_multilevel(self, key):
loc = self.columns.get_loc(key)
if isinstance(loc, (slice, Series, np.ndarray, Index)):
new_columns = self.columns[loc]
result_columns = _maybe_droplevels(new_columns, key)
result_columns = maybe_droplevels(new_columns, key)
if self._is_mixed_type:
result = self.reindex(columns=new_columns)
result.columns = result_columns
Expand Down Expand Up @@ -2097,7 +2097,7 @@ def _box_col_values(self, values, items):
def __setitem__(self, key, value):

# see if we can slice the rows
indexer = _convert_to_index_sliceable(self, key)
indexer = convert_to_index_sliceable(self, key)
if indexer is not None:
return self._setitem_slice(indexer, value)

Expand All @@ -2119,7 +2119,7 @@ def _setitem_array(self, key, value):
if len(key) != len(self.index):
raise ValueError('Item wrong length %d instead of %d!' %
(len(key), len(self.index)))
key = _check_bool_indexer(self.index, key)
key = check_bool_indexer(self.index, key)
indexer = key.nonzero()[0]
self._check_setitem_copy()
self.ix._setitem_with_indexer(indexer, value)
Expand Down Expand Up @@ -2246,7 +2246,7 @@ def reindexer(value):
if isinstance(self.columns, MultiIndex) and key in self.columns:
loc = self.columns.get_loc(key)
if isinstance(loc, (slice, Series, np.ndarray, Index)):
cols = _maybe_droplevels(self.columns[loc], key)
cols = maybe_droplevels(self.columns[loc], key)
if len(cols) and not cols.equals(value.columns):
value = value.reindex_axis(cols, axis=1)
# now align rows
Expand Down
34 changes: 16 additions & 18 deletions pandas/core/index.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
import pandas.core.common as com
from pandas.core.common import (_values_from_object, is_float, is_integer,
ABCSeries, _ensure_object, _ensure_int64, is_bool_indexer,
is_list_like, is_bool_dtype, is_integer_dtype)
is_list_like, is_bool_dtype, is_null_slice, is_integer_dtype)
from pandas.core.config import get_option
from pandas.io.common import PerformanceWarning

Expand Down Expand Up @@ -720,7 +720,7 @@ def validate(v):
def is_int(v):
return v is None or is_integer(v)

is_null_slice = start is None and stop is None
is_null_slicer = start is None and stop is None
is_index_slice = is_int(start) and is_int(stop)
is_positional = is_index_slice and not self.is_integer()

Expand All @@ -742,7 +742,7 @@ def is_int(v):
if self.inferred_type == 'mixed-integer-float':
raise

if is_null_slice:
if is_null_slicer:
indexer = key
elif is_positional:
indexer = key
Expand Down Expand Up @@ -2615,7 +2615,7 @@ def get_value(self, series, key):
if not np.isscalar(key):
raise InvalidIndexError

from pandas.core.indexing import _maybe_droplevels
from pandas.core.indexing import maybe_droplevels
from pandas.core.series import Series

k = _values_from_object(key)
Expand All @@ -2626,7 +2626,7 @@ def get_value(self, series, key):
return new_values

new_index = self[loc]
new_index = _maybe_droplevels(new_index, k)
new_index = maybe_droplevels(new_index, k)
return Series(new_values, index=new_index, name=series.name)

def equals(self, other):
Expand Down Expand Up @@ -3245,7 +3245,7 @@ def duplicated(self, take_last=False):

def get_value(self, series, key):
# somewhat broken encapsulation
from pandas.core.indexing import _maybe_droplevels
from pandas.core.indexing import maybe_droplevels
from pandas.core.series import Series

# Label-based
Expand All @@ -3257,7 +3257,7 @@ def _try_mi(k):
loc = self.get_loc(k)
new_values = series.values[loc]
new_index = self[loc]
new_index = _maybe_droplevels(new_index, k)
new_index = maybe_droplevels(new_index, k)
return Series(new_values, index=new_index, name=series.name)

try:
Expand Down Expand Up @@ -4192,7 +4192,7 @@ def get_loc_level(self, key, level=0, drop_level=True):
-------
loc : int or slice object
"""
def _maybe_drop_levels(indexer, levels, drop_level):
def maybe_droplevels(indexer, levels, drop_level):
if not drop_level:
return self[indexer]
# kludgearound
Expand Down Expand Up @@ -4221,7 +4221,7 @@ def _maybe_drop_levels(indexer, levels, drop_level):

result = loc if result is None else result & loc

return result, _maybe_drop_levels(result, level, drop_level)
return result, maybe_droplevels(result, level, drop_level)

level = self._get_level_number(level)

Expand All @@ -4234,7 +4234,7 @@ def _maybe_drop_levels(indexer, levels, drop_level):
try:
if key in self.levels[0]:
indexer = self._get_level_indexer(key, level=level)
new_index = _maybe_drop_levels(indexer, [0], drop_level)
new_index = maybe_droplevels(indexer, [0], drop_level)
return indexer, new_index
except TypeError:
pass
Expand All @@ -4248,8 +4248,8 @@ def partial_selection(key, indexer=None):
indexer = self.get_loc(key)
ilevels = [i for i in range(len(key))
if key[i] != slice(None, None)]
return indexer, _maybe_drop_levels(indexer, ilevels,
drop_level)
return indexer, maybe_droplevels(indexer, ilevels,
drop_level)

if len(key) == self.nlevels:

Expand Down Expand Up @@ -4307,11 +4307,11 @@ def partial_selection(key, indexer=None):
indexer = slice(None, None)
ilevels = [i for i in range(len(key))
if key[i] != slice(None, None)]
return indexer, _maybe_drop_levels(indexer, ilevels,
drop_level)
return indexer, maybe_droplevels(indexer, ilevels,
drop_level)
else:
indexer = self._get_level_indexer(key, level=level)
return indexer, _maybe_drop_levels(indexer, [level], drop_level)
return indexer, maybe_droplevels(indexer, [level], drop_level)

def _get_level_indexer(self, key, level=0):
# return a boolean indexer or a slice showing where the key is
Expand Down Expand Up @@ -4388,8 +4388,6 @@ def get_locs(self, tup):
for passing to iloc
"""

from pandas.core.indexing import _is_null_slice

# must be lexsorted to at least as many levels
if not self.is_lexsorted_for_tuple(tup):
raise KeyError('MultiIndex Slicing requires the index to be fully lexsorted'
Expand Down Expand Up @@ -4427,7 +4425,7 @@ def _convert_indexer(r):
else:
ranges.append(np.zeros(self.labels[i].shape, dtype=bool))

elif _is_null_slice(k):
elif is_null_slice(k):
# empty slice
pass

Expand Down
Loading

0 comments on commit 00dbf3d

Please sign in to comment.