Source code for banffprocessor.util.case_insensitive_enum_meta
"""Metaclass for a case-insensitive version of an Enum."""
from enum import EnumMeta
from typing import TypeVar
_EnumMemberT = TypeVar("_EnumMemberT")
[docs]
class CaseInsensitiveEnumMeta(EnumMeta):
"""Metaclass for a case-insensitive version of an Enum."""
def __getitem__(cls: type[_EnumMemberT], name: str) -> _EnumMemberT:
"""Overridden base Enum __getitem__ to index on `name.upper()` instead of `name`."""
return super().__getitem__(name.upper())