Skip to content

Commit 95ce2a8

Browse files
committed
Revert "Revert "MAINT: Remove Long and WidePanel (pandas-dev#15748)" (pandas-dev#15802)"
This reverts commit 22f9d0d.
1 parent 774030c commit 95ce2a8

File tree

6 files changed

+29
-67
lines changed

6 files changed

+29
-67
lines changed

asv_bench/benchmarks/pandas_vb_common.py

-5
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,6 @@
2323
except:
2424
pass
2525

26-
try:
27-
Panel = Panel
28-
except Exception:
29-
Panel = WidePanel
30-
3126
# didn't add to namespace until later
3227
try:
3328
from pandas.core.index import MultiIndex

pandas/core/api.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
from pandas.core.series import Series
2323
from pandas.core.frame import DataFrame
24-
from pandas.core.panel import Panel, WidePanel
24+
from pandas.core.panel import Panel
2525
from pandas.core.panel4d import Panel4D
2626
from pandas.core.reshape.reshape import (
2727
pivot_simple as pivot, get_dummies)

pandas/core/panel.py

-21
Original file line numberDiff line numberDiff line change
@@ -1617,24 +1617,3 @@ def f(self, other, axis=0):
16171617
ops.add_special_arithmetic_methods(Panel, **ops.panel_special_funcs)
16181618
Panel._add_aggregate_operations()
16191619
Panel._add_numeric_operations()
1620-
1621-
1622-
# legacy
1623-
class WidePanel(Panel):
1624-
1625-
def __init__(self, *args, **kwargs):
1626-
# deprecation, #10892
1627-
warnings.warn("WidePanel is deprecated. Please use Panel",
1628-
FutureWarning, stacklevel=2)
1629-
1630-
super(WidePanel, self).__init__(*args, **kwargs)
1631-
1632-
1633-
class LongPanel(DataFrame):
1634-
1635-
def __init__(self, *args, **kwargs):
1636-
# deprecation, #10892
1637-
warnings.warn("LongPanel is deprecated. Please use DataFrame",
1638-
FutureWarning, stacklevel=2)
1639-
1640-
super(LongPanel, self).__init__(*args, **kwargs)

pandas/tests/api/test_api.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ class TestPDApi(Base):
5151
'TimedeltaIndex', 'Timestamp', 'Interval', 'IntervalIndex']
5252

5353
# these are already deprecated; awaiting removal
54-
deprecated_classes = ['WidePanel', 'Panel4D', 'TimeGrouper',
54+
deprecated_classes = ['Panel4D', 'TimeGrouper',
5555
'SparseList', 'Expr', 'Term']
5656

5757
# these should be deprecated in the future

pandas/tests/io/test_pytables.py

-3
Original file line numberDiff line numberDiff line change
@@ -3145,9 +3145,6 @@ def _check(left, right):
31453145
wp = tm.makePanel()
31463146
self._check_roundtrip(wp.to_frame(), _check)
31473147

3148-
def test_longpanel(self):
3149-
pass
3150-
31513148
def test_overwrite_node(self):
31523149

31533150
with ensure_clean_store(self.path) as store:

pandas/tests/test_panel.py

+27-36
Original file line numberDiff line numberDiff line change
@@ -184,10 +184,6 @@ def wrapper(x):
184184

185185
class SafeForSparse(object):
186186

187-
@classmethod
188-
def assert_panel_equal(cls, x, y):
189-
assert_panel_equal(x, y)
190-
191187
def test_get_axis(self):
192188
assert (self.panel._get_axis(0) is self.panel.items)
193189
assert (self.panel._get_axis(1) is self.panel.major_axis)
@@ -353,13 +349,11 @@ def check_op(op, name):
353349
raise
354350

355351
def test_combinePanel(self):
356-
with catch_warnings(record=True):
357-
result = self.panel.add(self.panel)
358-
assert_panel_equal(result, self.panel * 2)
352+
with catch_warnings(record=True):result = self.panel.add(self.panel)
353+
assert_panel_equal(result, self.panel * 2)
359354

360355
def test_neg(self):
361-
with catch_warnings(record=True):
362-
assert_panel_equal(-self.panel, self.panel * -1)
356+
assert_panel_equal(-self.panel, self.panel * -1)
363357

364358
# issue 7692
365359
def test_raise_when_not_implemented(self):
@@ -379,26 +373,25 @@ def test_select(self):
379373
with catch_warnings(record=True):
380374
p = self.panel
381375

382-
# select items
383-
result = p.select(lambda x: x in ('ItemA', 'ItemC'), axis='items')
384-
expected = p.reindex(items=['ItemA', 'ItemC'])
385-
assert_panel_equal(result, expected)
376+
# select items
377+
result = p.select(lambda x: x in ('ItemA', 'ItemC'), axis='items')
378+
expected = p.reindex(items=['ItemA', 'ItemC'])
379+
assert_panel_equal(result, expected)
386380

387-
# select major_axis
388-
result = p.select(lambda x: x >= datetime(
389-
2000, 1, 15), axis='major')
390-
new_major = p.major_axis[p.major_axis >= datetime(2000, 1, 15)]
391-
expected = p.reindex(major=new_major)
392-
assert_panel_equal(result, expected)
381+
# select major_axis
382+
result = p.select(lambda x: x >= datetime(2000, 1, 15), axis='major')
383+
new_major = p.major_axis[p.major_axis >= datetime(2000, 1, 15)]
384+
expected = p.reindex(major=new_major)
385+
assert_panel_equal(result, expected)
393386

394-
# select minor_axis
395-
result = p.select(lambda x: x in ('D', 'A'), axis=2)
396-
expected = p.reindex(minor=['A', 'D'])
397-
assert_panel_equal(result, expected)
387+
# select minor_axis
388+
result = p.select(lambda x: x in ('D', 'A'), axis=2)
389+
expected = p.reindex(minor=['A', 'D'])
390+
assert_panel_equal(result, expected)
398391

399-
# corner case, empty thing
400-
result = p.select(lambda x: x in ('foo', ), axis='items')
401-
assert_panel_equal(result, p.reindex(items=[]))
392+
# corner case, empty thing
393+
result = p.select(lambda x: x in ('foo', ), axis='items')
394+
assert_panel_equal(result, p.reindex(items=[]))
402395

403396
def test_get_value(self):
404397
for item in self.panel.items:
@@ -906,10 +899,6 @@ def test_set_value(self):
906899
class TestPanel(PanelTests, CheckIndexing, SafeForLongAndSparse,
907900
SafeForSparse):
908901

909-
@classmethod
910-
def assert_panel_equal(cls, x, y):
911-
assert_panel_equal(x, y)
912-
913902
def setup_method(self, method):
914903
self.panel = make_test_panel()
915904
self.panel.major_axis.name = None
@@ -2155,8 +2144,8 @@ def test_multiindex_get(self):
21552144
assert (f1.items == [1, 2]).all()
21562145
assert (f2.items == [1, 2]).all()
21572146

2158-
ind = MultiIndex.from_tuples([('a', 1), ('a', 2), ('b', 1)],
2159-
names=['first', 'second'])
2147+
MultiIndex.from_tuples([('a', 1), ('a', 2), ('b', 1)],
2148+
names=['first', 'second'])
21602149

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

24632452

2464-
class TestLongPanel(object):
2453+
class TestPanelFrame(object):
24652454
"""
2466-
LongPanel no longer exists, but...
2455+
Check that conversions to and from Panel to DataFrame work.
24672456
"""
24682457

2469-
def setup_method(self, method):
2470-
panel = make_test_panel()
2458+
def setUp(self):
2459+
panel = tm.makePanel()
2460+
tm.add_nans(panel)
2461+
24712462
self.panel = panel.to_frame()
24722463
self.unfiltered_panel = panel.to_frame(filter_observations=False)
24732464

0 commit comments

Comments
 (0)