BUG: fix AttributeError raised in libreduction
Bite-sized chunk of the promised "addressing of recently-added TODOs" for groupby Exception un-suppression.  cc @WillAyd @jreback.
lgtm. Looks like we have "slow" tests that still raise AttributeError.  AFAICT within the groupby/reduce machinery a `DatetimeIndex` is having `dti._data` temporarily overwritten with an ndarray (instead of DatetimeArray which it should be).  I expect this is related to the _index_data workaround in libreduction.

For now I'm reverting the re-raising of AttributeError and adding the index_data thing to my list of groupby-followups. lgtm as well. 

> Looks like we have "slow" tests that still raise AttributeError.

Hmm do we just not hit these at all in CI? > Hmm do we just not hit these at all in CI?

It's hit in the CI, but it wasn't hit locally before I opened the PR.  Currently working on a branch that I _think_ fixes the remaining AttributeError, but longer-term the _index_data thing is pretty nasty. Shouldn't this add a test, or remove an otherwise catched exception? > or remove an otherwise catched exception?

There is one more case where an AttributeError gets raised, so we can't just yet. But the cause of the regression in the case I reported was that the AttributeError was no longer catched? Or for the case in our current tests, that's then probably still catched elsewhere? > But the cause of the regression in the case I reported was that the AttributeError was no longer catched?

The thing that we recently stopped catching (or more specifically, started re-raising) consistently is AssertionError.  Without knowing anything about the geopandas case, this is my best guess for what might have been affected.

> Or for the case in our current tests, that's then probably still catched elsewhere?

If you look at the most recent commit for this PR, you'll see that in the status quo (and in this PR, after the last commit), AttributeError is caught in an `except Exception` block on L266.  Does that answer the question? My example was running into another try/except block (see the one I linked in https://github.com/pandas-dev/pandas/issues/29141#issue-510309548), so I suppose that is simply not covered by our tests.

The reason it was working is because `_python_agg_general` is doing a `self._try_cast` on the result, casting back to the extension dtype if possible:

https://github.com/pandas-dev/pandas/blob/6c898e6a58285c841511e853bb1bf8a90766df78/pandas/core/groupby/groupby.py#L893-L905 The branch that fixes the remaining AttributeError (and so starts re-raising all AttributeErrors) is passing locally, will make a PR for that as a follow-up once this goes in. thanks