DEPR: remove Panel-specific parts of core.indexing
State: closed

follow-on from #25550

Labels:
name: Indexing
description: Related to indexing on series/frames, not to indexes themselves

Comments:
# [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/25567?src=pr&el=h1) Report
> Merging [#25567](https://codecov.io/gh/pandas-dev/pandas/pull/25567?src=pr&el=desc) into [master](https://codecov.io/gh/pandas-dev/pandas/commit/3e652ac565e054b763ccbe23006c02704f6cd1b1?src=pr&el=desc) will **increase** coverage by `0.05%`.
> The diff coverage is `100%`.

[![Impacted file tree graph](https://codecov.io/gh/pandas-dev/pandas/pull/25567/graphs/tree.svg?width=650&token=eZ4WkYLtcO&height=150&src=pr)](https://codecov.io/gh/pandas-dev/pandas/pull/25567?src=pr&el=tree)

```diff
@@            Coverage Diff             @@
##           master   #25567      +/-   ##
==========================================
+ Coverage   91.26%   91.31%   +0.05%     
==========================================
  Files         173      173              
  Lines       52966    52928      -38     
==========================================
- Hits        48337    48329       -8     
+ Misses       4629     4599      -30
```

| Flag | Coverage Δ | |
|---|---|---|
| #multiple | `89.88% <100%> (+0.04%)` | :arrow_up: |
| #single | `41.73% <50%> (+0.02%)` | :arrow_up: |

| [Impacted Files](https://codecov.io/gh/pandas-dev/pandas/pull/25567?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [pandas/core/indexing.py](https://codecov.io/gh/pandas-dev/pandas/pull/25567/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvaW5kZXhpbmcucHk=) | `93.46% <100%> (+2.58%)` | :arrow_up: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/25567?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/25567?src=pr&el=footer). Last update [3e652ac...c47d36f](https://codecov.io/gh/pandas-dev/pandas/pull/25567?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).

# [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/25567?src=pr&el=h1) Report
> Merging [#25567](https://codecov.io/gh/pandas-dev/pandas/pull/25567?src=pr&el=desc) into [master](https://codecov.io/gh/pandas-dev/pandas/commit/8154efb0c1a64295cf54e00025b4ab09bcd02752?src=pr&el=desc) will **increase** coverage by `0.06%`.
> The diff coverage is `100%`.

[![Impacted file tree graph](https://codecov.io/gh/pandas-dev/pandas/pull/25567/graphs/tree.svg?width=650&token=eZ4WkYLtcO&height=150&src=pr)](https://codecov.io/gh/pandas-dev/pandas/pull/25567?src=pr&el=tree)

```diff
@@            Coverage Diff             @@
##           master   #25567      +/-   ##
==========================================
+ Coverage   91.77%   91.83%   +0.06%     
==========================================
  Files         174      174              
  Lines       50681    50643      -38     
==========================================
- Hits        46513    46510       -3     
+ Misses       4168     4133      -35
```

| Flag | Coverage Δ | |
|---|---|---|
| #multiple | `90.37% <100%> (+0.06%)` | :arrow_up: |
| #single | `41.69% <50%> (-0.06%)` | :arrow_down: |

| [Impacted Files](https://codecov.io/gh/pandas-dev/pandas/pull/25567?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [pandas/core/indexing.py](https://codecov.io/gh/pandas-dev/pandas/pull/25567/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvaW5kZXhpbmcucHk=) | `93.48% <100%> (+2.95%)` | :arrow_up: |
| [pandas/io/gbq.py](https://codecov.io/gh/pandas-dev/pandas/pull/25567/diff?src=pr&el=tree#diff-cGFuZGFzL2lvL2dicS5weQ==) | `78.94% <0%> (-10.53%)` | :arrow_down: |
| [pandas/core/frame.py](https://codecov.io/gh/pandas-dev/pandas/pull/25567/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvZnJhbWUucHk=) | `97% <0%> (-0.12%)` | :arrow_down: |
| [pandas/core/generic.py](https://codecov.io/gh/pandas-dev/pandas/pull/25567/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvZ2VuZXJpYy5weQ==) | `93.62% <0%> (+0.04%)` | :arrow_up: |
| [pandas/core/arrays/datetimelike.py](https://codecov.io/gh/pandas-dev/pandas/pull/25567/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvYXJyYXlzL2RhdGV0aW1lbGlrZS5weQ==) | `97.88% <0%> (+0.17%)` | :arrow_up: |
| [pandas/core/arrays/timedeltas.py](https://codecov.io/gh/pandas-dev/pandas/pull/25567/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvYXJyYXlzL3RpbWVkZWx0YXMucHk=) | `88.8% <0%> (+0.19%)` | :arrow_up: |
| [pandas/util/testing.py](https://codecov.io/gh/pandas-dev/pandas/pull/25567/diff?src=pr&el=tree#diff-cGFuZGFzL3V0aWwvdGVzdGluZy5weQ==) | `90.81% <0%> (+0.21%)` | :arrow_up: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/25567?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/25567?src=pr&el=footer). Last update [8154efb...eaf161b](https://codecov.io/gh/pandas-dev/pandas/pull/25567?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).

can you merge master; also created #25632 for things like this
merged master to remove overlap with #25675
can you merge master. code change looks good, can you simplify the tests at all? maybe split them up a bit?
can you merge master
@simonjayhawkins can you merge master and update
@simonjayhawkins can you merge master and fix up again? I think this should take a pretty big chunk out of what remains for Panel
> @simonjayhawkins can you merge master and fix up again? I think this should take a pretty big chunk out of what remains for Panel

i've fixed up `test_ndframe_indexing_raises` so that the tests pass.

This now is basically a regression test. it does check the new error message added within this PR for .ix only.

For the other indexers, other errors are raised before it gets to the deferred ndim lookup in indexing.pyx


> can you simplify the tests at all? maybe split them up a bit?

the tests are already split by getting and setting, but as the parametrisation is also across indexes, pandas object types, and indexer that results in 88 test cases in each of the two tests.

the reason parametrisation was used is to check for consistency of error messages raised.

The error messages are not consistent at the moment and some permutations don't raise (they probably should as the output is some cases is non nonsensical). will need to raise some issues here to make the behavior more consistent.

This results in tests that are visually messy.

So again, `test_getitem_ndarray_3d` and `test_setitem_ndarray_3d` should be viewed as regression tests and not expected behavior.

if they should be split again, probably best to split on indexer?
ok looks better

ping on green
@jreback pinging on green.
thanks!