(self, level)
| 1753 | return "mixed" |
| 1754 | |
| 1755 | def _get_level_number(self, level) -> int: |
| 1756 | count = self.names.count(level) |
| 1757 | if (count > 1) and not is_integer(level): |
| 1758 | raise ValueError( |
| 1759 | f"The name {level} occurs multiple times, use a level number" |
| 1760 | ) |
| 1761 | try: |
| 1762 | level = self.names.index(level) |
| 1763 | except ValueError as err: |
| 1764 | if not is_integer(level): |
| 1765 | raise KeyError(f"Level {level} not found") from err |
| 1766 | if level < 0: |
| 1767 | level += self.nlevels |
| 1768 | if level < 0: |
| 1769 | orig_level = level - self.nlevels |
| 1770 | raise IndexError( |
| 1771 | f"Too many levels: Index has only {self.nlevels} levels, " |
| 1772 | f"{orig_level} is not a valid level number" |
| 1773 | ) from err |
| 1774 | # Note: levels are zero-based |
| 1775 | elif level >= self.nlevels: |
| 1776 | raise IndexError( |
| 1777 | f"Too many levels: Index has only {self.nlevels} levels, " |
| 1778 | f"not {level + 1}" |
| 1779 | ) from err |
| 1780 | return level |
| 1781 | |
| 1782 | @cache_readonly |
| 1783 | def is_monotonic_increasing(self) -> bool: |
no test coverage detected