From c7f4927b6c862c784e0f4dabb757d5f74726e006 Mon Sep 17 00:00:00 2001 From: Giulio Pepe Date: Mon, 29 May 2017 17:49:14 +0100 Subject: [PATCH 1/4] CLN: raise correct error for Panel sort_values --- pandas/core/generic.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/pandas/core/generic.py b/pandas/core/generic.py index e541f1532d0a0..b66f01bfcb545 100644 --- a/pandas/core/generic.py +++ b/pandas/core/generic.py @@ -2366,9 +2366,13 @@ def add_suffix(self, suffix): 1 A 1 1 """ - def sort_values(self, by, axis=0, ascending=True, inplace=False, - kind='quicksort', na_position='last'): - raise AbstractMethodError(self) + def sort_values(self): + """ + NOT IMPLEMENTED: do not call this method, as sorting values is not + supported for Panel objects and will raise an error. + """ + raise NotImplementedError("sort_values has not been implemented " + "on Panel or Panel4D objects.") _shared_docs['sort_index'] = """ Sort object by labels (along an axis) From f7d1beb78edbd94fe1bae019f467c83364939185 Mon Sep 17 00:00:00 2001 From: Giulio Pepe Date: Tue, 30 May 2017 23:38:04 +0100 Subject: [PATCH 2/4] Add unit tests --- pandas/tests/test_panel.py | 4 ++++ pandas/tests/test_panel4d.py | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/pandas/tests/test_panel.py b/pandas/tests/test_panel.py index 3243b69a25acd..71b8ac63a370c 100644 --- a/pandas/tests/test_panel.py +++ b/pandas/tests/test_panel.py @@ -2429,6 +2429,10 @@ def test_all_any_unhandled(self): pytest.raises(NotImplementedError, self.panel.all, bool_only=True) pytest.raises(NotImplementedError, self.panel.any, bool_only=True) + def test_sort_values(self): + pytest.raises(NotImplementedError, self.panel.sort_values) + pytest.raises(NotImplementedError, self.panel.sort_values, 'ItemA') + class TestLongPanel(object): """ diff --git a/pandas/tests/test_panel4d.py b/pandas/tests/test_panel4d.py index 96f02d63712fc..9cb82e31f1412 100644 --- a/pandas/tests/test_panel4d.py +++ b/pandas/tests/test_panel4d.py @@ -939,3 +939,8 @@ def test_rename(self): def test_get_attr(self): tm.assert_panel_equal(self.panel4d['l1'], self.panel4d.l1) + + + def test_sort_values(self): + pytest.raises(NotImplementedError, self.panel4d.sort_values) + pytest.raises(NotImplementedError, self.panel4d.sort_values, 'ItemA') From 4b9a50848ad5867c18aff7afa54b81f253ef2c16 Mon Sep 17 00:00:00 2001 From: Giulio Pepe Date: Tue, 30 May 2017 23:42:49 +0100 Subject: [PATCH 3/4] Make tests pass --- pandas/core/generic.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pandas/core/generic.py b/pandas/core/generic.py index b66f01bfcb545..98999ec267c82 100644 --- a/pandas/core/generic.py +++ b/pandas/core/generic.py @@ -2366,7 +2366,8 @@ def add_suffix(self, suffix): 1 A 1 1 """ - def sort_values(self): + def sort_values(self, by=None, axis=0, ascending=True, inplace=False, + kind='quicksort', na_position='last'): """ NOT IMPLEMENTED: do not call this method, as sorting values is not supported for Panel objects and will raise an error. From c5d81eee8cdffbc760486a57e9a1d0ebe22e0acc Mon Sep 17 00:00:00 2001 From: Giulio Pepe Date: Tue, 30 May 2017 23:53:54 +0100 Subject: [PATCH 4/4] Add issue reference --- pandas/tests/test_panel.py | 1 + pandas/tests/test_panel4d.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/pandas/tests/test_panel.py b/pandas/tests/test_panel.py index 71b8ac63a370c..e19e42e062932 100644 --- a/pandas/tests/test_panel.py +++ b/pandas/tests/test_panel.py @@ -2429,6 +2429,7 @@ def test_all_any_unhandled(self): pytest.raises(NotImplementedError, self.panel.all, bool_only=True) pytest.raises(NotImplementedError, self.panel.any, bool_only=True) + # GH issue 15960 def test_sort_values(self): pytest.raises(NotImplementedError, self.panel.sort_values) pytest.raises(NotImplementedError, self.panel.sort_values, 'ItemA') diff --git a/pandas/tests/test_panel4d.py b/pandas/tests/test_panel4d.py index 9cb82e31f1412..e1995316e7b7c 100644 --- a/pandas/tests/test_panel4d.py +++ b/pandas/tests/test_panel4d.py @@ -940,7 +940,7 @@ def test_rename(self): def test_get_attr(self): tm.assert_panel_equal(self.panel4d['l1'], self.panel4d.l1) - + # GH issue 15960 def test_sort_values(self): pytest.raises(NotImplementedError, self.panel4d.sort_values) pytest.raises(NotImplementedError, self.panel4d.sort_values, 'ItemA')