From e8f6e2c67df92694166d8fbcb38fbcc5327d684d Mon Sep 17 00:00:00 2001 From: jbrockmendel Date: Wed, 16 Oct 2019 15:38:07 -0700 Subject: [PATCH 1/5] commit so i can rebase --- pandas/core/generic.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pandas/core/generic.py b/pandas/core/generic.py index 152983451bc38..d1e388b86a494 100644 --- a/pandas/core/generic.py +++ b/pandas/core/generic.py @@ -3340,7 +3340,13 @@ def _maybe_update_cacher(self, clear=False, verify_is_copy=True): else: try: ref._maybe_cache_changed(cacher[0], self) + assert ref.ndim == self.ndim, (ref.ndim, self.ndim) + except AssertionError: + # ref._data.setitem will raise + # AssertionError because of shape mismatch + assert not ref.ndim == self.ndim except Exception: + raise pass if verify_is_copy: From 40cfa0ddb790439d5db13a8242f918f9ff9bd7bb Mon Sep 17 00:00:00 2001 From: jbrockmendel Date: Thu, 17 Oct 2019 19:19:07 -0700 Subject: [PATCH 2/5] comment --- pandas/core/generic.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pandas/core/generic.py b/pandas/core/generic.py index a9d7685897be7..2c23c516eb613 100644 --- a/pandas/core/generic.py +++ b/pandas/core/generic.py @@ -3353,6 +3353,8 @@ def _maybe_update_cacher(self, clear=False, verify_is_copy=True): if ref is None: del self._cacher else: + # Note: we need to call ref._maybe_cache_changed even in the + # case where it will raise. (Uh, not clear why) try: ref._maybe_cache_changed(cacher[0], self) assert ref.ndim == self.ndim, (ref.ndim, self.ndim) @@ -3360,9 +3362,7 @@ def _maybe_update_cacher(self, clear=False, verify_is_copy=True): # ref._data.setitem will raise # AssertionError because of shape mismatch assert not ref.ndim == self.ndim - except Exception: - raise - pass + if verify_is_copy: self._check_setitem_copy(stacklevel=5, t="referant") From 243f8b8a0700539114c39c2d773a28f935642bd3 Mon Sep 17 00:00:00 2001 From: jbrockmendel Date: Thu, 17 Oct 2019 19:46:48 -0700 Subject: [PATCH 3/5] whitespace fixup --- pandas/core/generic.py | 1 - 1 file changed, 1 deletion(-) diff --git a/pandas/core/generic.py b/pandas/core/generic.py index 2c23c516eb613..651b0ec90f6bd 100644 --- a/pandas/core/generic.py +++ b/pandas/core/generic.py @@ -3363,7 +3363,6 @@ def _maybe_update_cacher(self, clear=False, verify_is_copy=True): # AssertionError because of shape mismatch assert not ref.ndim == self.ndim - if verify_is_copy: self._check_setitem_copy(stacklevel=5, t="referant") From 9bbc55fefa7331f950be863b07131efffb1b80b7 Mon Sep 17 00:00:00 2001 From: jbrockmendel Date: Fri, 18 Oct 2019 18:58:37 -0700 Subject: [PATCH 4/5] move assertion to else block --- pandas/core/generic.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pandas/core/generic.py b/pandas/core/generic.py index 870905437ddf8..c835fa33770f1 100644 --- a/pandas/core/generic.py +++ b/pandas/core/generic.py @@ -3357,11 +3357,12 @@ def _maybe_update_cacher(self, clear=False, verify_is_copy=True): # case where it will raise. (Uh, not clear why) try: ref._maybe_cache_changed(cacher[0], self) - assert ref.ndim == self.ndim, (ref.ndim, self.ndim) except AssertionError: # ref._data.setitem will raise # AssertionError because of shape mismatch - assert not ref.ndim == self.ndim + assert ref.ndim != self.ndim + else: + assert ref.ndim == self.ndim if verify_is_copy: self._check_setitem_copy(stacklevel=5, t="referant") From 23f322a340cd50980368e14c76a7ef32ea408784 Mon Sep 17 00:00:00 2001 From: jbrockmendel Date: Sat, 19 Oct 2019 12:03:53 -0700 Subject: [PATCH 5/5] fixup assertion --- pandas/core/generic.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/pandas/core/generic.py b/pandas/core/generic.py index c835fa33770f1..50126cabbacf3 100644 --- a/pandas/core/generic.py +++ b/pandas/core/generic.py @@ -3358,11 +3358,9 @@ def _maybe_update_cacher(self, clear=False, verify_is_copy=True): try: ref._maybe_cache_changed(cacher[0], self) except AssertionError: - # ref._data.setitem will raise + # ref._data.setitem can raise # AssertionError because of shape mismatch - assert ref.ndim != self.ndim - else: - assert ref.ndim == self.ndim + pass if verify_is_copy: self._check_setitem_copy(stacklevel=5, t="referant")