Skip to content

Commit

Permalink
API: Make is_strictly_monotonic_* private
Browse files Browse the repository at this point in the history
  • Loading branch information
TomAugspurger committed Jun 1, 2017
1 parent 4ec98d8 commit e2e7533
Show file tree
Hide file tree
Showing 8 changed files with 49 additions and 52 deletions.
2 changes: 0 additions & 2 deletions doc/source/api.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1286,8 +1286,6 @@ Attributes
Index.is_monotonic
Index.is_monotonic_increasing
Index.is_monotonic_decreasing
Index.is_strictly_monotonic_increasing
Index.is_strictly_monotonic_decreasing
Index.is_unique
Index.has_duplicates
Index.dtype
Expand Down
1 change: 0 additions & 1 deletion doc/source/whatsnew/v0.20.2.txt
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ Enhancements

- Unblocked access to additional compression types supported in pytables: 'blosc:blosclz, 'blosc:lz4', 'blosc:lz4hc', 'blosc:snappy', 'blosc:zlib', 'blosc:zstd' (:issue:`14478`)
- ``Series`` provides a ``to_latex`` method (:issue:`16180`)
- Added :attr:`Index.is_strictly_monotonic_increasing` and :attr:`Index.is_strictly_monotonic_decreasing` properties (:issue:`16515`)

.. _whatsnew_0202.performance:

Expand Down
16 changes: 8 additions & 8 deletions pandas/core/indexes/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -1221,33 +1221,33 @@ def is_monotonic_decreasing(self):
return self._engine.is_monotonic_decreasing

@property
def is_strictly_monotonic_increasing(self):
def _is_strictly_monotonic_increasing(self):
"""return if the index is strictly monotonic increasing
(only increasing) values
Examples
--------
>>> Index([1, 2, 3]).is_strictly_monotonic_increasing
>>> Index([1, 2, 3])._is_strictly_monotonic_increasing
True
>>> Index([1, 2, 2]).is_strictly_monotonic_increasing
>>> Index([1, 2, 2])._is_strictly_monotonic_increasing
False
>>> Index([1, 3, 2]).is_strictly_monotonic_increasing
>>> Index([1, 3, 2])._is_strictly_monotonic_increasing
False
"""
return self.is_unique and self.is_monotonic_increasing

@property
def is_strictly_monotonic_decreasing(self):
def _is_strictly_monotonic_decreasing(self):
"""return if the index is strictly monotonic decreasing
(only decreasing) values
Examples
--------
>>> Index([3, 2, 1]).is_strictly_monotonic_decreasing
>>> Index([3, 2, 1])._is_strictly_monotonic_decreasing
True
>>> Index([3, 2, 2]).is_strictly_monotonic_decreasing
>>> Index([3, 2, 2])._is_strictly_monotonic_decreasing
False
>>> Index([3, 1, 2]).is_strictly_monotonic_decreasing
>>> Index([3, 1, 2])._is_strictly_monotonic_decreasing
False
"""
return self.is_unique and self.is_monotonic_decreasing
Expand Down
2 changes: 1 addition & 1 deletion pandas/core/indexes/datetimes.py
Original file line number Diff line number Diff line change
Expand Up @@ -1472,7 +1472,7 @@ def _maybe_cast_slice_bound(self, label, side, kind):
# the bounds need swapped if index is reverse sorted and has a
# length > 1 (is_monotonic_decreasing gives True for empty
# and length 1 index)
if self.is_strictly_monotonic_decreasing and len(self) > 1:
if self._is_strictly_monotonic_decreasing and len(self) > 1:
return upper if side == 'left' else lower
return lower if side == 'left' else upper
else:
Expand Down
8 changes: 4 additions & 4 deletions pandas/tests/indexes/test_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -1330,8 +1330,8 @@ def test_is_monotonic_incomparable(self):
index = Index([5, datetime.now(), 7])
assert not index.is_monotonic_increasing
assert not index.is_monotonic_decreasing
assert not index.is_strictly_monotonic_increasing
assert not index.is_strictly_monotonic_decreasing
assert not index._is_strictly_monotonic_increasing
assert not index._is_strictly_monotonic_decreasing

def test_get_set_value(self):
values = np.random.randn(100)
Expand Down Expand Up @@ -2030,8 +2030,8 @@ def test_is_monotonic_na(self):
for index in examples:
assert not index.is_monotonic_increasing
assert not index.is_monotonic_decreasing
assert not index.is_strictly_monotonic_increasing
assert not index.is_strictly_monotonic_decreasing
assert not index._is_strictly_monotonic_increasing
assert not index._is_strictly_monotonic_decreasing

def test_repr_summary(self):
with cf.option_context('display.max_seq_items', 10):
Expand Down
32 changes: 16 additions & 16 deletions pandas/tests/indexes/test_multi.py
Original file line number Diff line number Diff line change
Expand Up @@ -2373,30 +2373,30 @@ def test_is_monotonic(self):
i = MultiIndex.from_product([np.arange(10),
np.arange(10)], names=['one', 'two'])
assert i.is_monotonic
assert i.is_strictly_monotonic_increasing
assert i._is_strictly_monotonic_increasing
assert Index(i.values).is_monotonic
assert i.is_strictly_monotonic_increasing
assert i._is_strictly_monotonic_increasing

i = MultiIndex.from_product([np.arange(10, 0, -1),
np.arange(10)], names=['one', 'two'])
assert not i.is_monotonic
assert not i.is_strictly_monotonic_increasing
assert not i._is_strictly_monotonic_increasing
assert not Index(i.values).is_monotonic
assert not Index(i.values).is_strictly_monotonic_increasing
assert not Index(i.values)._is_strictly_monotonic_increasing

i = MultiIndex.from_product([np.arange(10),
np.arange(10, 0, -1)],
names=['one', 'two'])
assert not i.is_monotonic
assert not i.is_strictly_monotonic_increasing
assert not i._is_strictly_monotonic_increasing
assert not Index(i.values).is_monotonic
assert not Index(i.values).is_strictly_monotonic_increasing
assert not Index(i.values)._is_strictly_monotonic_increasing

i = MultiIndex.from_product([[1.0, np.nan, 2.0], ['a', 'b', 'c']])
assert not i.is_monotonic
assert not i.is_strictly_monotonic_increasing
assert not i._is_strictly_monotonic_increasing
assert not Index(i.values).is_monotonic
assert not Index(i.values).is_strictly_monotonic_increasing
assert not Index(i.values)._is_strictly_monotonic_increasing

# string ordering
i = MultiIndex(levels=[['foo', 'bar', 'baz', 'qux'],
Expand All @@ -2406,8 +2406,8 @@ def test_is_monotonic(self):
names=['first', 'second'])
assert not i.is_monotonic
assert not Index(i.values).is_monotonic
assert not i.is_strictly_monotonic_increasing
assert not Index(i.values).is_strictly_monotonic_increasing
assert not i._is_strictly_monotonic_increasing
assert not Index(i.values)._is_strictly_monotonic_increasing

i = MultiIndex(levels=[['bar', 'baz', 'foo', 'qux'],
['mom', 'next', 'zenith']],
Expand All @@ -2416,8 +2416,8 @@ def test_is_monotonic(self):
names=['first', 'second'])
assert i.is_monotonic
assert Index(i.values).is_monotonic
assert i.is_strictly_monotonic_increasing
assert Index(i.values).is_strictly_monotonic_increasing
assert i._is_strictly_monotonic_increasing
assert Index(i.values)._is_strictly_monotonic_increasing

# mixed levels, hits the TypeError
i = MultiIndex(
Expand All @@ -2428,20 +2428,20 @@ def test_is_monotonic(self):
names=['household_id', 'asset_id'])

assert not i.is_monotonic
assert not i.is_strictly_monotonic_increasing
assert not i._is_strictly_monotonic_increasing

def test_is_strictly_monotonic(self):
idx = pd.MultiIndex(levels=[['bar', 'baz'], ['mom', 'next']],
labels=[[0, 0, 1, 1], [0, 0, 0, 1]])
assert idx.is_monotonic_increasing
assert not idx.is_strictly_monotonic_increasing
assert not idx._is_strictly_monotonic_increasing

@pytest.mark.xfail(reason="buggy MultiIndex.is_monotonic_decresaing.")
def test_is_strictly_monotonic_decreasing(self):
def test__is_strictly_monotonic_decreasing(self):
idx = pd.MultiIndex(levels=[['baz', 'bar'], ['next', 'mom']],
labels=[[0, 0, 1, 1], [0, 0, 0, 1]])
assert idx.is_monotonic_decreasing
assert not idx.is_strictly_monotonic_decreasing
assert not idx._is_strictly_monotonic_decreasing

def test_reconstruct_sort(self):

Expand Down
20 changes: 10 additions & 10 deletions pandas/tests/indexes/test_numeric.py
Original file line number Diff line number Diff line change
Expand Up @@ -465,36 +465,36 @@ def test_view(self):
def test_is_monotonic(self):
assert self.index.is_monotonic
assert self.index.is_monotonic_increasing
assert self.index.is_strictly_monotonic_increasing
assert self.index._is_strictly_monotonic_increasing
assert not self.index.is_monotonic_decreasing
assert not self.index.is_strictly_monotonic_decreasing
assert not self.index._is_strictly_monotonic_decreasing

index = self._holder([4, 3, 2, 1])
assert not index.is_monotonic
assert not index.is_strictly_monotonic_increasing
assert index.is_strictly_monotonic_decreasing
assert not index._is_strictly_monotonic_increasing
assert index._is_strictly_monotonic_decreasing

index = self._holder([1])
assert index.is_monotonic
assert index.is_monotonic_increasing
assert index.is_monotonic_decreasing
assert index.is_strictly_monotonic_increasing
assert index.is_strictly_monotonic_decreasing
assert index._is_strictly_monotonic_increasing
assert index._is_strictly_monotonic_decreasing

def test_is_strictly_monotonic(self):
index = self._holder([1, 1, 2, 3])
assert index.is_monotonic_increasing
assert not index.is_strictly_monotonic_increasing
assert not index._is_strictly_monotonic_increasing

index = self._holder([3, 2, 1, 1])
assert index.is_monotonic_decreasing
assert not index.is_strictly_monotonic_decreasing
assert not index._is_strictly_monotonic_decreasing

index = self._holder([1, 1])
assert index.is_monotonic_increasing
assert index.is_monotonic_decreasing
assert not index.is_strictly_monotonic_increasing
assert not index.is_strictly_monotonic_decreasing
assert not index._is_strictly_monotonic_increasing
assert not index._is_strictly_monotonic_decreasing

def test_logical_compat(self):
idx = self.create_index()
Expand Down
20 changes: 10 additions & 10 deletions pandas/tests/indexes/test_range.py
Original file line number Diff line number Diff line change
Expand Up @@ -331,35 +331,35 @@ def test_is_monotonic(self):
assert self.index.is_monotonic
assert self.index.is_monotonic_increasing
assert not self.index.is_monotonic_decreasing
assert self.index.is_strictly_monotonic_increasing
assert not self.index.is_strictly_monotonic_decreasing
assert self.index._is_strictly_monotonic_increasing
assert not self.index._is_strictly_monotonic_decreasing

index = RangeIndex(4, 0, -1)
assert not index.is_monotonic
assert not index.is_strictly_monotonic_increasing
assert not index._is_strictly_monotonic_increasing
assert index.is_monotonic_decreasing
assert index.is_strictly_monotonic_decreasing
assert index._is_strictly_monotonic_decreasing

index = RangeIndex(1, 2)
assert index.is_monotonic
assert index.is_monotonic_increasing
assert index.is_monotonic_decreasing
assert index.is_strictly_monotonic_increasing
assert index.is_strictly_monotonic_decreasing
assert index._is_strictly_monotonic_increasing
assert index._is_strictly_monotonic_decreasing

index = RangeIndex(2, 1)
assert index.is_monotonic
assert index.is_monotonic_increasing
assert index.is_monotonic_decreasing
assert index.is_strictly_monotonic_increasing
assert index.is_strictly_monotonic_decreasing
assert index._is_strictly_monotonic_increasing
assert index._is_strictly_monotonic_decreasing

index = RangeIndex(1, 1)
assert index.is_monotonic
assert index.is_monotonic_increasing
assert index.is_monotonic_decreasing
assert index.is_strictly_monotonic_increasing
assert index.is_strictly_monotonic_decreasing
assert index._is_strictly_monotonic_increasing
assert index._is_strictly_monotonic_decreasing

def test_equals_range(self):
equiv_pairs = [(RangeIndex(0, 9, 2), RangeIndex(0, 10, 2)),
Expand Down

0 comments on commit e2e7533

Please sign in to comment.