Skip to content

Commit 6749864

Browse files
committed
DEPR: remove some SparsePanel deprecation warnings in testing
1 parent 53a0db1 commit 6749864

File tree

8 files changed

+107
-86
lines changed

8 files changed

+107
-86
lines changed

pandas/core/panel.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -680,8 +680,8 @@ def _combine(self, other, func, axis=0):
680680
elif np.isscalar(other):
681681
return self._combine_const(other, func)
682682
else:
683-
raise NotImplementedError(str(type(other)) +
684-
' is not supported in combine operation with ' +
683+
raise NotImplementedError(str(type(other)) +
684+
' is not supported in combine operation with ' +
685685
str(type(self)))
686686

687687
def _combine_const(self, other, func):

pandas/sparse/tests/test_sparse.py

+67-65
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,6 @@
3939

4040
from pandas.sparse.tests.test_array import assert_sp_array_equal
4141

42-
import warnings
43-
warnings.filterwarnings(action='ignore', category=FutureWarning)
44-
45-
4642
def _test_data1():
4743
# nan-based
4844
arr = np.arange(20, dtype=float)
@@ -503,15 +499,6 @@ def check(a, b):
503499
result = self.bseries + self.bseries.to_dense()
504500
assert_sp_series_equal(result, self.bseries + self.bseries)
505501

506-
# @dec.knownfailureif(True, 'Known NumPy failer as of 1.5.1')
507-
def test_operators_corner2(self):
508-
raise nose.SkipTest('known failer on numpy 1.5.1')
509-
510-
# NumPy circumvents __r*__ operations
511-
val = np.float64(3.0)
512-
result = val - self.zbseries
513-
assert_sp_series_equal(result, 3 - self.zbseries)
514-
515502
def test_binary_operators(self):
516503

517504
# skipping for now #####
@@ -1778,20 +1765,23 @@ def setUp(self):
17781765
'ItemC': panel_data3(),
17791766
'ItemD': panel_data1(),
17801767
}
1781-
self.panel = SparsePanel(self.data_dict)
1768+
with tm.assert_produces_warning(FutureWarning):
1769+
self.panel = SparsePanel(self.data_dict)
17821770

17831771
@staticmethod
17841772
def _test_op(panel, op):
17851773
# arithmetic tests
1786-
result = op(panel, 1)
1774+
with tm.assert_produces_warning(FutureWarning, check_stacklevel=False):
1775+
result = op(panel, 1)
17871776
assert_sp_frame_equal(result['ItemA'], op(panel['ItemA'], 1))
17881777

17891778
def test_constructor(self):
1790-
self.assertRaises(ValueError, SparsePanel, self.data_dict,
1791-
items=['Item0', 'ItemA', 'ItemB'])
1792-
with tm.assertRaisesRegexp(TypeError,
1793-
"input must be a dict, a 'list' was passed"):
1794-
SparsePanel(['a', 'b', 'c'])
1779+
with tm.assert_produces_warning(FutureWarning, check_stacklevel=False):
1780+
self.assertRaises(ValueError, SparsePanel, self.data_dict,
1781+
items=['Item0', 'ItemA', 'ItemB'])
1782+
with tm.assertRaisesRegexp(TypeError,
1783+
"input must be a dict, a 'list' was passed"):
1784+
SparsePanel(['a', 'b', 'c'])
17951785

17961786
# deprecation GH11157
17971787
def test_deprecation(self):
@@ -1800,13 +1790,15 @@ def test_deprecation(self):
18001790

18011791
# GH 9272
18021792
def test_constructor_empty(self):
1803-
sp = SparsePanel()
1793+
with tm.assert_produces_warning(FutureWarning):
1794+
sp = SparsePanel()
18041795
self.assertEqual(len(sp.items), 0)
18051796
self.assertEqual(len(sp.major_axis), 0)
18061797
self.assertEqual(len(sp.minor_axis), 0)
18071798

18081799
def test_from_dict(self):
1809-
fd = SparsePanel.from_dict(self.data_dict)
1800+
with tm.assert_produces_warning(FutureWarning, check_stacklevel=False):
1801+
fd = SparsePanel.from_dict(self.data_dict)
18101802
assert_sp_panel_equal(fd, self.panel)
18111803

18121804
def test_pickle(self):
@@ -1830,21 +1822,25 @@ def test_to_dense(self):
18301822
assert_panel_equal(dwp, dwp2)
18311823

18321824
def test_to_frame(self):
1833-
def _compare_with_dense(panel):
1834-
slp = panel.to_frame()
1835-
dlp = panel.to_dense().to_frame()
18361825

1837-
self.assert_numpy_array_equal(slp.values, dlp.values)
1838-
self.assertTrue(slp.index.equals(dlp.index))
1826+
with tm.assert_produces_warning(FutureWarning, check_stacklevel=False):
1827+
1828+
def _compare_with_dense(panel):
1829+
slp = panel.to_frame()
1830+
dlp = panel.to_dense().to_frame()
18391831

1840-
_compare_with_dense(self.panel)
1841-
_compare_with_dense(self.panel.reindex(items=['ItemA']))
1832+
self.assert_numpy_array_equal(slp.values, dlp.values)
1833+
self.assertTrue(slp.index.equals(dlp.index))
18421834

1843-
zero_panel = SparsePanel(self.data_dict, default_fill_value=0)
1844-
self.assertRaises(Exception, zero_panel.to_frame)
1835+
_compare_with_dense(self.panel)
1836+
_compare_with_dense(self.panel.reindex(items=['ItemA']))
18451837

1846-
self.assertRaises(Exception, self.panel.to_frame,
1847-
filter_observations=False)
1838+
with tm.assert_produces_warning(FutureWarning):
1839+
zero_panel = SparsePanel(self.data_dict, default_fill_value=0)
1840+
self.assertRaises(Exception, zero_panel.to_frame)
1841+
1842+
self.assertRaises(Exception, self.panel.to_frame,
1843+
filter_observations=False)
18481844

18491845
def test_long_to_wide_sparse(self):
18501846
pass
@@ -1885,47 +1881,53 @@ def test_delitem_pop(self):
18851881
self.assertRaises(KeyError, self.panel.__delitem__, 'ItemC')
18861882

18871883
def test_copy(self):
1888-
cop = self.panel.copy()
1884+
with tm.assert_produces_warning(FutureWarning, check_stacklevel=False):
1885+
cop = self.panel.copy()
18891886
assert_sp_panel_equal(cop, self.panel)
18901887

18911888
def test_reindex(self):
1892-
def _compare_with_dense(swp, items, major, minor):
1893-
swp_re = swp.reindex(items=items, major=major,
1894-
minor=minor)
1895-
dwp_re = swp.to_dense().reindex(items=items, major=major,
1896-
minor=minor)
1897-
assert_panel_equal(swp_re.to_dense(), dwp_re)
1898-
1899-
_compare_with_dense(self.panel, self.panel.items[:2],
1900-
self.panel.major_axis[::2],
1901-
self.panel.minor_axis[::2])
1902-
_compare_with_dense(self.panel, None,
1903-
self.panel.major_axis[::2],
1904-
self.panel.minor_axis[::2])
1905-
1906-
self.assertRaises(ValueError, self.panel.reindex)
1907-
1908-
# TODO: do something about this later...
1909-
self.assertRaises(Exception, self.panel.reindex,
1910-
items=['item0', 'ItemA', 'ItemB'])
1911-
1912-
# test copying
1913-
cp = self.panel.reindex(self.panel.major_axis, copy=True)
1914-
cp['ItemA']['E'] = cp['ItemA']['A']
1915-
self.assertNotIn('E', self.panel['ItemA'])
1889+
with tm.assert_produces_warning(FutureWarning, check_stacklevel=False):
1890+
1891+
def _compare_with_dense(swp, items, major, minor):
1892+
swp_re = swp.reindex(items=items, major=major,
1893+
minor=minor)
1894+
dwp_re = swp.to_dense().reindex(items=items, major=major,
1895+
minor=minor)
1896+
assert_panel_equal(swp_re.to_dense(), dwp_re)
1897+
1898+
_compare_with_dense(self.panel, self.panel.items[:2],
1899+
self.panel.major_axis[::2],
1900+
self.panel.minor_axis[::2])
1901+
_compare_with_dense(self.panel, None,
1902+
self.panel.major_axis[::2],
1903+
self.panel.minor_axis[::2])
1904+
1905+
self.assertRaises(ValueError, self.panel.reindex)
1906+
1907+
# TODO: do something about this later...
1908+
self.assertRaises(Exception, self.panel.reindex,
1909+
items=['item0', 'ItemA', 'ItemB'])
1910+
1911+
# test copying
1912+
cp = self.panel.reindex(self.panel.major_axis, copy=True)
1913+
cp['ItemA']['E'] = cp['ItemA']['A']
1914+
self.assertNotIn('E', self.panel['ItemA'])
19161915

19171916
def test_operators(self):
19181917
def _check_ops(panel):
1918+
19191919
def _dense_comp(op):
1920-
dense = panel.to_dense()
1921-
sparse_result = op(panel)
1922-
dense_result = op(dense)
1923-
assert_panel_equal(sparse_result.to_dense(), dense_result)
1920+
with tm.assert_produces_warning(FutureWarning, check_stacklevel=False):
1921+
dense = panel.to_dense()
1922+
sparse_result = op(panel)
1923+
dense_result = op(dense)
1924+
assert_panel_equal(sparse_result.to_dense(), dense_result)
19241925

19251926
def _mixed_comp(op):
1926-
result = op(panel, panel.to_dense())
1927-
expected = op(panel.to_dense(), panel.to_dense())
1928-
assert_panel_equal(result, expected)
1927+
with tm.assert_produces_warning(FutureWarning, check_stacklevel=False):
1928+
result = op(panel, panel.to_dense())
1929+
expected = op(panel.to_dense(), panel.to_dense())
1930+
assert_panel_equal(result, expected)
19291931

19301932
op1 = lambda x: x + 2
19311933

pandas/stats/tests/test_moments.py

+3
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@ def setUp(self):
4545
self._create_data()
4646
warnings.simplefilter("ignore", category=FutureWarning)
4747

48+
def tearDown(self):
49+
warnings.simplefilter("default", category=FutureWarning)
50+
4851
def test_centered_axis_validation(self):
4952
# ok
5053
mom.rolling_mean(Series(np.ones(10)),3,center=True ,axis=0)

pandas/tests/test_frame.py

+4-8
Original file line numberDiff line numberDiff line change
@@ -381,15 +381,11 @@ def test_getitem_boolean(self):
381381
assert_frame_equal(subframe_obj, subframe)
382382

383383
# test that Series indexers reindex
384-
import warnings
385-
warnings.filterwarnings(action='ignore', category=UserWarning)
386-
387-
indexer_obj = indexer_obj.reindex(self.tsframe.index[::-1])
388-
389-
subframe_obj = self.tsframe[indexer_obj]
390-
assert_frame_equal(subframe_obj, subframe)
384+
with tm.assert_produces_warning(UserWarning):
385+
indexer_obj = indexer_obj.reindex(self.tsframe.index[::-1])
391386

392-
warnings.filterwarnings(action='default', category=UserWarning)
387+
subframe_obj = self.tsframe[indexer_obj]
388+
assert_frame_equal(subframe_obj, subframe)
393389

394390
# test df[df > 0]
395391
for df in [ self.tsframe, self.mixed_frame, self.mixed_float, self.mixed_int ]:

pandas/tests/test_generic.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,7 @@ class Generic(object):
3939
_multiprocess_can_split_ = True
4040

4141
def setUp(self):
42-
import warnings
43-
warnings.filterwarnings(action='ignore', category=FutureWarning)
42+
pass
4443

4544
@property
4645
def _ndim(self):

pandas/tests/test_multilevel.py

-2
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@ class TestMultiLevel(tm.TestCase):
2828
_multiprocess_can_split_ = True
2929

3030
def setUp(self):
31-
import warnings
32-
warnings.filterwarnings(action='ignore', category=FutureWarning)
3331

3432
index = MultiIndex(levels=[['foo', 'bar', 'baz', 'qux'],
3533
['one', 'two', 'three']],

pandas/tests/test_panel.py

+30-5
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from inspect import getargspec
66
import operator
77
import nose
8+
from functools import wraps
89

910
import numpy as np
1011
import pandas as pd
@@ -17,6 +18,7 @@
1718
import pandas.core.common as com
1819
from pandas import compat
1920
from pandas.compat import range, lrange, StringIO, OrderedDict
21+
from pandas import SparsePanel
2022

2123
from pandas.util.testing import (assert_panel_equal,
2224
assert_frame_equal,
@@ -31,6 +33,22 @@
3133
import pandas.core.panel as panelm
3234
import pandas.util.testing as tm
3335

36+
def ignore_sparse_panel_future_warning(func):
37+
"""
38+
decorator to ignore FutureWarning if we have a SparsePanel
39+
40+
can be removed when SparsePanel is fully removed
41+
"""
42+
@wraps(func)
43+
def wrapper(self, *args, **kwargs):
44+
45+
if isinstance(self.panel, SparsePanel):
46+
with assert_produces_warning(FutureWarning, check_stacklevel=False):
47+
return func(self, *args, **kwargs)
48+
else:
49+
return func(self, *args, **kwargs)
50+
51+
return wrapper
3452

3553
class PanelTests(object):
3654
panel = None
@@ -56,6 +74,7 @@ class SafeForLongAndSparse(object):
5674
def test_repr(self):
5775
foo = repr(self.panel)
5876

77+
@ignore_sparse_panel_future_warning
5978
def test_copy_names(self):
6079
for attr in ('major_axis', 'minor_axis'):
6180
getattr(self.panel, attr).name = None
@@ -233,6 +252,7 @@ def test_get_plane_axes(self):
233252
index, columns = self.panel._get_plane_axes('minor_axis')
234253
index, columns = self.panel._get_plane_axes(0)
235254

255+
@ignore_sparse_panel_future_warning
236256
def test_truncate(self):
237257
dates = self.panel.major_axis
238258
start, end = dates[1], dates[5]
@@ -293,6 +313,7 @@ def test_iteritems(self):
293313
self.assertEqual(len(list(compat.iteritems(self.panel))),
294314
len(self.panel.items))
295315

316+
@ignore_sparse_panel_future_warning
296317
def test_combineFrame(self):
297318
def check_op(op, name):
298319
# items
@@ -321,7 +342,7 @@ def check_op(op, name):
321342

322343
assert_frame_equal(result.minor_xs(idx),
323344
op(self.panel.minor_xs(idx), xs))
324-
from pandas import SparsePanel
345+
325346
ops = ['add', 'sub', 'mul', 'truediv', 'floordiv']
326347
if not compat.PY3:
327348
ops.append('div')
@@ -348,23 +369,26 @@ def check_op(op, name):
348369
com.pprint_thing("Failing operation: %r" % name)
349370
raise
350371

372+
@ignore_sparse_panel_future_warning
351373
def test_combinePanel(self):
352374
result = self.panel.add(self.panel)
353375
self.assert_panel_equal(result, self.panel * 2)
354376

377+
@ignore_sparse_panel_future_warning
355378
def test_neg(self):
356379
self.assert_panel_equal(-self.panel, self.panel * -1)
357380

358381
# issue 7692
359382
def test_raise_when_not_implemented(self):
360-
p = Panel(np.arange(3*4*5).reshape(3,4,5), items=['ItemA','ItemB','ItemC'],
383+
p = Panel(np.arange(3*4*5).reshape(3,4,5), items=['ItemA','ItemB','ItemC'],
361384
major_axis=pd.date_range('20130101',periods=4),minor_axis=list('ABCDE'))
362385
d = p.sum(axis=1).ix[0]
363386
ops = ['add', 'sub', 'mul', 'truediv', 'floordiv', 'div', 'mod', 'pow']
364387
for op in ops:
365388
with self.assertRaises(NotImplementedError):
366389
getattr(p,op)(d, axis=0)
367390

391+
@ignore_sparse_panel_future_warning
368392
def test_select(self):
369393
p = self.panel
370394

@@ -396,7 +420,9 @@ def test_get_value(self):
396420
expected = self.panel[item][mnr][mjr]
397421
assert_almost_equal(result, expected)
398422

423+
@ignore_sparse_panel_future_warning
399424
def test_abs(self):
425+
400426
result = self.panel.abs()
401427
result2 = abs(self.panel)
402428
expected = np.abs(self.panel)
@@ -872,9 +898,6 @@ def assert_panel_equal(cls, x, y):
872898
assert_panel_equal(x, y)
873899

874900
def setUp(self):
875-
import warnings
876-
warnings.filterwarnings(action='ignore', category=FutureWarning)
877-
878901
self.panel = _panel.copy()
879902
self.panel.major_axis.name = None
880903
self.panel.minor_axis.name = None
@@ -1534,6 +1557,7 @@ def test_transpose_copy(self):
15341557
panel.values[0, 1, 1] = np.nan
15351558
self.assertTrue(notnull(result.values[1, 0, 1]))
15361559

1560+
@ignore_sparse_panel_future_warning
15371561
def test_to_frame(self):
15381562
# filtered
15391563
filtered = self.panel.to_frame()
@@ -2313,6 +2337,7 @@ def test_to_string(self):
23132337
buf = StringIO()
23142338
self.panel.to_string(buf)
23152339

2340+
@ignore_sparse_panel_future_warning
23162341
def test_truncate(self):
23172342
dates = self.panel.index.levels[0]
23182343
start, end = dates[1], dates[5]

0 commit comments

Comments
 (0)