Skip to content

Commit

Permalink
Revert "Revert "MAINT: Remove Long and WidePanel (pandas-dev#15748)" (p…
Browse files Browse the repository at this point in the history
…andas-dev#15802)"

This reverts commit 22f9d0d.
  • Loading branch information
gfyoung committed Nov 17, 2017
1 parent 774030c commit 95ce2a8
Show file tree
Hide file tree
Showing 6 changed files with 29 additions and 67 deletions.
5 changes: 0 additions & 5 deletions asv_bench/benchmarks/pandas_vb_common.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,6 @@
except:
pass

try:
Panel = Panel
except Exception:
Panel = WidePanel

# didn't add to namespace until later
try:
from pandas.core.index import MultiIndex
Expand Down
2 changes: 1 addition & 1 deletion pandas/core/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

from pandas.core.series import Series
from pandas.core.frame import DataFrame
from pandas.core.panel import Panel, WidePanel
from pandas.core.panel import Panel
from pandas.core.panel4d import Panel4D
from pandas.core.reshape.reshape import (
pivot_simple as pivot, get_dummies)
Expand Down
21 changes: 0 additions & 21 deletions pandas/core/panel.py
Original file line number Diff line number Diff line change
Expand Up @@ -1617,24 +1617,3 @@ def f(self, other, axis=0):
ops.add_special_arithmetic_methods(Panel, **ops.panel_special_funcs)
Panel._add_aggregate_operations()
Panel._add_numeric_operations()


# legacy
class WidePanel(Panel):

def __init__(self, *args, **kwargs):
# deprecation, #10892
warnings.warn("WidePanel is deprecated. Please use Panel",
FutureWarning, stacklevel=2)

super(WidePanel, self).__init__(*args, **kwargs)


class LongPanel(DataFrame):

def __init__(self, *args, **kwargs):
# deprecation, #10892
warnings.warn("LongPanel is deprecated. Please use DataFrame",
FutureWarning, stacklevel=2)

super(LongPanel, self).__init__(*args, **kwargs)
2 changes: 1 addition & 1 deletion pandas/tests/api/test_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ class TestPDApi(Base):
'TimedeltaIndex', 'Timestamp', 'Interval', 'IntervalIndex']

# these are already deprecated; awaiting removal
deprecated_classes = ['WidePanel', 'Panel4D', 'TimeGrouper',
deprecated_classes = ['Panel4D', 'TimeGrouper',
'SparseList', 'Expr', 'Term']

# these should be deprecated in the future
Expand Down
3 changes: 0 additions & 3 deletions pandas/tests/io/test_pytables.py
Original file line number Diff line number Diff line change
Expand Up @@ -3145,9 +3145,6 @@ def _check(left, right):
wp = tm.makePanel()
self._check_roundtrip(wp.to_frame(), _check)

def test_longpanel(self):
pass

def test_overwrite_node(self):

with ensure_clean_store(self.path) as store:
Expand Down
63 changes: 27 additions & 36 deletions pandas/tests/test_panel.py
Original file line number Diff line number Diff line change
Expand Up @@ -184,10 +184,6 @@ def wrapper(x):

class SafeForSparse(object):

@classmethod
def assert_panel_equal(cls, x, y):
assert_panel_equal(x, y)

def test_get_axis(self):
assert (self.panel._get_axis(0) is self.panel.items)
assert (self.panel._get_axis(1) is self.panel.major_axis)
Expand Down Expand Up @@ -353,13 +349,11 @@ def check_op(op, name):
raise

def test_combinePanel(self):
with catch_warnings(record=True):
result = self.panel.add(self.panel)
assert_panel_equal(result, self.panel * 2)
with catch_warnings(record=True):result = self.panel.add(self.panel)
assert_panel_equal(result, self.panel * 2)

def test_neg(self):
with catch_warnings(record=True):
assert_panel_equal(-self.panel, self.panel * -1)
assert_panel_equal(-self.panel, self.panel * -1)

# issue 7692
def test_raise_when_not_implemented(self):
Expand All @@ -379,26 +373,25 @@ def test_select(self):
with catch_warnings(record=True):
p = self.panel

# select items
result = p.select(lambda x: x in ('ItemA', 'ItemC'), axis='items')
expected = p.reindex(items=['ItemA', 'ItemC'])
assert_panel_equal(result, expected)
# select items
result = p.select(lambda x: x in ('ItemA', 'ItemC'), axis='items')
expected = p.reindex(items=['ItemA', 'ItemC'])
assert_panel_equal(result, expected)

# select major_axis
result = p.select(lambda x: x >= datetime(
2000, 1, 15), axis='major')
new_major = p.major_axis[p.major_axis >= datetime(2000, 1, 15)]
expected = p.reindex(major=new_major)
assert_panel_equal(result, expected)
# select major_axis
result = p.select(lambda x: x >= datetime(2000, 1, 15), axis='major')
new_major = p.major_axis[p.major_axis >= datetime(2000, 1, 15)]
expected = p.reindex(major=new_major)
assert_panel_equal(result, expected)

# select minor_axis
result = p.select(lambda x: x in ('D', 'A'), axis=2)
expected = p.reindex(minor=['A', 'D'])
assert_panel_equal(result, expected)
# select minor_axis
result = p.select(lambda x: x in ('D', 'A'), axis=2)
expected = p.reindex(minor=['A', 'D'])
assert_panel_equal(result, expected)

# corner case, empty thing
result = p.select(lambda x: x in ('foo', ), axis='items')
assert_panel_equal(result, p.reindex(items=[]))
# corner case, empty thing
result = p.select(lambda x: x in ('foo', ), axis='items')
assert_panel_equal(result, p.reindex(items=[]))

def test_get_value(self):
for item in self.panel.items:
Expand Down Expand Up @@ -906,10 +899,6 @@ def test_set_value(self):
class TestPanel(PanelTests, CheckIndexing, SafeForLongAndSparse,
SafeForSparse):

@classmethod
def assert_panel_equal(cls, x, y):
assert_panel_equal(x, y)

def setup_method(self, method):
self.panel = make_test_panel()
self.panel.major_axis.name = None
Expand Down Expand Up @@ -2155,8 +2144,8 @@ def test_multiindex_get(self):
assert (f1.items == [1, 2]).all()
assert (f2.items == [1, 2]).all()

ind = MultiIndex.from_tuples([('a', 1), ('a', 2), ('b', 1)],
names=['first', 'second'])
MultiIndex.from_tuples([('a', 1), ('a', 2), ('b', 1)],
names=['first', 'second'])

def test_multiindex_blocks(self):
with catch_warnings(record=True):
Expand Down Expand Up @@ -2461,13 +2450,15 @@ def test_sort_values(self):
pytest.raises(NotImplementedError, self.panel.sort_values, 'ItemA')


class TestLongPanel(object):
class TestPanelFrame(object):
"""
LongPanel no longer exists, but...
Check that conversions to and from Panel to DataFrame work.
"""

def setup_method(self, method):
panel = make_test_panel()
def setUp(self):
panel = tm.makePanel()
tm.add_nans(panel)

self.panel = panel.to_frame()
self.unfiltered_panel = panel.to_frame(filter_observations=False)

Expand Down

0 comments on commit 95ce2a8

Please sign in to comment.