12345678910111213141516171819202122232425262728293031323334353637383940 |
- """ common utilities """
- from __future__ import annotations
- from typing import (
- Any,
- Literal,
- )
- def _mklbl(prefix: str, n: int):
- return [f"{prefix}{i}" for i in range(n)]
- def check_indexing_smoketest_or_raises(
- obj,
- method: Literal["iloc", "loc"],
- key: Any,
- axes: Literal[0, 1] | None = None,
- fails=None,
- ) -> None:
- if axes is None:
- axes_list = [0, 1]
- else:
- assert axes in [0, 1]
- axes_list = [axes]
- for ax in axes_list:
- if ax < obj.ndim:
- # create a tuple accessor
- new_axes = [slice(None)] * obj.ndim
- new_axes[ax] = key
- axified = tuple(new_axes)
- try:
- getattr(obj, method).__getitem__(axified)
- except (IndexError, TypeError, KeyError) as detail:
- # if we are in fails, the ok, otherwise raise it
- if fails is not None:
- if isinstance(detail, fails):
- return
- raise
|